
L1: 51 ?? push ecx
 53 ?? push ebx
 55 ?? push ebp
 56 ?? push esi
 57 ?? push edi
 6a 58 ?? push 0x58<88>
 e8 54 02 00 00 ?? call function 0x00401ad0

L2: 83 c4 04 ?? add esp, 4
 bd 88 58 40 00 ?? mov ebp, 0x00405888
 be 54 58 40 00 ?? mov esi, 0x00405854
 bf 2a 00 00 00 ?? mov edi, 0x0000002a<42>
 85 c0 ?? test eax, eax
 74 21 ?? je basic block L4

L3: c7 40 0c 10 58 40 00 ?? mov dword ds:[eax + 12], 0x00405810
 c7 40 50 20 58 40 00 ?? mov dword ds:[eax + 0x50<80>], 0x00405820
 c7 00 98 58 40 00 ?? mov dword ds:[eax], 0x00405898
 89 68 0c ?? mov dword ds:[eax + 12], ebp
 89 70 50 ?? mov dword ds:[eax + 0x50<80>], esi
 89 78 54 ?? mov dword ds:[eax + 0x54<84>], edi
 8b d8 ?? mov ebx, eax
 eb 02 ?? jmp basic block L5

L4: 33 db ?? xor ebx, ebx

L5: 6a 58 ?? push 0x58<88>
 e8 14 02 00 00 ?? call function 0x00401ad0

L6: 83 c4 04 ?? add esp, 4
 85 c0 ?? test eax, eax
 74 21 ?? je basic block L8

L7: c7 40 0c 10 58 40 00 ?? mov dword ds:[eax + 12], 0x00405810
 c7 40 50 20 58 40 00 ?? mov dword ds:[eax + 0x50<80>], 0x00405820
 89 68 0c ?? mov dword ds:[eax + 12], ebp
 c7 00 98 58 40 00 ?? mov dword ds:[eax], 0x00405898
 89 70 50 ?? mov dword ds:[eax + 0x50<80>], esi
 89 78 54 ?? mov dword ds:[eax + 0x54<84>], edi
 8b e8 ?? mov ebp, eax
 eb 02 ?? jmp basic block L9

L8: 33 ed ?? xor ebp, ebp

L9: 6a 0c ?? push 12
 e8 e3 01 00 00 ?? call function 0x00401ad0

L10: 83 c4 04 ?? add esp, 4
 85 c0 ?? test eax, eax
 74 0c ?? je basic block L12

L11: c7 00 04 58 40 00 ?? mov dword ds:[eax], 0x00405804
 89 44 24 10 ?? mov dword ss:[esp + 0x10<16>], eax
 eb 08 ?? jmp basic block L13

L12: c7 44 24 10 00 00 00 00 ?? mov dword ss:[esp + 0x10<16>], 0

L13: 6a 58 ?? push 0x58<88>
 e8 c1 01 00 00 ?? call function 0x00401ad0

L14: 83 c4 04 ?? add esp, 4
 85 c0 ?? test eax, eax
 74 29 ?? je basic block L16

L15: c7 40 0c 10 58 40 00 ?? mov dword ds:[eax + 12], 0x00405810
 c7 40 50 20 58 40 00 ?? mov dword ds:[eax + 0x50<80>], 0x00405820
 89 78 54 ?? mov dword ds:[eax + 0x54<84>], edi
 c7 00 e8 58 40 00 ?? mov dword ds:[eax], 0x004058e8
 c7 40 0c d8 58 40 00 ?? mov dword ds:[eax + 12], 0x004058d8
 c7 40 50 a4 58 40 00 ?? mov dword ds:[eax + 0x50<80>], 0x004058a4
 8b f8 ?? mov edi, eax
 eb 02 ?? jmp basic block L17

L16: 33 ff ?? xor edi, edi

L17: a1 3c 82 40 00 ?? mov eax, dword ds:[0x0040823c]
 8b 0d 40 82 40 00 ?? mov ecx, dword ds:[0x00408240]
 50 ?? push eax
 68 00 59 40 00 ?? push 0x00405900<"Cls1::func2()">
 51 ?? push ecx
 e8 07 f7 ff ff ?? call function 0x0040105f

L18: 83 c4 08 ?? add esp, 8
 8b c8 ?? mov ecx, eax
 ff 15 44 82 40 00 ?? call dword ds:[function 0x00408244]

L19: 8b 57 0c ?? mov edx, dword ds:[edi + 12]
 8b 42 04 ?? mov eax, dword ds:[edx + 4]
 8d 4f 0c ?? lea ecx, ds:[edi + 12]
 ff d0 ?? call eax

L20: 8b 57 50 ?? mov edx, dword ds:[edi + 0x50<80>]
 8b 42 24 ?? mov eax, dword ds:[edx + 0x24<36>]
 8d 4f 50 ?? lea ecx, ds:[edi + 0x50<80>]
 ff d0 ?? call eax

L21: 8b 13 ?? mov edx, dword ds:[ebx]
 8b 02 ?? mov eax, dword ds:[edx]
 8b cb ?? mov ecx, ebx
 ff d0 ?? call eax

L22: 8b 53 0c ?? mov edx, dword ds:[ebx + 12]
 8b 02 ?? mov eax, dword ds:[edx]
 8d 73 0c ?? lea esi, ds:[ebx + 12]
 8b ce ?? mov ecx, esi
 ff d0 ?? call eax

L23: 8b 16 ?? mov edx, dword ds:[esi]
 8b 42 04 ?? mov eax, dword ds:[edx + 4]
 8b ce ?? mov ecx, esi
 ff d0 ?? call eax

L24: 8b 55 00 ?? mov edx, dword ss:[ebp + 0]
 8b 02 ?? mov eax, dword ds:[edx]
 8b cd ?? mov ecx, ebp
 ff d0 ?? call eax

L25: 53 ?? push ebx
 e8 25 01 00 00 ?? call function 0x00401aca

L26: 55 ?? push ebp
 e8 1f 01 00 00 ?? call function 0x00401aca

L27: 57 ?? push edi
 e8 19 01 00 00 ?? call function 0x00401aca

L28: 8b 4c 24 1c ?? mov ecx, dword ss:[esp + 0x1c<28>]
 51 ?? push ecx
 e8 0f 01 00 00 ?? call function 0x00401aca

L29: 83 c4 10 ?? add esp, 0x10<16>
 5f ?? pop edi
 5e ?? pop esi
 5d ?? pop ebp
 33 c0 ?? xor eax, eax
 5b ?? pop ebx
 59 ?? pop ecx
 c3 ?? ret

