Function at 0x40a4b0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x446596
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x1b4
push ebx
push esi
push edi
push 6
push 0x450348
lea ecx, [esp + 0x74]
call fcn.0041f090
xor esi, esi
push 6
push 0x45025c
lea ecx, [esp + 0x84]
mov dword [esp + 0x1d0], esi
call fcn.0041f090
push 6
push 0x450254
lea ecx, [esp + 0x98]
mov byte [esp + 0x1d0], 1
call fcn.0041f090
push 6
push 0x45024c
lea ecx, [esp + 0x78]
mov byte [esp + 0x1d0], 2
call fcn.0041f090
push 6
push 0x4503bc
lea ecx, [esp + 0x6c]
mov byte [esp + 0x1d0], 3
call fcn.0041f090
push 6
push 0x4503b4
lea ecx, [esp + 0x70]
mov byte [esp + 0x1d0], 4
call fcn.0041f090
push 6
push 0x450244
lea ecx, [esp + 0x40]
mov byte [esp + 0x1d0], 5
call fcn.0041f090
push 6
push 0x4503ac
lea ecx, [esp + 0xa0]
mov byte [esp + 0x1d0], 6
call fcn.0041f090
push 6
push 0x4503a4
lea ecx, [esp + 0x94]
mov byte [esp + 0x1d0], 7
call fcn.0041f090
push 6
push 0x45039c
lea ecx, [esp + 0x9c]
mov byte [esp + 0x1d0], 8
call fcn.0041f090
lea ecx, [esp + 0x74]
mov byte [esp + 0x1c8], 9
mov byte [esp + 0x10], 0
call fcn.0041f060
lea ecx, [esp + 0x54]
mov byte [esp + 0x1c8], 0xa
call fcn.00420ce0
lea ecx, [esp + 0xb0]
mov byte [esp + 0x1c8], 0xb
call fcn.00420ce0
mov al, byte [esp + 0x37]
mov dword [esp + 0xa4], esi
mov byte [esp + 0xa0], al
mov dword [esp + 0xa8], esi
mov dword [esp + 0xac], esi
mov cl, byte [esp + 0x37]
mov edi, 0x450398
mov byte [esp + 0x14], cl
or ecx, 0xffffffff
xor eax, eax
mov byte [esp + 0x1c8], 0xd
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x18], esi
mov ebx, ecx
lea ecx, [esp + 0x14]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], esi
call fcn.004052e0
cmp eax, ebx
jae 0x40a666
call fcn.0043d8bb
mov edi, dword [esp + 0x18]
cmp edi, esi
je 0x40a68e
mov al, byte [edi - 1]
test al, al
je 0x40a68e
cmp al, 0xff
je 0x40a68e
cmp ebx, esi
jne 0x40a6b7
dec al
push esi
lea ecx, [esp + 0x18]
mov byte [edi - 1], al
call fcn.00404b50
jmp 0x40a6e4
cmp ebx, esi
jne 0x40a69f
push 1
lea ecx, [esp + 0x18]
call fcn.00404b50
jmp 0x40a6e4
mov eax, dword [esp + 0x20]
cmp eax, 0x1f
ja 0x40a6ac
cmp eax, ebx
jae 0x40a6c5
push 1
lea ecx, [esp + 0x18]
call fcn.00404b50
push ebx
lea ecx, [esp + 0x18]
call fcn.004052f0
mov edi, dword [esp + 0x18]
mov ecx, ebx
mov esi, 0x450398
mov edx, ecx
push ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x18]
call fcn.00405190
lea ecx, [esp + 0x2c]
mov byte [esp + 0x1c8], 0xe
mov dword [esp + 0x9c], 1
call fcn.0041f060
mov esi, dword [ebp + 8]
lea ecx, [esp + 0x6c]
push esi
push 5
mov byte [esp + 0x1d0], 0xf
call fcn.0041f470
cmp si, 9
jae 0x40ab6e
mov bl, 0x12
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push 6
push 0x4501e4
call fcn.0041f090
mov ecx, dword [0x4538e4]
call fcn.0042a740
push 0
push ecx
lea eax, [esp + 0x84]
mov ecx, esp
mov dword [esp + 0x38], esp
push eax
call fcn.0041f070
mov ecx, dword [0x4538e4]
call fcn.0042a8c0
push 0
push ecx
lea edx, [esp + 0x98]
mov ecx, esp
mov dword [esp + 0x38], esp
push edx
call fcn.0041f070
mov ecx, dword [0x4538e4]
call fcn.0042a8c0
push 0
push ecx
lea eax, [esp + 0x78]
mov ecx, esp
mov dword [esp + 0x38], esp
push eax
call fcn.0041f070
mov ecx, dword [0x4538e4]
call fcn.0042a8c0
sub esp, 0x10
mov esi, esp
mov dword [esp + 0x40], esp
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push 6
push 0x450390
call fcn.0041f090
push esi
call fcn.0042c110
add esp, 4
mov byte [esp + 0x1dc], 0x10
mov ecx, esp
mov dword [esp + 0x20], esp
push 6
push 0x450234
call fcn.0041f090
mov ecx, dword [0x4538e4]
mov byte [esp + 0x1dc], 0xf
call fcn.0042a940
sub esp, 0x10
mov esi, esp
mov dword [esp + 0x40], esp
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push 6
push 0x45021c
call fcn.0041f090
push esi
call fcn.0042c110
add esp, 4
mov byte [esp + 0x1dc], 0x11
mov ecx, esp
mov dword [esp + 0x20], esp
push 6
push 0x45022c
call fcn.0041f090
mov ecx, dword [0x4538e4]
mov byte [esp + 0x1dc], 0xf
call fcn.0042a940
sub esp, 0x10
mov esi, esp
mov dword [esp + 0x40], esp
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push 6
push 0x450214
call fcn.0041f090
push esi
call fcn.0042c110
add esp, 4
mov byte [esp + 0x1dc], bl
mov ecx, esp
mov dword [esp + 0x20], esp
push 6
push 0x45020c
call fcn.0041f090
mov ecx, dword [0x4538e4]
mov byte [esp + 0x1dc], 0xf
call fcn.0042a940
mov ecx, dword [0x4538e4]
call fcn.0042ab10
push pe_nt_image_headers32
mov esi, eax
call fcn.004069d0
add esp, 4
test si, si
je 0x40bfd1
cmp si, 1
jne 0x40aa15
lea ecx, [esp + 0x54]
call fcn.00421780
push ecx
lea edx, [esp + 0x98]
mov ecx, esp
mov dword [esp + 0x34], esp
push edx
call fcn.0041f070
lea ecx, [esp + 0x58]
call fcn.004213c0
lea eax, [esp + 0xa0]
push 1
lea ecx, [esp + 0x58]
push eax
push ecx
mov ecx, 0x45386c
call fcn.00401580
lea ecx, [esp + 0x54]
call fcn.00421780
mov edx, dword [ebp + 8]
lea ecx, [esp + 0x64]
push edx
push 5
call fcn.0041f470
push ecx
lea eax, [esp + 0x68]
mov ecx, esp
mov dword [esp + 0x34], esp
push eax
call fcn.0041f070
lea ecx, [esp + 0x58]
call fcn.004213c0
lea ecx, [esp + 0xa0]
push 1
lea edx, [esp + 0x58]
push ecx
push edx
mov ecx, 0x45386c
call fcn.00401580
cmp ax, 0xff9b
jne 0x40a989
push 6
push 5
lea ecx, [esp + 0x40]
call fcn.0041f470
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x38], esp
push 6
push 0x450204
call fcn.0041f090
push ecx
mov byte [esp + 0x1d4], 0x13
mov ecx, esp
mov dword [esp + 0x18], esp
jmp 0x40aaa1
push 0
push ecx
mov ecx, esp
mov dword [esp + 0x38], esp
push 6
push 0x450204
call fcn.0041f090
push ecx
mov byte [esp + 0x1d4], 0x14
mov ecx, esp
mov dword [esp + 0x18], esp
push 6
push 0x4501fc
call fcn.0041f090
mov ecx, 0x4538d8
mov byte [esp + 0x1d4], 0xf
call fcn.004281e0
push 0x7d0
call fcn.004069d0
add esp, 4
lea ecx, [esp + 0x38]
push 5
push 5
call fcn.0041f470
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x38], esp
push 6
push 0x450204
call fcn.0041f090
push ecx
mov byte [esp + 0x1d4], 0x15
mov ecx, esp
mov dword [esp + 0x18], esp
push 6
push 0x4501f4
jmp 0x40aaa8
cmp si, 2
jne 0x40a723
lea ecx, [esp + 0x54]
call fcn.00421780
mov eax, dword [ebp + 8]
lea ecx, [esp + 0x68]
push eax
push 5
call fcn.0041f470
push ecx
lea edx, [esp + 0x6c]
mov ecx, esp
mov dword [esp + 0x34], esp
push edx
call fcn.0041f070
lea ecx, [esp + 0x58]
call fcn.004213c0
lea eax, [esp + 0xa0]
push 1
lea ecx, [esp + 0x58]
push eax
push ecx
mov ecx, 0x45386c
call fcn.00401580
cmp ax, 0xff9b
jne 0x40aac4
push 6
push 5
lea ecx, [esp + 0x40]
call fcn.0041f470
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x38], esp
push 6
push 0x450204
call fcn.0041f090
push ecx
mov byte [esp + 0x1d4], 0x16
mov ecx, esp
mov dword [esp + 0x18], esp
push 6
push 0x4501ec
call fcn.0041f090
mov ecx, 0x4538d8
mov byte [esp + 0x1d4], 0xf
call fcn.004281e0
jmp 0x40a723
push 0
push ecx
mov ecx, esp
mov dword [esp + 0x38], esp
push 6
push 0x450204
call fcn.0041f090
push ecx
mov byte [esp + 0x1d4], 0x17
mov ecx, esp
mov dword [esp + 0x18], esp
push 6
push 0x4501fc
call fcn.0041f090
mov ecx, 0x4538d8
mov byte [esp + 0x1d4], 0xf
call fcn.004281e0
push 0x320
call fcn.004069d0
add esp, 4
lea ecx, [esp + 0x38]
push 5
push 5
call fcn.0041f470
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x38], esp
push 6
push 0x450204
call fcn.0041f090
push ecx
mov byte [esp + 0x1d4], 0x18
mov ecx, esp
mov dword [esp + 0x18], esp
push 6
push 0x4501f4
jmp 0x40aaa8
push 6
push 0x4501ec
call fcn.0041f090
mov ecx, 0x4538d8
mov byte [esp + 0x1d4], 0xf
call fcn.004281e0
push ecx
lea edx, [esp + 0x70]
mov ecx, esp
mov dword [esp + 0x10], esp
push edx
call fcn.0041f070
mov ecx, dword [0x4538e4]
call fcn.0042a740
push 0
push ecx
lea eax, [esp + 0x84]
mov ecx, esp
mov dword [esp + 0x14], esp
push eax
call fcn.0041f070
mov ecx, dword [0x4538e4]
call fcn.0042a8c0
push 0
push ecx
lea edx, [esp + 0xa0]
mov ecx, esp
mov dword [esp + 0x14], esp
push edx
call fcn.0041f070
mov ecx, dword [0x4538e4]
call fcn.0042a8c0
push 0
push ecx
lea eax, [esp + 0x94]
mov ecx, esp
mov dword [esp + 0x14], esp
push eax
call fcn.0041f070
mov ecx, dword [0x4538e4]
call fcn.0042a8c0
push 0
push ecx
lea edx, [esp + 0x78]
mov ecx, esp
mov dword [esp + 0x14], esp
push edx
call fcn.0041f070
mov ecx, dword [0x4538e4]
call fcn.0042a8c0
sub esp, 0x10
mov esi, esp
mov dword [esp + 0x1c], esp
push ecx
mov ecx, esp
mov dword [esp + 0x38], esp
push 6
push 0x450390
call fcn.0041f090
push esi
call fcn.0042c110
add esp, 4
mov byte [esp + 0x1dc], 0x19
mov ecx, esp
mov dword [esp + 0x38], esp
push 6
push 0x450234
call fcn.0041f090
mov ecx, dword [0x4538e4]
mov byte [esp + 0x1dc], 0xf
call fcn.0042a940
sub esp, 0x10
mov esi, esp
mov dword [esp + 0x34], esp
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push 6
push 0x450388
call fcn.0041f090
push esi
call fcn.0042c110
add esp, 4
mov byte [esp + 0x1dc], 0x1a
mov ecx, esp
mov dword [esp + 0x20], esp
push 6
push 0x45022c
call fcn.0041f090
mov ecx, dword [0x4538e4]
mov byte [esp + 0x1dc], 0xf
call fcn.0042a940
sub esp, 0x10
mov esi, esp
mov dword [esp + 0x34], esp
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push 6
push 0x450224
call fcn.0041f090
push esi
call fcn.0042c110
add esp, 4
mov byte [esp + 0x1dc], 0x1b
mov ecx, esp
mov dword [esp + 0x20], esp
push 6
push 0x45020c
call fcn.0041f090
mov ecx, dword [0x4538e4]
mov byte [esp + 0x1dc], 0xf
call fcn.0042a940
mov eax, dword [esp + 0x9c]
test eax, eax
je 0x40affd
lea ecx, [esp + 0x54]
mov dword [esp + 0x9c], 0
call fcn.00421780
mov esi, dword [ebp + 8]
lea ecx, [esp + 0x64]
push esi
push 5
call fcn.0041f470
push ecx
lea eax, [esp + 0x68]
mov ecx, esp
mov dword [esp + 0x28], esp
push eax
call fcn.0041f070
lea ecx, [esp + 0x58]
call fcn.004213c0
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0xc0]
push 0x100
rep stosd dword es:[edi], eax
lea ecx, [esp + 0xc4]
push ecx
lea ecx, [esp + 0x5c]
call fcn.004217f0
mov al, byte [esp + 0xc0]
mov bl, 1
cmp al, bl
jl 0x40adb1
mov eax, 1
mov dl, byte [esp + eax + 0xc0]
lea ecx, [esp + 0x2c]
push edx
call fcn.0041f4d0
movsx ecx, byte [esp + 0xc0]
inc bl
mov byte [esp + 0x30], bl
mov eax, dword [esp + 0x30]
and eax, 0xff
cmp eax, ecx
jle 0x40ad85
cmp si, 9
jne 0x40ade3
push 0xb
lea ecx, [esp + 0x30]
call fcn.0041f460
mov byte [esp + 0x10], al
mov edx, dword [esp + 0x10]
and edx, 0xff
mov dword [esp + 0xc], edx
fild dword [esp + 0xc]
fmul qword [0x44a1a0]
jmp 0x40af3b
cmp si, 0xa
jne 0x40ae14
push 0xa
lea ecx, [esp + 0x30]
call fcn.0041f460
mov byte [esp + 0x10], al
mov eax, dword [esp + 0x10]
and eax, 0xff
mov dword [esp + 0xc], eax
fild dword [esp + 0xc]
fmul qword [0x44a198]
jmp 0x40ae9e
cmp si, 0xb
jne 0x40ae40
push 0xa
lea ecx, [esp + 0x30]
call fcn.0041f460
mov byte [esp + 0x10], al
mov ecx, dword [esp + 0x10]
and ecx, 0xff
mov dword [esp + 0xc], ecx
fild dword [esp + 0xc]
jmp 0x40aef1
cmp si, 0xc
jne 0x40ae72
push 0xc
lea ecx, [esp + 0x30]
call fcn.0041f460
mov byte [esp + 0x10], al
mov edx, dword [esp + 0x10]
and edx, 0xff
mov dword [esp + 0xc], edx
fild dword [esp + 0xc]
fmul qword [0x44a190]
jmp 0x40af3b
cmp si, 0xd
jne 0x40aebe
push 0xc
lea ecx, [esp + 0x30]
call fcn.0041f460
mov byte [esp + 0x10], al
mov eax, dword [esp + 0x10]
and eax, 0xff
mov dword [esp + 0xc], eax
fild dword [esp + 0xc]
fmul qword [0x44a190]
fstp qword [esp + 0x24]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
push ecx
push edx
lea eax, [esp + 0x88]
push 0x4502dc
push eax
jmp 0x40af56
cmp si, 0xe
jne 0x40af0e
push 8
lea ecx, [esp + 0x30]
call fcn.0041f460
mov byte [esp + 0x10], al
mov ecx, dword [esp + 0x10]
and ecx, 0xff
mov dword [esp + 0xc], ecx
fild dword [esp + 0xc]
fmul qword [0x44a188]
fadd qword [0x44a180]
fstp qword [esp + 0x24]
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
push edx
push eax
lea ecx, [esp + 0x88]
push 0x4502dc
push ecx
jmp 0x40af56
cmp si, 0xf
jne 0x40af5e
push 8
lea ecx, [esp + 0x30]
call fcn.0041f460
mov byte [esp + 0x10], al
mov edx, dword [esp + 0x10]
and edx, 0xff
mov dword [esp + 0xc], edx
fild dword [esp + 0xc]
fmul qword [str.333333]
fstp qword [esp + 0x24]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
push eax
push ecx
lea edx, [esp + 0x88]
push 0x4502dc
push edx
call fcn.0043e121
add esp, 0x10
lea edi, [esp + 0x80]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebx, ecx
cmp ebx, 0xfffffffd
jbe 0x40af7b
call fcn.0043d8bb
mov edi, dword [esp + 0x18]
test edi, edi
je 0x40afa3
mov al, byte [edi - 1]
test al, al
je 0x40afa3
cmp al, 0xff
je 0x40afa3
test ebx, ebx
jne 0x40afcc
dec al
push ebx
lea ecx, [esp + 0x18]
mov byte [edi - 1], al
call fcn.00404b50
jmp 0x40affd
test ebx, ebx
jne 0x40afb4
push 1
lea ecx, [esp + 0x18]
call fcn.00404b50
jmp 0x40affd
mov eax, dword [esp + 0x20]
cmp eax, 0x1f
ja 0x40afc1
cmp eax, ebx
jae 0x40afda
push 1
lea ecx, [esp + 0x18]
call fcn.00404b50
push ebx
lea ecx, [esp + 0x18]
call fcn.004052f0
mov edi, dword [esp + 0x18]
mov ecx, ebx
lea esi, [esp + 0x80]
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x1c], ebx
mov byte [ebx + ecx], 0
mov dl, byte [esp + 0x14]
sub esp, 0x10
mov ebx, esp
xor esi, esi
mov dword [esp + 0x34], esp
mov byte [ebx], dl
mov dword [ebx + 4], esi
mov dword [ebx + 8], esi
mov dword [ebx + 0xc], esi
mov edx, dword [esp + 0x2c]
mov ecx, dword [0x44a130]
mov eax, edx
cmp ecx, eax
mov dword [esp + 0x1c], eax
jae 0x40b031
mov eax, ecx
mov dword [esp + 0x1c], eax
lea edi, [esp + 0x24]
cmp ebx, edi
jne 0x40b050
push ecx
push eax
mov ecx, ebx
call fcn.00405070
push esi
push esi
mov ecx, ebx
call fcn.00405070
jmp 0x40b0dd
cmp eax, esi
jbe 0x40b09c
cmp eax, edx
jne 0x40b09c
mov ecx, dword [esp + 0x28]
cmp ecx, esi
jne 0x40b065
mov ecx, 0x44a134
cmp byte [ecx - 1], 0xfe
jae 0x40b09c
push 1
mov ecx, ebx
call fcn.00404b50
mov eax, dword [esp + 0x28]
cmp eax, esi
jne 0x40b081
mov eax, 0x44a134
mov dword [ebx + 4], eax
mov ecx, dword [esp + 0x2c]
mov dword [ebx + 8], ecx
mov edx, dword [esp + 0x30]
mov dword [ebx + 0xc], edx
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x40b0dd
push 1
push eax
mov ecx, ebx
call fcn.004051b0
test al, al
je 0x40b0dd
mov eax, dword [esp + 0x28]
cmp eax, esi
mov esi, 0x44a134
je 0x40b0b9
mov esi, eax
mov eax, dword [esp + 0x1c]
mov edi, dword [ebx + 4]
mov ecx, eax
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebx + 4]
mov dword [ebx + 8], eax
add eax, ecx
xor esi, esi
mov byte [eax], 0
push ecx
mov byte [esp + 0x1dc], 0x1c
mov ecx, esp
mov dword [esp + 0x20], esp
push 6
push 0x450380
call fcn.0041f090
mov ecx, dword [0x4538e4]
mov byte [esp + 0x1dc], 0xf
call fcn.0042a940
mov ecx, dword [0x4538e4]
call fcn.0042ab10
push pe_nt_image_headers32
mov edi, eax
call fcn.004069d0
add esp, 4
cmp di, si
je 0x40bfd1
cmp di, 1
jne 0x40b8b0
mov eax, dword [ebp + 8]
cmp ax, 9
jne 0x40b239
inc byte [esp + 0x10]
mov eax, dword [esp + 0x10]
and eax, 0xff
mov dword [esp + 0xc], eax
lea eax, [esp + 0x3c]
fild dword [esp + 0xc]
fmul qword [0x44a1a0]
fstp qword [esp + 0x24]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
push ecx
push edx
push 0x4502dc
push eax
call fcn.0043e121
lea edi, [esp + 0x4c]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x10
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebx, ecx
cmp ebx, 0xfffffffd
jbe 0x40b19a
call fcn.0043d8bb
mov edi, dword [esp + 0x18]
cmp edi, esi
je 0x40b1cc
mov al, byte [edi - 1]
test al, al
je 0x40b1cc
cmp al, 0xff
je 0x40b1cc
cmp ebx, esi
jne 0x40b1ff
dec al
push esi
lea ecx, [esp + 0x18]
mov byte [edi - 1], al
call fcn.00404b50
mov ecx, dword [esp + 0x10]
push ecx
push 0xb
jmp 0x40b816
cmp ebx, esi
jne 0x40b1e7
push 1
lea ecx, [esp + 0x18]
call fcn.00404b50
mov ecx, dword [esp + 0x10]
push ecx
push 0xb
jmp 0x40b816
mov eax, dword [esp + 0x20]
cmp eax, 0x1f
ja 0x40b1f4
cmp eax, ebx
jae 0x40b20d
push 1
lea ecx, [esp + 0x18]
call fcn.00404b50
push ebx
lea ecx, [esp + 0x18]
call fcn.004052f0
mov edi, dword [esp + 0x18]
mov ecx, ebx
lea esi, [esp + 0x3c]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x1c], ebx
push ecx
mov byte [ebx + eax], 0
push 0xb
jmp 0x40b816
cmp ax, 0xa
jne 0x40b339
add byte [esp + 0x10], 4
mov edx, dword [esp + 0x10]
and edx, 0xff
mov dword [esp + 0xc], edx
lea edx, [esp + 0x3c]
fild dword [esp + 0xc]
fmul qword [0x44a198]
fstp qword [esp + 0x24]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
push eax
push ecx
push 0x4502dc
push edx
call fcn.0043e121
lea edi, [esp + 0x4c]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x10
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebx, ecx
cmp ebx, 0xfffffffd
jbe 0x40b29a
call fcn.0043d8bb
mov edi, dword [esp + 0x18]
cmp edi, esi
je 0x40b2cc
mov al, byte [edi - 1]
test al, al
je 0x40b2cc
cmp al, 0xff
je 0x40b2cc
cmp ebx, esi
jne 0x40b2ff
dec al
push esi
lea ecx, [esp + 0x18]
mov byte [edi - 1], al
call fcn.00404b50
mov edx, dword [esp + 0x10]
push edx
push 0xa
jmp 0x40b816
cmp ebx, esi
jne 0x40b2e7
push 1
lea ecx, [esp + 0x18]
call fcn.00404b50
mov edx, dword [esp + 0x10]
push edx
push 0xa
jmp 0x40b816
mov eax, dword [esp + 0x20]
cmp eax, 0x1f
ja 0x40b2f4
cmp eax, ebx
jae 0x40b30d
push 1
lea ecx, [esp + 0x18]
call fcn.00404b50
push ebx
lea ecx, [esp + 0x18]
call fcn.004052f0
mov edi, dword [esp + 0x18]
mov ecx, ebx
lea esi, [esp + 0x3c]
mov eax, ecx
mov edx, dword [esp + 0x10]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
push edx
and ecx, 3
push 0xa
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x24], ebx
mov byte [ebx + ecx], 0
jmp 0x40b816
cmp ax, 0xb
jne 0x40b431
inc byte [esp + 0x10]
mov eax, dword [esp + 0x10]
and eax, 0xff
mov dword [esp + 0xc], eax
lea eax, [esp + 0x3c]
fild dword [esp + 0xc]
fstp qword [esp + 0x24]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
push ecx
push edx
push 0x4502dc
push eax
call fcn.0043e121
lea edi, [esp + 0x4c]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x10
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebx, ecx
cmp ebx, 0xfffffffd
jbe 0x40b392
call fcn.0043d8bb
mov edi, dword [esp + 0x18]
cmp edi, esi
je 0x40b3c4
mov al, byte [edi - 1]
test al, al
je 0x40b3c4
cmp al, 0xff
je 0x40b3c4
cmp ebx, esi
jne 0x40b3f7
dec al
push esi
lea ecx, [esp + 0x18]
mov byte [edi - 1], al
call fcn.00404b50
mov ecx, dword [esp + 0x10]
push ecx
push 0xa
jmp 0x40b816
cmp ebx, esi
jne 0x40b3df
push 1
lea ecx, [esp + 0x18]
call fcn.00404b50
mov ecx, dword [esp + 0x10]
push ecx
push 0xa
jmp 0x40b816
mov eax, dword [esp + 0x20]
cmp eax, 0x1f
ja 0x40b3ec
cmp eax, ebx
jae 0x40b405
push 1
lea ecx, [esp + 0x18]
call fcn.00404b50
push ebx
lea ecx, [esp + 0x18]
call fcn.004052f0
mov edi, dword [esp + 0x18]
mov ecx, ebx
lea esi, [esp + 0x3c]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x1c], ebx
push ecx
mov byte [ebx + eax], 0
push 0xa
jmp 0x40b816
cmp ax, 0xc
jne 0x40b531
add byte [esp + 0x10], 3
mov edx, dword [esp + 0x10]
and edx, 0xff
mov dword [esp + 0xc], edx
lea edx, [esp + 0x3c]
fild dword [esp + 0xc]
fmul qword [0x44a190]
fstp qword [esp + 0x24]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
push eax
push ecx
push 0x4502dc
push edx
call fcn.0043e121
lea edi, [esp + 0x4c]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x10
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebx, ecx
cmp ebx, 0xfffffffd
jbe 0x40b492
call fcn.0043d8bb
mov edi, dword [esp + 0x18]
cmp edi, esi
je 0x40b4c4
mov al, byte [edi - 1]
test al, al
je 0x40b4c4
cmp al, 0xff
je 0x40b4c4
cmp ebx, esi
jne 0x40b4f7
dec al
push esi
lea ecx, [esp + 0x18]
mov byte [edi - 1], al
call fcn.00404b50
mov edx, dword [esp + 0x10]
push edx
push 0xc
jmp 0x40b816
cmp ebx, esi
jne 0x40b4df
push 1
lea ecx, [esp + 0x18]
call fcn.00404b50
mov edx, dword [esp + 0x10]
push edx
push 0xc
jmp 0x40b816
mov eax, dword [esp + 0x20]
cmp eax, 0x1f
ja 0x40b4ec
cmp eax, ebx
jae 0x40b505
push 1
lea ecx, [esp + 0x18]
call fcn.00404b50
push ebx
lea ecx, [esp + 0x18]
call fcn.004052f0
mov edi, dword [esp + 0x18]
mov ecx, ebx
lea esi, [esp + 0x3c]
mov eax, ecx
mov edx, dword [esp + 0x10]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
push edx
and ecx, 3
push 0xc
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x24], ebx
mov byte [ebx + ecx], 0
jmp 0x40b816
cmp ax, 0xd
jne 0x40b630
add byte [esp + 0x10], 3
mov eax, dword [esp + 0x10]
and eax, 0xff
mov dword [esp + 0xc], eax
lea eax, [esp + 0x3c]
fild dword [esp + 0xc]
fmul qword [0x44a190]
fstp qword [esp + 0x24]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
push ecx
push edx
push 0x4502dc
push eax
call fcn.0043e121
lea edi, [esp + 0x4c]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x10
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebx, ecx
cmp ebx, 0xfffffffd
jbe 0x40b591
call fcn.0043d8bb
mov edi, dword [esp + 0x18]
cmp edi, esi
je 0x40b5c3
mov al, byte [edi - 1]
test al, al
je 0x40b5c3
cmp al, 0xff
je 0x40b5c3
cmp ebx, esi
jne 0x40b5f6
dec al
push esi
lea ecx, [esp + 0x18]
mov byte [edi - 1], al
call fcn.00404b50
mov ecx, dword [esp + 0x10]
push ecx
push 0xc
jmp 0x40b816
cmp ebx, esi
jne 0x40b5de
push 1
lea ecx, [esp + 0x18]
call fcn.00404b50
mov ecx, dword [esp + 0x10]
push ecx
push 0xc
jmp 0x40b816
mov eax, dword [esp + 0x20]
cmp eax, 0x1f
ja 0x40b5eb
cmp eax, ebx
jae 0x40b604
push 1
lea ecx, [esp + 0x18]
call fcn.00404b50
push ebx
lea ecx, [esp + 0x18]
call fcn.004052f0
mov edi, dword [esp + 0x18]
mov ecx, ebx
lea esi, [esp + 0x3c]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x1c], ebx
push ecx
mov byte [ebx + eax], 0
push 0xc
jmp 0x40b816
cmp ax, 0xe
jne 0x40b730
add byte [esp + 0x10], 0xa
mov edx, dword [esp + 0x10]
and edx, 0xff
mov dword [esp + 0xc], edx
lea edx, [esp + 0x3c]
fild dword [esp + 0xc]
fmul qword [0x44a188]
fadd qword [0x44a180]
fstp qword [esp + 0x24]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
push eax
push ecx
push 0x4502dc
push edx
call fcn.0043e121
lea edi, [esp + 0x4c]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x10
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebx, ecx
cmp ebx, 0xfffffffd
jbe 0x40b697
call fcn.0043d8bb
mov edi, dword [esp + 0x18]
cmp edi, esi
je 0x40b6c7
mov al, byte [edi - 1]
test al, al
je 0x40b6c7
cmp al, 0xff
je 0x40b6c7
cmp ebx, esi
jne 0x40b6f8
dec al
push esi
lea ecx, [esp + 0x18]
mov byte [edi - 1], al
call fcn.00404b50
mov edx, dword [esp + 0x10]
push edx
jmp 0x40b814
cmp ebx, esi
jne 0x40b6e0
push 1
lea ecx, [esp + 0x18]
call fcn.00404b50
mov edx, dword [esp + 0x10]
push edx
jmp 0x40b814
mov eax, dword [esp + 0x20]
cmp eax, 0x1f
ja 0x40b6ed
cmp eax, ebx
jae 0x40b706
push 1
lea ecx, [esp + 0x18]
call fcn.00404b50
push ebx
lea ecx, [esp + 0x18]
call fcn.004052f0
mov edi, dword [esp + 0x18]
mov ecx, ebx
lea esi, [esp + 0x3c]
mov eax, ecx
mov edx, dword [esp + 0x10]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
push edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x20], ebx
mov byte [ebx + ecx], 0
jmp 0x40b814
cmp ax, 0xf
jne 0x40b81f
add byte [esp + 0x10], 0xa
mov eax, dword [esp + 0x10]
and eax, 0xff
mov dword [esp + 0xc], eax
lea eax, [esp + 0x3c]
fild dword [esp + 0xc]
fmul qword [str.333333]
fstp qword [esp + 0x24]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
push ecx
push edx
push 0x4502dc
push eax
call fcn.0043e121
lea edi, [esp + 0x4c]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x10
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebx, ecx
cmp ebx, 0xfffffffd
jbe 0x40b790
call fcn.0043d8bb
mov edi, dword [esp + 0x18]
cmp edi, esi
je 0x40b7b8
mov al, byte [edi - 1]
test al, al
je 0x40b7b8
cmp al, 0xff
je 0x40b7b8
cmp ebx, esi
jne 0x40b7e1
dec al
push esi
lea ecx, [esp + 0x18]
mov byte [edi - 1], al
call fcn.00404b50
jmp 0x40b80f
cmp ebx, esi
jne 0x40b7c9
push 1
lea ecx, [esp + 0x18]
call fcn.00404b50
jmp 0x40b80f
mov eax, dword [esp + 0x20]
cmp eax, 0x1f
ja 0x40b7d6
cmp eax, ebx
jae 0x40b7ef
push 1
lea ecx, [esp + 0x18]
call fcn.00404b50
push ebx
lea ecx, [esp + 0x18]
call fcn.004052f0
mov edi, dword [esp + 0x18]
mov ecx, ebx
lea esi, [esp + 0x3c]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x1c], ebx
mov byte [ebx + eax], 0
mov ecx, dword [esp + 0x10]
push ecx
push 8
lea ecx, [esp + 0x34]
call fcn.0041f470
lea ecx, [esp + 0x54]
call fcn.00421780
push ecx
lea edx, [esp + 0x30]
mov ecx, esp
mov dword [esp + 0x28], esp
push edx
call fcn.0041f070
lea ecx, [esp + 0x78]
call fcn.0041f330
lea eax, [esp + 0x74]
lea ecx, [esp + 0x54]
push eax
mov word [esp + 0x7c], 1
call fcn.004211b0
lea ecx, [esp + 0xa0]
push 1
lea edx, [esp + 0x58]
push ecx
push edx
mov ecx, 0x45386c
call fcn.00401580
cmp ax, 0xff9b
jne 0x40ab6e
push 6
push 5
lea ecx, [esp + 0x40]
call fcn.0041f470
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push 6
push 0x450204
call fcn.0041f090
push ecx
mov byte [esp + 0x1d4], 0x1d
mov ecx, esp
mov dword [esp + 0x18], esp
jmp 0x40ab50
cmp di, 2
jne 0x40beb4
mov eax, dword [ebp + 8]
cmp ax, 9
jne 0x40b9b0
dec byte [esp + 0x10]
mov eax, dword [esp + 0x10]
and eax, 0xff
mov dword [esp + 0xc], eax
lea eax, [esp + 0x48]
fild dword [esp + 0xc]
fmul qword [0x44a1a0]
fstp qword [esp + 0x24]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
push ecx
push edx
push 0x4502dc
push eax
call fcn.0043e121
lea edi, [esp + 0x58]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x10
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebx, ecx
cmp ebx, 0xfffffffd
jbe 0x40b91c
call fcn.0043d8bb
mov edi, dword [esp + 0x18]
cmp edi, esi
je 0x40b944
mov al, byte [edi - 1]
test al, al
je 0x40b944
cmp al, 0xff
je 0x40b944
cmp ebx, esi
jne 0x40b96d
dec al
push esi
lea ecx, [esp + 0x18]
mov byte [edi - 1], al
call fcn.00404b50
jmp 0x40b99b
cmp ebx, esi
jne 0x40b955
push 1
lea ecx, [esp + 0x18]
call fcn.00404b50
jmp 0x40b99b
mov eax, dword [esp + 0x20]
cmp eax, 0x1f
ja 0x40b962
cmp eax, ebx
jae 0x40b97b
push 1
lea ecx, [esp + 0x18]
call fcn.00404b50
push ebx
lea ecx, [esp + 0x18]
call fcn.004052f0
mov edi, dword [esp + 0x18]
mov ecx, ebx
lea esi, [esp + 0x48]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x1c], ebx
mov byte [eax + ebx], 0
lea ecx, [esp + 0x54]
call fcn.00421780
mov ecx, dword [esp + 0x10]
push ecx
push 0xb
jmp 0x40be23
cmp ax, 0xa
jne 0x40baa5
add byte [esp + 0x10], 0xfc
mov edx, dword [esp + 0x10]
and edx, 0xff
mov dword [esp + 0xc], edx
lea edx, [esp + 0x48]
fild dword [esp + 0xc]
fmul qword [0x44a198]
fstp qword [esp + 0x24]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
push eax
push ecx
push 0x4502dc
push edx
call fcn.0043e121
lea edi, [esp + 0x58]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x10
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebx, ecx
cmp ebx, 0xfffffffd
jbe 0x40ba11
call fcn.0043d8bb
mov edi, dword [esp + 0x18]
cmp edi, esi
je 0x40ba39
mov al, byte [edi - 1]
test al, al
je 0x40ba39
cmp al, 0xff
je 0x40ba39
cmp ebx, esi
jne 0x40ba62
dec al
push esi
lea ecx, [esp + 0x18]
mov byte [edi - 1], al
call fcn.00404b50
jmp 0x40ba90
cmp ebx, esi
jne 0x40ba4a
push 1
lea ecx, [esp + 0x18]
call fcn.00404b50
jmp 0x40ba90
mov eax, dword [esp + 0x20]
cmp eax, 0x1f
ja 0x40ba57
cmp eax, ebx
jae 0x40ba70
push 1
lea ecx, [esp + 0x18]
call fcn.00404b50
push ebx
lea ecx, [esp + 0x18]
call fcn.004052f0
mov edi, dword [esp + 0x18]
mov ecx, ebx
lea esi, [esp + 0x48]
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x1c], ebx
mov byte [ecx + ebx], 0
lea ecx, [esp + 0x54]
call fcn.00421780
mov edx, dword [esp + 0x10]
push edx
push 0xa
jmp 0x40be23
cmp ax, 0xb
jne 0x40bb92
dec byte [esp + 0x10]
mov eax, dword [esp + 0x10]
and eax, 0xff
mov dword [esp + 0xc], eax
lea eax, [esp + 0x48]
fild dword [esp + 0xc]
fstp qword [esp + 0x24]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
push ecx
push edx
push 0x4502dc
push eax
call fcn.0043e121
lea edi, [esp + 0x58]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x10
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebx, ecx
cmp ebx, 0xfffffffd
jbe 0x40bafe
call fcn.0043d8bb
mov edi, dword [esp + 0x18]
cmp edi, esi
je 0x40bb26
mov al, byte [edi - 1]
test al, al
je 0x40bb26
cmp al, 0xff
je 0x40bb26
cmp ebx, esi
jne 0x40bb4f
dec al
push esi
lea ecx, [esp + 0x18]
mov byte [edi - 1], al
call fcn.00404b50
jmp 0x40bb7d
cmp ebx, esi
jne 0x40bb37
push 1
lea ecx, [esp + 0x18]
call fcn.00404b50
jmp 0x40bb7d
mov eax, dword [esp + 0x20]
cmp eax, 0x1f
ja 0x40bb44
cmp eax, ebx
jae 0x40bb5d
push 1
lea ecx, [esp + 0x18]
call fcn.00404b50
push ebx
lea ecx, [esp + 0x18]
call fcn.004052f0
mov edi, dword [esp + 0x18]
mov ecx, ebx
lea esi, [esp + 0x48]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x1c], ebx
mov byte [eax + ebx], 0
lea ecx, [esp + 0x54]
call fcn.00421780
mov ecx, dword [esp + 0x10]
push ecx
push 0xa
jmp 0x40be23
cmp ax, 0xc
jne 0x40bc6e
add byte [esp + 0x10], 0xfd
mov edx, dword [esp + 0x10]
and edx, 0xff
mov dword [esp + 0xc], edx
lea edx, [esp + 0x48]
fild dword [esp + 0xc]
fmul qword [0x44a190]
fstp qword [esp + 0x24]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
push eax
push ecx
push 0x4502dc
push edx
call fcn.0043e121
lea edi, [esp + 0x58]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x10
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebx, ecx
cmp ebx, 0xfffffffd
jbe 0x40bbf3
call fcn.0043d8bb
mov edi, dword [esp + 0x18]
cmp edi, esi
je 0x40bc0f
mov al, byte [edi - 1]
test al, al
je 0x40bc0f
cmp al, 0xff
je 0x40bc0f
cmp ebx, esi
jne 0x40bc3b
jmp 0x40bce5
cmp ebx, esi
jne 0x40bc23
push 1
lea ecx, [esp + 0x18]
call fcn.00404b50
jmp 0x40bd5e
mov eax, dword [esp + 0x20]
cmp eax, 0x1f
ja 0x40bc30
cmp eax, ebx
jae 0x40bc49
push 1
lea ecx, [esp + 0x18]
call fcn.00404b50
push ebx
lea ecx, [esp + 0x18]
call fcn.004052f0
mov edi, dword [esp + 0x18]
mov ecx, ebx
lea esi, [esp + 0x48]
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x1c], ebx
mov byte [ecx + ebx], 0
jmp 0x40bd5e
cmp ax, 0xd
jne 0x40bd73
add byte [esp + 0x10], 0xfd
mov eax, dword [esp + 0x10]
and eax, 0xff
mov dword [esp + 0xc], eax
lea eax, [esp + 0x48]
fild dword [esp + 0xc]
fmul qword [0x44a190]
fstp qword [esp + 0x24]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
push ecx
push edx
push 0x4502dc
push eax
call fcn.0043e121
lea edi, [esp + 0x58]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x10
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebx, ecx
cmp ebx, 0xfffffffd
jbe 0x40bcce
call fcn.0043d8bb
mov edi, dword [esp + 0x18]
cmp edi, esi
je 0x40bcf6
mov al, byte [edi - 1]
test al, al
je 0x40bcf6
cmp al, 0xff
je 0x40bcf6
cmp ebx, esi
jne 0x40bd1f
dec al
push esi
lea ecx, [esp + 0x18]
mov byte [edi - 1], al
call fcn.00404b50
jmp 0x40bd5e
cmp ebx, esi
jne 0x40bd07
push 1
lea ecx, [esp + 0x18]
call fcn.00404b50
jmp 0x40bd5e
mov eax, dword [esp + 0x20]
cmp eax, 0x1f
ja 0x40bd14
cmp eax, ebx
jae 0x40bd2d
push 1
lea ecx, [esp + 0x18]
call fcn.00404b50
push ebx
lea ecx, [esp + 0x18]
call fcn.004052f0
mov edi, dword [esp + 0x18]
mov ecx, ebx
lea esi, [esp + 0x48]
mov edx, ecx
lea eax, [esp + 0x37]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push eax
and ecx, 3
mov byte [esp + 0x3b], 0
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x20], ebx
add ecx, ebx
push ecx
call fcn.0040c120
add esp, 8
lea ecx, [esp + 0x54]
call fcn.00421780
mov edx, dword [esp + 0x10]
push edx
push 0xc
jmp 0x40be23
cmp ax, 0xe
jne 0x40bdc4
add byte [esp + 0x10], 0xf6
mov esi, dword [esp + 0x10]
mov eax, esi
and eax, 0xff
mov dword [esp + 0xc], eax
lea eax, [esp + 0x48]
fild dword [esp + 0xc]
fmul qword [0x44a188]
fadd qword [0x44a180]
fstp qword [esp + 0x24]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
push ecx
push edx
push 0x4502dc
push eax
call fcn.0043e121
add esp, 0x10
lea ecx, [esp + 0x48]
push ecx
jmp 0x40be0e
cmp ax, 0xf
jne 0x40be2c
add byte [esp + 0x10], 0xf6
mov esi, dword [esp + 0x10]
mov edx, esi
and edx, 0xff
mov dword [esp + 0xc], edx
lea edx, [esp + 0x48]
fild dword [esp + 0xc]
fmul qword [str.333333]
fstp qword [esp + 0x24]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
push eax
push ecx
push 0x4502dc
push edx
call fcn.0043e121
add esp, 0x10
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0x18]
call fcn.00404800
lea ecx, [esp + 0x54]
call fcn.00421780
push esi
push 8
lea ecx, [esp + 0x34]
call fcn.0041f470
push ecx
lea edx, [esp + 0x30]
mov ecx, esp
mov dword [esp + 0x28], esp
push edx
call fcn.0041f070
lea ecx, [esp + 0x78]
call fcn.0041f330
lea eax, [esp + 0x74]
lea ecx, [esp + 0x54]
push eax
mov word [esp + 0x7c], 1
call fcn.004211b0
lea ecx, [esp + 0xa0]
push 1
lea edx, [esp + 0x58]
push ecx
push edx
mov ecx, 0x45386c
call fcn.00401580
cmp ax, 0xff9b
jne 0x40ab6e
push 6
push 5
lea ecx, [esp + 0x40]
call fcn.0041f470
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push 6
push 0x450204
call fcn.0041f090
push ecx
mov byte [esp + 0x1d4], 0x1e
mov ecx, esp
mov dword [esp + 0x18], esp
jmp 0x40ab50
cmp di, 3
jne 0x40ab6e
lea ecx, [esp + 0x54]
call fcn.00421780
mov eax, dword [ebp + 8]
lea ecx, [esp + 0x68]
push eax
push 5
call fcn.0041f470
push ecx
lea edx, [esp + 0x6c]
mov ecx, esp
mov dword [esp + 0x28], esp
push edx
call fcn.0041f070
lea ecx, [esp + 0x58]
call fcn.004213c0
lea eax, [esp + 0xa0]
push 1
lea ecx, [esp + 0x58]
push eax
push ecx
mov ecx, 0x45386c
call fcn.00401580
cmp ax, 0xff9b
jne 0x40bf45
push 6
push 5
lea ecx, [esp + 0x40]
call fcn.0041f470
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push 6
push 0x450204
call fcn.0041f090
push ecx
mov byte [esp + 0x1d4], 0x1f
mov ecx, esp
mov dword [esp + 0x18], esp
jmp 0x40ab50
push 0
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push 6
push 0x450204
call fcn.0041f090
push ecx
mov byte [esp + 0x1d4], 0x20
mov ecx, esp
mov dword [esp + 0x18], esp
push 6
push 0x4501fc
call fcn.0041f090
mov ecx, 0x4538d8
mov byte [esp + 0x1d4], 0xf
call fcn.004281e0
push 0x320
call fcn.004069d0
add esp, 4
lea ecx, [esp + 0x38]
push 5
push 5
call fcn.0041f470
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push 6
push 0x450204
call fcn.0041f090
push ecx
mov byte [esp + 0x1d4], 0x21
mov ecx, esp
mov dword [esp + 0x18], esp
push 6
push 0x4501f4
jmp 0x40ab57
lea ecx, [esp + 0x2c]
mov byte [esp + 0x1c8], 0xe
call fcn.0041f130
lea ecx, [esp + 0x14]
mov byte [esp + 0x1c8], 0xd
call fcn.004043c0
lea ecx, [esp + 0xa0]
mov byte [esp + 0x1c8], 0xc
call fcn.00404400
lea ecx, [esp + 0xb0]
mov byte [esp + 0x1c8], 0xb
call fcn.00420d00
lea ecx, [esp + 0x54]
mov byte [esp + 0x1c8], 0xa
call fcn.00420d00
lea ecx, [esp + 0x74]
mov byte [esp + 0x1c8], 9
call fcn.00401090
lea ecx, [esp + 0x94]
mov byte [esp + 0x1c8], 8
call fcn.0041f130
lea ecx, [esp + 0x8c]
mov byte [esp + 0x1c8], 7
call fcn.0041f130
lea ecx, [esp + 0x98]
mov byte [esp + 0x1c8], 6
call fcn.0041f130
lea ecx, [esp + 0x38]
mov byte [esp + 0x1c8], 5
call fcn.0041f130
lea ecx, [esp + 0x68]
mov byte [esp + 0x1c8], 4
call fcn.0041f130
lea ecx, [esp + 0x64]
mov byte [esp + 0x1c8], 3
call fcn.0041f130
lea ecx, [esp + 0x70]
mov byte [esp + 0x1c8], 2
call fcn.0041f130
lea ecx, [esp + 0x90]
mov byte [esp + 0x1c8], 1
call fcn.0041f130
lea ecx, [esp + 0x7c]
mov byte [esp + 0x1c8], 0
call fcn.0041f130
lea ecx, [esp + 0x6c]
mov dword [esp + 0x1c8], 0xffffffff
call fcn.0041f130
mov ecx, dword [esp + 0x1c0]
pop edi
pop esi
mov ax, 1
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 4