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

Disassembly:
push edi
push esi
push ebp
push ebx
sub esp, 0xf8
mov dword [esp + 0x88], eax
mov edx, dword [0x834c78]
mov dword [esp + 0xb8], edx
mov ebp, dword [0x834c7c]
mov esi, dword [0x834c68]
mov ecx, dword [0x834c6c]
mov dword [esp + 0x7c], ecx
mov ebx, dword [0x834c5c]
mov edx, dword [0x834c60]
mov dword [esp + 0x40], edx
test eax, eax
jne 0x4079b3
mov eax, ebp
call fcn.00407898
mov edx, 0x5774a0
mov ecx, dword [edx]
mov dword [esp + 0x50], ecx
mov edi, dword [edx + 4]
mov dword [esp + 0x54], edi
mov ecx, dword [edx + 8]
mov dword [esp + 0x58], ecx
mov ecx, dword [edx + 0xc]
mov dword [esp + 0x5c], ecx
mov ecx, dword [edx + 0x10]
mov dword [esp + 0x60], ecx
mov ecx, dword [edx + 0x14]
mov dword [esp + 0x64], ecx
mov ecx, dword [edx + 0x18]
mov dword [esp + 0x68], ecx
mov ecx, dword [edx + 0x1c]
mov dword [esp + 0x6c], ecx
mov ecx, dword [edx + 0x20]
mov dword [esp + 0x70], ecx
mov edx, dword [edx + 0x24]
mov dword [esp + 0x74], edx
mov ecx, ebx
xor edx, edx
mov dword [esp + 0x4c], edx
mov byte [ebp + 0x10e], 0
test ebx, ebx
jle 0x407a99
xor edi, edi
mov eax, 1
lea edx, [eax + eax]
add edx, edx
cmp ecx, dword [esp + edx + 0x50]
jg 0x407a31
inc eax
cmp eax, 0xa
jl 0x407a1b
add eax, eax
lea edx, [eax + eax]
mov edx, dword [esp + edx + 0x4c]
mov eax, dword [0x59b7e8]
cmp edx, eax
jle 0x407a44
test eax, eax
jle 0x407a44
mov edx, eax
mov eax, dword [0x834c4c]
cmp edx, eax
jle 0x407a53
test eax, eax
jle 0x407a53
mov edx, eax
cmp edx, esi
jle 0x407a5d
test esi, esi
jle 0x407a5d
mov edx, esi
cmp ebx, 0x200
jge 0x407a6e
cmp ecx, ebx
jne 0x407a6e
mov edx, 0x200
sub ecx, edx
mov dword [ebp + edi*4 + 0x118], edx
movzx edx, byte [ebp + 0x10e]
inc edx
mov byte [ebp + 0x10e], dl
movzx edi, dl
cmp edi, 0x20
je 0x408ef1
test ecx, ecx
jg 0x407a16
mov dword [esp + 0x4c], edx
mov eax, dword [esp + 0x40]
xor edx, edx
mov dword [esp + 0x38], edx
xor ecx, ecx
mov dword [esp + 0x9c], ecx
test eax, eax
jle 0x407b53
mov byte [ebp + 0x10f], 0
xor edi, edi
mov dword [esp + 0x78], esi
mov esi, dword [esp + 0x7c]
jmp 0x407acd
mov byte [ebp + 0x10f], cl
mov ecx, 1
lea edx, [ecx + ecx]
add edx, edx
cmp eax, dword [esp + edx + 0x50]
jg 0x407ae8
inc ecx
cmp ecx, 0xa
jl 0x407ad2
add ecx, ecx
lea edx, [ecx + ecx]
mov edx, dword [esp + edx + 0x4c]
mov ecx, dword [0x59b7ec]
cmp edx, ecx
jle 0x407afc
test ecx, ecx
jle 0x407afc
mov edx, ecx
mov ecx, dword [0x834c50]
cmp edx, ecx
jle 0x407b0c
test ecx, ecx
jle 0x407b0c
mov edx, ecx
cmp edx, esi
jle 0x407b16
test esi, esi
jle 0x407b16
mov edx, esi
sub eax, edx
mov dword [ebp + edi*4 + 0x198], edx
movzx ecx, byte [ebp + 0x10f]
inc ecx
mov edx, ecx
movzx edi, cl
cmp edi, 0x20
je 0x408ebf
test eax, eax
jg 0x407ac7
mov dword [esp + 0x9c], edx
mov dword [esp + 0x38], ecx
mov esi, dword [esp + 0x78]
movzx edx, byte [ebp + 0x10e]
mov dword [esp + 0x4c], edx
movsx edx, byte [0x834470]
test edx, edx
je 0x407b7a
cmp byte [ebp + 0x10c], 2
je 0x40889b
mov edx, dword [esp + 0x9c]
mov byte [ebp + 0x10f], dl
jmp 0x407b87
mov edx, dword [esp + 0x9c]
mov byte [ebp + 0x10f], dl
mov edx, dword [esp + 0x4c]
movzx edx, dl
mov dword [esp + 0x9c], edx
mov ecx, dword [esp + 0x38]
movzx ecx, cl
mov dword [esp + 0x38], ecx
mov eax, dword [0x5b8b28]
test eax, eax
je 0x408ea9
test eax, eax
je 0x408e92
mov eax, dword [0x5b8b2c]
test eax, eax
je 0x408e7d
test eax, eax
je 0x408e66
mov eax, dword [0x5b8b30]
test eax, eax
je 0x408e51
test eax, eax
je 0x408e3a
mov eax, dword [0x5b8b34]
test eax, eax
je 0x408e25
test eax, eax
je 0x408e0e
mov eax, dword [0x5b8b38]
test eax, eax
je 0x408df9
test eax, eax
je 0x408de2
mov eax, dword [0x5b8b3c]
test eax, eax
je 0x408dcd
test eax, eax
je 0x408db6
mov eax, dword [0x5b8b40]
test eax, eax
je 0x408da1
test eax, eax
je 0x408d8a
mov eax, dword [0x5b8b44]
test eax, eax
je 0x408d75
test eax, eax
je 0x408d5e
mov eax, dword [0x5b8b48]
test eax, eax
je 0x408d49
test eax, eax
je 0x408d32
xor edx, edx
mov dword [esp + 0x34], edx
mov dword [esp + 0xd8], edx
mov edi, dword [0x834be8]
mov eax, dword [edi]
lea ecx, [esp + 0x34]
push edx
push ecx
push 2
push dword [0x59b7e4]
push 0x100
push 0x200
push edi
call dword [eax + 0x90]
test eax, eax
je 0x407ca7
push 0x83f1d4
push 0x83a2b0
call fcn.0046d5d8
add esp, 8
mov edx, dword [esp + 0x38]
test edx, edx
jle 0x4087e0
mov edi, 1
mov dword [esp + 0xd4], edi
mov ecx, 1
mov dword [esp + 0xec], ecx
xor edx, edx
mov dword [esp + 0x4c], edx
xor edi, edi
mov edx, dword [esp + 0x38]
lea ecx, [edx - 1]
mov eax, dword [esp + 0x9c]
lea edx, [eax - 1]
mov dword [esp + 0x84], edx
lea eax, [eax + eax]
add eax, eax
xor edx, edx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x90], edi
mov dword [esp + 0xbc], ebx
mov dword [esp + 0x78], esi
mov dword [esp + 0xa4], ebp
mov eax, dword [esp + 0xa4]
mov ecx, dword [esp + 0x90]
mov eax, dword [eax + ecx*4 + 0x198]
mov ebx, dword [esp + 0x9c]
test ebx, ebx
jle 0x408d26
xor esi, esi
xor ebp, ebp
mov ebx, dword [esp + 0x4c]
lea ecx, [ebx + eax]
mov edi, dword [esp + 0x40]
sub edi, ebx
add edi, ebx
mov dword [esp + 0xb4], edi
mov edi, dword [esp + 0xa4]
lea ebx, [edi + edx]
mov dword [esp + 0xf4], ebx
lea ebx, [eax - 1]
mov dword [esp + 0x80], ebx
xor ebx, ebx
lea edi, [edi + edx + 0x280]
mov dword [esp + 0xa0], edi
mov dword [esp + 0xc0], ecx
mov dword [esp + 0xe0], eax
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0xec]
mov edi, dword [esp + 0xa4]
mov eax, dword [edi + ebp*4 + 0x118]
mov dword [esp + 0xdc], eax
lea edi, [eax + eax]
add edi, edi
mov ecx, dword [esp + 0xe0]
imul ecx, edi
cmp ecx, dword [0x59b080]
jle 0x407df4
mov dword [0x59b080], ecx
push ecx
push dword [0x5b8b28]
mov dword [esp + 0xf4], edx
call fcn.0046f8bf
mov edx, dword [esp + 0xf4]
add esp, 8
mov dword [0x5b8b28], eax
test eax, eax
je 0x408914
movsx eax, byte [0x834470]
test eax, eax
je 0x407e13
mov eax, dword [esp + 0xa4]
cmp byte [eax + 0x10c], 2
je 0x40831a
mov ecx, dword [esp + 0x8c]
mov eax, dword [esp + 0x90]
cmp eax, ecx
je 0x40800c
mov eax, dword [esp + 0x84]
cmp ebp, eax
je 0x407ef6
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0xc0]
cmp ecx, eax
jge 0x40831a
xor eax, eax
mov dword [esp + 0xcc], eax
lea eax, [esi + esi]
add eax, eax
mov dword [esp + 0xd0], eax
mov eax, ecx
imul eax, dword [esp + 0xbc]
mov dword [esp + 0xac], ebx
mov dword [esp + 0x94], ebp
mov dword [esp + 0x98], esi
mov dword [esp + 0xec], edx
mov ebx, eax
mov ebp, ecx
mov esi, dword [esp + 0xcc]
mov edx, dword [esp + 0xb8]
mov eax, dword [edx + 0xc0]
add eax, dword [esp + 0xd0]
lea edx, [ebx + ebx]
add edx, edx
add eax, edx
mov edx, esi
add edx, dword [0x5b8b28]
push edi
push eax
push edx
call dword [0x5b856c]
add esp, 0xc
add esi, edi
add ebx, dword [esp + 0xbc]
inc ebp
mov edx, dword [esp + 0xc0]
cmp ebp, edx
jl 0x407e91
mov ebx, dword [esp + 0xac]
mov ebp, dword [esp + 0x94]
mov esi, dword [esp + 0x98]
mov edx, dword [esp + 0xec]
jmp 0x40831a
mov ecx, dword [esp + 0xbc]
sub ecx, esi
add ecx, ecx
add ecx, ecx
mov dword [esp + 0xb0], ecx
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0xc0]
cmp ecx, eax
jge 0x40831a
xor eax, eax
mov dword [esp + 0x48], eax
mov eax, edi
sub eax, dword [esp + 0xb0]
mov dword [esp + 0xcc], eax
lea eax, [esi + esi]
add eax, eax
mov dword [esp + 0xc8], eax
mov eax, ecx
imul eax, dword [esp + 0xbc]
mov dword [esp + 0xd0], eax
mov dword [esp + 0xc4], edi
mov dword [esp + 0xac], ebx
mov dword [esp + 0x94], ebp
mov dword [esp + 0x98], esi
mov dword [esp + 0xec], edx
mov ebx, ecx
mov ebp, eax
mov esi, dword [esp + 0x48]
mov edi, dword [esp + 0xb0]
mov eax, dword [esp + 0xb8]
mov eax, dword [eax + 0xc0]
add eax, dword [esp + 0xc8]
lea edx, [ebp + ebp]
add edx, edx
add eax, edx
mov edx, esi
add edx, dword [0x5b8b28]
push edi
push eax
push edx
call dword [0x5b856c]
mov edx, dword [0x5b8b28]
add edx, edi
add edx, esi
push dword [0x834050]
mov eax, dword [esp + 0xdc]
push eax
push edx
call dword [0x5b8568]
add esp, 0x18
add esi, dword [esp + 0xc4]
add ebp, dword [esp + 0xbc]
inc ebx
mov eax, dword [esp + 0xc0]
cmp ebx, eax
jl 0x407f82
mov ebx, dword [esp + 0xac]
mov ebp, dword [esp + 0x94]
mov esi, dword [esp + 0x98]
mov edx, dword [esp + 0xec]
jmp 0x40831a
mov eax, dword [esp + 0x84]
cmp ebp, eax
je 0x408172
mov eax, dword [esp + 0x4c]
mov dword [esp + 0xb0], eax
mov ecx, dword [esp + 0xb4]
cmp eax, ecx
jge 0x408939
xor eax, eax
mov dword [esp + 0xa8], eax
lea ecx, [esi + esi]
add ecx, ecx
mov dword [esp + 0xcc], ecx
mov eax, dword [esp + 0xb0]
imul eax, dword [esp + 0xbc]
mov dword [esp + 0xc8], eax
mov dword [esp + 0xac], ebx
mov dword [esp + 0x94], ebp
mov dword [esp + 0x98], esi
mov dword [esp + 0xec], edx
mov ebx, dword [esp + 0xa8]
mov ebp, eax
mov esi, dword [esp + 0xb0]
mov eax, dword [esp + 0xb8]
mov ecx, dword [eax + 0xc0]
add ecx, dword [esp + 0xcc]
lea edx, [ebp + ebp]
add edx, edx
add ecx, edx
mov eax, ebx
add eax, dword [0x5b8b28]
push edi
push ecx
push eax
call dword [0x5b856c]
add esp, 0xc
add ebx, edi
add ebp, dword [esp + 0xbc]
inc esi
mov eax, dword [esp + 0xb4]
cmp esi, eax
jl 0x40808c
mov dword [esp + 0xa8], ebx
mov ebx, dword [esp + 0xac]
mov ebp, dword [esp + 0x94]
mov esi, dword [esp + 0x98]
mov edx, dword [esp + 0xec]
mov ecx, dword [esp + 0xb4]
mov eax, dword [esp + 0xc0]
cmp ecx, eax
jge 0x40831a
mov dword [esp + 0xac], ebx
mov dword [esp + 0x94], ebp
mov dword [esp + 0x98], esi
mov dword [esp + 0xec], edx
mov ebx, ecx
mov ebp, eax
mov esi, dword [esp + 0xa8]
mov eax, esi
add eax, dword [0x5b8b28]
push dword [0x834050]
push edi
push eax
call dword [0x5b8568]
add esp, 0xc
add esi, edi
inc ebx
cmp ebx, ebp
jl 0x408131
mov ebx, dword [esp + 0xac]
mov ebp, dword [esp + 0x94]
mov esi, dword [esp + 0x98]
mov edx, dword [esp + 0xec]
jmp 0x40831a
mov eax, dword [esp + 0xbc]
sub eax, esi
add eax, eax
add eax, eax
mov dword [esp + 0xb0], eax
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0xd0], ecx
mov eax, dword [esp + 0xb4]
cmp ecx, eax
jge 0x408d18
xor eax, eax
mov dword [esp + 0xa8], eax
mov ecx, edi
sub ecx, dword [esp + 0xb0]
mov dword [esp + 0xc8], ecx
lea eax, [esi + esi]
add eax, eax
mov dword [esp + 0xcc], eax
mov eax, dword [esp + 0xd0]
imul eax, dword [esp + 0xbc]
mov dword [esp + 0x48], eax
mov dword [esp + 0xc4], edi
mov dword [esp + 0xac], ebx
mov dword [esp + 0x94], ebp
mov dword [esp + 0x98], esi
mov dword [esp + 0xec], edx
mov ebx, dword [esp + 0xa8]
mov ebp, eax
mov esi, dword [esp + 0xd0]
mov edi, dword [esp + 0xb0]
mov eax, dword [esp + 0xb8]
mov ecx, dword [eax + 0xc0]
add ecx, dword [esp + 0xcc]
lea edx, [ebp + ebp]
add edx, edx
add ecx, edx
mov eax, ebx
add eax, dword [0x5b8b28]
push edi
push ecx
push eax
call dword [0x5b856c]
mov edx, dword [0x5b8b28]
add edx, edi
add edx, ebx
push dword [0x834050]
mov eax, dword [esp + 0xd8]
push eax
push edx
call dword [0x5b8568]
add esp, 0x18
add ebx, dword [esp + 0xc4]
add ebp, dword [esp + 0xbc]
inc esi
mov eax, dword [esp + 0xb4]
cmp esi, eax
jl 0x408212
mov dword [esp + 0xa8], ebx
mov edi, dword [esp + 0xc4]
mov ebx, dword [esp + 0xac]
mov ebp, dword [esp + 0x94]
mov esi, dword [esp + 0x98]
mov edx, dword [esp + 0xec]
mov ecx, dword [esp + 0xb4]
mov eax, dword [esp + 0xc0]
cmp ecx, eax
jge 0x40831a
mov dword [esp + 0xac], ebx
mov dword [esp + 0x94], ebp
mov dword [esp + 0x98], esi
mov dword [esp + 0xec], edx
mov ebx, ecx
mov ebp, eax
mov esi, dword [esp + 0xa8]
mov eax, esi
add eax, dword [0x5b8b28]
push dword [0x834050]
push edi
push eax
call dword [0x5b8568]
add esp, 0xc
add esi, edi
inc ebx
cmp ebx, ebp
jl 0x4082de
mov ebx, dword [esp + 0xac]
mov ebp, dword [esp + 0x94]
mov esi, dword [esp + 0x98]
mov edx, dword [esp + 0xec]
movsx eax, byte [0x834020]
test eax, eax
je 0x40833e
movsx eax, byte [0x59b71c]
test eax, eax
je 0x408337
mov ecx, 0x100005
jmp 0x408343
mov ecx, 5
jmp 0x408343
mov ecx, 5
movsx eax, byte [0x83402c]
test eax, eax
jne 0x4083c5
mov eax, dword [esp + 0x88]
test eax, eax
je 0x408363
mov edx, 1
jmp 0x4084a7
mov dword [esp + 0xa8], ecx
mov ecx, dword [0x834be8]
mov eax, dword [ecx]
xor edi, edi
push edi
mov edx, dword [esp + 0xa4]
push edx
push edi
push dword [0x834be0]
mov edx, 1
push edx
push edx
mov edx, dword [esp + 0xf8]
push edx
mov edx, dword [esp + 0xf8]
push edx
push ecx
mov ecx, dword [esp + 0xcc]
mov dword [esp + 0xcc], ecx
call dword [eax + 0x5c]
mov ecx, dword [esp + 0xa8]
mov dword [esp + 0xd4], eax
mov edx, 1
jmp 0x4084a7
cmp edx, 1
jne 0x40843b
mov eax, dword [esp + 0x88]
test eax, eax
je 0x4083df
mov edx, 2
jmp 0x4084a7
mov dword [esp + 0xa8], ecx
mov ecx, dword [0x834be8]
mov eax, dword [ecx]
xor edi, edi
push edi
mov edx, dword [esp + 0xa4]
push edx
push edi
push dword [0x834be0]
push 1
push 2
mov edx, dword [esp + 0xf8]
push edx
mov edx, dword [esp + 0xf8]
push edx
push ecx
mov ecx, dword [esp + 0xcc]
mov dword [esp + 0xcc], ecx
call dword [eax + 0x5c]
mov ecx, dword [esp + 0xa8]
mov dword [esp + 0xd4], eax
mov edx, 2
jmp 0x4084a7
mov eax, dword [esp + 0x88]
test eax, eax
je 0x40844d
mov edx, 4
jmp 0x4084a7
mov dword [esp + 0xa8], ecx
mov ecx, dword [0x834be8]
mov eax, dword [ecx]
xor edi, edi
push edi
mov edx, dword [esp + 0xa4]
push edx
push edi
push dword [0x834be0]
push 1
push 4
mov edx, dword [esp + 0xf8]
push edx
mov edx, dword [esp + 0xf8]
push edx
push ecx
mov ecx, dword [esp + 0xcc]
mov dword [esp + 0xcc], ecx
call dword [eax + 0x5c]
mov ecx, dword [esp + 0xa8]
mov dword [esp + 0xd4], eax
mov edx, 4
mov eax, dword [esp + 0xd4]
test eax, eax
jl 0x408cea
mov dword [esp + 0xf0], 0
mov eax, dword [0x5b8b28]
mov dword [esp + 0xc4], eax
movsx edi, byte [0x834470]
test edi, edi
je 0x4084ea
mov eax, dword [esp + 0xa4]
cmp byte [eax + 0x10c], 2
jne 0x4084ea
xor edx, edx
test edx, edx
jbe 0x40877b
xor edi, edi
mov dword [esp + 0xa8], ecx
mov dword [esp + 0x94], ebp
mov dword [esp + 0x98], esi
mov dword [esp + 0xec], edx
mov eax, dword [esp + 0xf4]
mov ebp, dword [eax + ebx + 0x280]
mov esi, dword [ebp]
lea edx, [esp + 0xf0]
push edx
push edi
push ebp
call dword [esi + 0x48]
test eax, eax
jne 0x40872a
mov eax, dword [0x834be8]
mov ecx, edi
mov ebp, dword [esp + 0xdc]
sar ebp, cl
mov ecx, edi
mov esi, dword [esp + 0xe0]
sar esi, cl
mov ecx, dword [eax]
lea edx, [esp + 0xd8]
push 0
push edx
push 2
push dword [0x59b7e4]
push esi
push ebp
push eax
call dword [ecx + 0x90]
test eax, eax
je 0x408584
push 0x83f1d4
push 0x83a2b0
call fcn.0046d5d8
add esp, 8
cmp edi, 1
je 0x408c84
cmp edi, 2
je 0x408c10
cmp edi, 3
je 0x408b9c
cmp edi, 4
je 0x408b28
cmp edi, 5
je 0x408ab4
cmp edi, 6
je 0x408a40
cmp edi, 7
je 0x4089d5
cmp edi, 8
je 0x40897f
mov edx, dword [esp + 0xd8]
mov dword [esp + 0xb0], edx
mov ecx, dword [edx]
lea eax, [esp + 0xe4]
push 0x2000
push 0
push eax
push edx
call dword [ecx + 0x34]
test eax, eax
jl 0x408963
test esi, esi
jle 0x40864e
xor edx, edx
add ebp, ebp
add ebp, ebp
mov eax, dword [esp + 0xc4]
mov dword [esp + 0xd0], edi
mov dword [esp + 0xac], ebx
mov ebx, eax
mov edi, esi
mov esi, edx
mov ecx, esi
imul ecx, dword [esp + 0xe4]
add ecx, dword [esp + 0xe8]
push ebp
push ebx
push ecx
call dword [0x5b856c]
add esp, 0xc
add ebx, ebp
inc esi
cmp esi, edi
jl 0x40861c
mov edi, dword [esp + 0xd0]
mov ebx, dword [esp + 0xac]
mov eax, dword [esp + 0xb0]
mov edx, dword [eax]
push eax
call dword [edx + 0x38]
test eax, eax
jl 0x408947
xor eax, eax
test eax, eax
jne 0x4086fa
movsx eax, byte [0x834020]
test eax, eax
jne 0x4086b5
mov edx, dword [0x834be8]
mov ebp, dword [edx]
xor eax, eax
push eax
push dword [esp + 0xf4]
push eax
push dword [esp + 0xe4]
push edx
call dword [ebp + 0x78]
mov dword [esp + 0xd4], eax
test eax, eax
je 0x4086dc
push 0x83eed4
push 0x83a2b0
call fcn.0046d5d8
add esp, 8
jmp 0x4086dc
xor edx, edx
push dword [0x834050]
mov eax, dword [esp + 0xac]
push eax
push edx
push edx
push dword [esp + 0xe8]
push edx
push edx
push dword [esp + 0x10c]
call fcn.004b1b7f
mov eax, dword [esp + 0xf0]
test eax, eax
je 0x4086ed
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov dword [esp + 0xf0], 0
jmp 0x40870c
push 0x83f328
push 0x83ea70
call fcn.00409034
add esp, 8
mov eax, dword [esp + 0xd8]
test eax, eax
je 0x40871d
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov dword [esp + 0xd8], 0
jmp 0x40873f
push edi
push 2
push 0x83ef20
push 0x83a2b0
call fcn.0046d5d8
add esp, 0x10
mov eax, dword [esp + 0xf0]
test eax, eax
je 0x408750
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov dword [esp + 0xf0], 0
inc edi
mov eax, dword [esp + 0xec]
cmp edi, eax
jb 0x408510
mov ebp, dword [esp + 0x94]
mov esi, dword [esp + 0x98]
mov edx, eax
mov eax, dword [esp + 0xdc]
lea esi, [esi + eax]
add ebx, 4
add dword [esp + 0xa0], 4
inc ebp
mov ecx, dword [esp + 0x9c]
cmp ebp, ecx
jl 0x407d98
mov dword [esp + 0xec], edx
mov ecx, dword [esp + 0xc0]
mov edx, dword [esp + 0x44]
mov dword [esp + 0x4c], ecx
add edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x90]
inc eax
mov dword [esp + 0x90], eax
mov ecx, dword [esp + 0x38]
cmp eax, ecx
jl 0x407d16
mov esi, dword [esp + 0x78]
mov ebp, dword [esp + 0xa4]
fld dword [0x834c54]
fnstcw word [esp + 0x28]
movzx eax, word [esp + 0x28]
or eax, 0xc00
mov dword [esp + 0x30], eax
fldcw word [esp + 0x30]
fistp qword [ebp + 0x238]
fldcw word [esp + 0x28]
fld dword [0x834c58]
fnstcw word [esp + 0x28]
movzx eax, word [esp + 0x28]
or eax, 0xc00
mov dword [esp + 0x30], eax
fldcw word [esp + 0x30]
fistp qword [ebp + 0x240]
fldcw word [esp + 0x28]
mov edi, dword [0x834c5c]
mov dword [ebp + 0x88], edi
mov edx, dword [0x834c60]
mov dword [ebp + 0x8c], edx
mov dword [ebp + 0xf0], edi
mov dword [ebp + 0xf4], edx
xor ecx, ecx
mov byte [ebp + 0x10d], cl
mov dword [ebp + 0x110], esi
mov esi, dword [esp + 0x7c]
mov dword [ebp + 0x114], esi
mov dword [0x834c5c], ecx
mov dword [0x834c60], ecx
mov dword [0x834c54], ecx
mov dword [0x834c58], ecx
mov eax, dword [esp + 0x34]
test eax, eax
je 0x40888e
mov edx, dword [eax]
push eax
call dword [edx + 8]
xor eax, eax
add esp, 0xf8
pop ebx
pop ebp
pop esi
pop edi
ret
fild dword [0x8346fc]
fnstcw word [esp + 0x28]
movzx eax, word [esp + 0x28]
or eax, 0xc00
mov dword [esp + 0x30], eax
fldcw word [esp + 0x30]
fistp dword [ebp + 0x118]
fldcw word [esp + 0x28]
fild dword [0x834700]
fnstcw word [esp + 0x28]
movzx eax, word [esp + 0x28]
or eax, 0xc00
mov dword [esp + 0x30], eax
fldcw word [esp + 0x30]
fistp dword [ebp + 0x198]
fldcw word [esp + 0x28]
mov edx, 1
mov dword [esp + 0x4c], edx
mov ecx, 1
mov byte [ebp + 0x10e], cl
mov edx, 1
mov dword [esp + 0x38], edx
mov edx, 1
mov byte [ebp + 0x10f], dl
jmp 0x407b87
push 0x83f1c0
push 0x83a2b0
mov dword [esp + 0xf4], edx
call fcn.00409034
mov edx, dword [esp + 0xf4]
add esp, 8
jmp 0x407df4
xor eax, eax
mov dword [esp + 0xa8], eax
jmp 0x4080f4
push 0x83f5a8
push 0x83a2b0
call fcn.0046d5d8
add esp, 8
mov eax, 2
jmp 0x408665
push 0x83f594
push 0x83a2b0
call fcn.0046d5d8
add esp, 8
mov eax, 1
jmp 0x408665
mov eax, dword [0x5b8b48]
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc], 0
mov edx, dword [esp + 0xdc]
lea ecx, [edx - 1]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0xe0]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], ebp
mov dword [esp + 0x24], esi
mov edx, dword [0x5b8b28]
xor ecx, ecx
call fcn.00408f20
jmp 0x4085cc
mov eax, dword [esp + 0xdc]
lea edx, [eax - 1]
mov dword [esp + 0xb0], edx
mov eax, dword [0x5b8b44]
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc], 0
mov edx, dword [esp + 0xb0]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x80]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0xdc]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0xe0]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], ebp
mov dword [esp + 0x24], esi
mov edx, dword [0x5b8b28]
xor ecx, ecx
call fcn.00408f20
jmp 0x4085cc
mov eax, dword [esp + 0xdc]
lea edx, [eax - 1]
mov dword [esp + 0xb0], edx
mov eax, dword [0x5b8b40]
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc], 0
mov edx, dword [esp + 0xb0]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x80]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0xdc]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0xe0]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], ebp
mov dword [esp + 0x24], esi
mov edx, dword [0x5b8b28]
xor ecx, ecx
call fcn.00408f20
cmp edi, 7
je 0x4089e6
jmp 0x4085cc
mov eax, dword [esp + 0xdc]
lea edx, [eax - 1]
mov dword [esp + 0xb0], edx
mov eax, dword [0x5b8b3c]
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc], 0
mov edx, dword [esp + 0xb0]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x80]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0xdc]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0xe0]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], ebp
mov dword [esp + 0x24], esi
mov edx, dword [0x5b8b28]
xor ecx, ecx
call fcn.00408f20
cmp edi, 6
je 0x408a51
jmp 0x4085cc
mov eax, dword [esp + 0xdc]
lea edx, [eax - 1]
mov dword [esp + 0xb0], edx
mov eax, dword [0x5b8b38]
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc], 0
mov edx, dword [esp + 0xb0]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x80]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0xdc]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0xe0]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], ebp
mov dword [esp + 0x24], esi
mov edx, dword [0x5b8b28]
xor ecx, ecx
call fcn.00408f20
cmp edi, 5
je 0x408ac5
jmp 0x4085cc
mov eax, dword [esp + 0xdc]
lea edx, [eax - 1]
mov dword [esp + 0xb0], edx
mov eax, dword [0x5b8b34]
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc], 0
mov edx, dword [esp + 0xb0]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x80]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0xdc]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0xe0]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], ebp
mov dword [esp + 0x24], esi
mov edx, dword [0x5b8b28]
xor ecx, ecx
call fcn.00408f20
cmp edi, 4
je 0x408b39
jmp 0x4085cc
mov eax, dword [esp + 0xdc]
lea edx, [eax - 1]
mov dword [esp + 0xb0], edx
mov eax, dword [0x5b8b30]
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc], 0
mov edx, dword [esp + 0xb0]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x80]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0xdc]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0xe0]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], ebp
mov dword [esp + 0x24], esi
mov edx, dword [0x5b8b28]
xor ecx, ecx
call fcn.00408f20
cmp edi, 3
je 0x408bad
jmp 0x4085cc
mov eax, dword [0x5b8b2c]
mov dword [esp + 0xc4], eax
mov edx, dword [esp + 0xdc]
lea ecx, [edx - 1]
mov dword [esp + 0xb0], ecx
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0xe0]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], ebp
mov dword [esp + 0x24], esi
mov edx, dword [0x5b8b28]
xor ecx, ecx
call fcn.00408f20
cmp edi, 2
je 0x408c21
jmp 0x4085cc
push 0x83f200
push 0x83a2b0
call fcn.00409034
push 0x83f300
push 0x83a2b0
call fcn.0046d5d8
mov eax, 0xffffffff
add esp, 0x108
pop ebx
pop ebp
pop esi
pop edi
ret
xor eax, eax
mov dword [esp + 0xa8], eax
jmp 0x4082a5
mov ecx, dword [esp + 0x4c]
lea ecx, [ecx + eax]
jmp 0x4087b2
push 0x83f1c0
push 0x83a2b0
call fcn.00409034
add esp, 8
jmp 0x407c5d
push 0x100
call fcn.0046f65c
pop ecx
mov dword [0x5b8b48], eax
jmp 0x407c55
push 0x83f1c0
push 0x83a2b0
call fcn.00409034
add esp, 8
jmp 0x407c48
push 0x400
call fcn.0046f65c
pop ecx
mov dword [0x5b8b44], eax
jmp 0x407c40
push 0x83f1c0
push 0x83a2b0
call fcn.00409034
add esp, 8
jmp 0x407c33
push 0x1000
call fcn.0046f65c
pop ecx
mov dword [0x5b8b40], eax
jmp 0x407c2b
push 0x83f1c0
push 0x83a2b0
call fcn.00409034
add esp, 8
jmp 0x407c1e
push 0x4000
call fcn.0046f65c
pop ecx
mov dword [0x5b8b3c], eax
jmp 0x407c16
push 0x83f1c0
push 0x83a2b0
call fcn.00409034
add esp, 8
jmp 0x407c09
push 0x10000
call fcn.0046f65c
pop ecx
mov dword [0x5b8b38], eax
jmp 0x407c01
push 0x83f1c0
push 0x83a2b0
call fcn.00409034
add esp, 8
jmp 0x407bf4
push 0x40000
call fcn.0046f65c
pop ecx
mov dword [0x5b8b34], eax
jmp 0x407bec
push 0x83f1c0
push 0x83a2b0
call fcn.00409034
add esp, 8
jmp 0x407bdf
push 0x100000
call fcn.0046f65c
pop ecx
mov dword [0x5b8b30], eax
jmp 0x407bd7
push 0x83f1c0
push 0x83a2b0
call fcn.00409034
add esp, 8
jmp 0x407bca
push 0x400000
call fcn.0046f65c
pop ecx
mov dword [0x5b8b2c], eax
jmp 0x407bc2
push 0x83f1c0
push 0x83a2b0
call fcn.00409034
add esp, 8
jmp 0x407bb5
push dword [0x59b080]
call fcn.0046f65c
pop ecx
mov dword [0x5b8b28], eax
jmp 0x407bad
mov dword [esp + 0x38], ecx
mov edx, ecx
mov byte [ebp + 0x10f], dl
push eax
mov eax, dword [esp + 0x44]
push eax
push ebx
push 0x83f18c
push 0x83a2b0
call fcn.00409034
mov eax, 0xffffffff
add esp, 0x10c
pop ebx
pop ebp
pop esi
pop edi
ret
xor eax, eax
push eax
push eax
push 0x83f174
push eax
call dword [0x5773dc]
mov eax, 0xffffffff
add esp, 0xf8
pop ebx
pop ebp
pop esi
pop edi
ret