
L1: 8b ff ?? mov edi, edi
 55 ?? push ebp
 8b ec ?? mov ebp, esp
 83 ec 7c ?? sub esp, 0x7c<124>
 a1 3c 80 42 00 ?? mov eax, dword ds:[0x0042803c]
 33 c5 ?? xor eax, ebp
 89 45 fc ?? mov dword ss:[ebp + 0xfc<252,-4>], eax
 53 ?? push ebx
 56 ?? push esi
 57 ?? push edi
 8b 7d 08 ?? mov edi, dword ss:[ebp + 8]
 e8 7f 18 ff ff ?? call function 0x004037bf

L2: 8b f0 ?? mov esi, eax
 8b d7 ?? mov edx, edi
 81 c6 9c 00 00 00 ?? add esi, 0x0000009c<156>
 e8 79 fe ff ff ?? call function 0x00411dc8

L3: 8b 1d a8 a2 42 00 ?? mov ebx, dword ds:[0x0042a2a8]
 8b f8 ?? mov edi, eax
 6a 78 ?? push 0x78<120>
 8d 45 84 ?? lea eax, ss:[ebp + 0x84<132,-124>]
 50 ?? push eax
 8b 46 14 ?? mov eax, dword ds:[esi + 0x14<20>]
 f7 d8 ?? neg eax
 1b c0 ?? sbb eax, eax
 25 05 f0 ff ff ?? and eax, 0xfffff005<4294963205,-4091>
 05 02 10 00 00 ?? add eax, 0x00001002<4098>
 50 ?? push eax
 57 ?? push edi
 ff d3 ?? call ebx

L4: 85 c0 ?? test eax, eax
 75 0c ?? jne basic block L6

L5: 83 66 08 00 ?? and dword ds:[esi + 8], 0
 33 c0 ?? xor eax, eax
 40 ?? inc eax
 e9 62 01 00 00 ?? jmp basic block L47

L6: 8d 45 84 ?? lea eax, ss:[ebp + 0x84<132,-124>]
 50 ?? push eax
 ff 76 04 ?? push dword ds:[esi + 4]
 e8 2f 4c 00 00 ?? call function 0x00416bbd

L7: 59 ?? pop ecx
 59 ?? pop ecx
 85 c0 ?? test eax, eax
 0f 85 91 00 00 00 ?? jne basic block L25

L8: 6a 78 ?? push 0x78<120>
 8d 45 84 ?? lea eax, ss:[ebp + 0x84<132,-124>]
 50 ?? push eax
 8b 46 10 ?? mov eax, dword ds:[esi + 0x10<16>]
 f7 d8 ?? neg eax
 1b c0 ?? sbb eax, eax
 25 02 f0 ff ff ?? and eax, 0xfffff002<4294963202,-4094>
 05 01 10 00 00 ?? add eax, 0x00001001<4097>
 50 ?? push eax
 57 ?? push edi
 ff d3 ?? call ebx

L9: 85 c0 ?? test eax, eax
 74 bf ?? je basic block L5

L10: 8d 45 84 ?? lea eax, ss:[ebp + 0x84<132,-124>]
 50 ?? push eax
 ff 36 ?? push dword ds:[esi]
 e8 fb 4b 00 00 ?? call function 0x00416bbd

L11: 59 ?? pop ecx
 59 ?? pop ecx
 85 c0 ?? test eax, eax
 75 0c ?? jne basic block L13

L12: 81 4e 08 04 03 00 00 ?? or dword ds:[esi + 8], 0x00000304<772>
 89 7e 18 ?? mov dword ds:[esi + 0x18<24>], edi
 eb 52 ?? jmp basic block L24

L13: f6 46 08 02 ?? test byte ds:[esi + 8], 2
 75 4f ?? jne basic block L25

L14: 8b 46 0c ?? mov eax, dword ds:[esi + 12]
 85 c0 ?? test eax, eax
 74 2c ?? je basic block L20

L15: 50 ?? push eax
 8d 45 84 ?? lea eax, ss:[ebp + 0x84<132,-124>]
 50 ?? push eax
 ff 36 ?? push dword ds:[esi]
 e8 17 51 00 00 ?? call function 0x00417104

L16: 83 c4 0c ?? add esp, 12
 85 c0 ?? test eax, eax
 75 19 ?? jne basic block L20

L17: ff 36 ?? push dword ds:[esi]
 83 4e 08 02 ?? or dword ds:[esi + 8], 2
 89 7e 1c ?? mov dword ds:[esi + 0x1c<28>], edi
 e8 2e 43 ff ff ?? call function 0x00406330

L18: 59 ?? pop ecx
 3b 46 0c ?? cmp eax, dword ds:[esi + 12]
 75 21 ?? jne basic block L25

L19: 89 7e 18 ?? mov dword ds:[esi + 0x18<24>], edi
 eb 1c ?? jmp basic block L25

L20: 8b 56 08 ?? mov edx, dword ds:[esi + 8]
 f6 c2 01 ?? test dl, 1
 75 14 ?? jne basic block L25

L21: 57 ?? push edi
 e8 89 fd ff ff ?? call function 0x00411da4

L22: 59 ?? pop ecx
 85 c0 ?? test eax, eax
 74 09 ?? je basic block L25

L23: 83 ca 01 ?? or edx, 1
 89 56 08 ?? mov dword ds:[esi + 8], edx

L24: 89 7e 1c ?? mov dword ds:[esi + 0x1c<28>], edi

L25: 8b 4e 08 ?? mov ecx, dword ds:[esi + 8]
 b8 00 03 00 00 ?? mov eax, 0x00000300<768>
 23 c8 ?? and ecx, eax
 3b c8 ?? cmp ecx, eax
 0f 84 9e 00 00 00 ?? je basic block L46

L26: 6a 78 ?? push 0x78<120>
 8d 45 84 ?? lea eax, ss:[ebp + 0x84<132,-124>]
 50 ?? push eax
 8b 46 10 ?? mov eax, dword ds:[esi + 0x10<16>]
 f7 d8 ?? neg eax
 1b c0 ?? sbb eax, eax
 25 02 f0 ff ff ?? and eax, 0xfffff002<4294963202,-4094>
 05 01 10 00 00 ?? add eax, 0x00001001<4097>
 50 ?? push eax
 57 ?? push edi
 ff d3 ?? call ebx

L27: 85 c0 ?? test eax, eax
 0f 84 18 ff ff ff ?? je basic block L5

L28: 8d 45 84 ?? lea eax, ss:[ebp + 0x84<132,-124>]
 50 ?? push eax
 ff 36 ?? push dword ds:[esi]
 e8 54 4b 00 00 ?? call function 0x00416bbd

L29: 59 ?? pop ecx
 33 db ?? xor ebx, ebx
 59 ?? pop ecx
 85 c0 ?? test eax, eax
 75 2f ?? jne basic block L36

L30: 81 4e 08 00 02 00 00 ?? or dword ds:[esi + 8], 0x00000200<512>
 8b 46 08 ?? mov eax, dword ds:[esi + 8]
 39 5e 10 ?? cmp dword ds:[esi + 0x10<16>], ebx
 74 0a ?? je basic block L32

L31: 0d 00 01 00 00 ?? or eax, 0x00000100<256>
 89 46 08 ?? mov dword ds:[esi + 8], eax
 eb 47 ?? jmp basic block L44

L32: 39 5e 0c ?? cmp dword ds:[esi + 12], ebx
 74 3b ?? je basic block L43

L33: ff 36 ?? push dword ds:[esi]
 e8 9a 42 ff ff ?? call function 0x00406330

L34: 59 ?? pop ecx
 3b 46 0c ?? cmp eax, dword ds:[esi + 12]
 75 2e ?? jne basic block L43

L35: 6a 01 ?? push 1
 eb 1c ?? jmp basic block L41

L36: 39 5e 10 ?? cmp dword ds:[esi + 0x10<16>], ebx
 75 34 ?? jne basic block L46

L37: 39 5e 0c ?? cmp dword ds:[esi + 12], ebx
 74 2f ?? je basic block L46

L38: 8d 45 84 ?? lea eax, ss:[ebp + 0x84<132,-124>]
 50 ?? push eax
 ff 36 ?? push dword ds:[esi]
 e8 08 4b 00 00 ?? call function 0x00416bbd

L39: 59 ?? pop ecx
 59 ?? pop ecx
 85 c0 ?? test eax, eax
 75 1e ?? jne basic block L46

L40: 53 ?? push ebx

L41: 57 ?? push edi
 8b ce ?? mov ecx, esi
 e8 eb fd ff ff ?? call function 0x00411eaf

L42: 59 ?? pop ecx
 59 ?? pop ecx
 85 c0 ?? test eax, eax
 74 0f ?? je basic block L46

L43: 81 4e 08 00 01 00 00 ?? or dword ds:[esi + 8], 0x00000100<256>

L44: 39 5e 18 ?? cmp dword ds:[esi + 0x18<24>], ebx
 75 03 ?? jne basic block L46

L45: 89 7e 18 ?? mov dword ds:[esi + 0x18<24>], edi

L46: 8b 46 08 ?? mov eax, dword ds:[esi + 8]
 c1 e8 02 ?? shr eax, 2
 f7 d0 ?? not eax
 83 e0 01 ?? and eax, 1

L47: 8b 4d fc ?? mov ecx, dword ss:[ebp + 0xfc<252,-4>]
 5f ?? pop edi
 5e ?? pop esi
 33 cd ?? xor ecx, ebp
 5b ?? pop ebx
 e8 ed f7 fe ff ?? call function 0x004018de

L48: c9 ?? leave
 c2 04 00 ?? ret 4

