Function at 0x40af18
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 [0x801e38]
mov dword [esp + 0xb8], edx
mov ebp, dword [0x801e3c]
mov ebx, dword [0x801e28]
mov ecx, dword [0x801e2c]
mov dword [esp + 0x7c], ecx
mov edx, dword [0x801e1c]
mov dword [esp + 0xbc], edx
mov edx, dword [0x801e20]
mov dword [esp + 0x44], edx
test eax, eax
jne 0x40af6e
mov eax, ebp
call fcn.0040a800
mov edx, 0x58b5e4
mov ecx, dword [edx]
mov dword [esp + 0x54], ecx
mov esi, dword [edx + 4]
mov dword [esp + 0x58], esi
mov edi, dword [edx + 8]
mov dword [esp + 0x5c], edi
mov ecx, dword [edx + 0xc]
mov dword [esp + 0x60], ecx
mov ecx, dword [edx + 0x10]
mov dword [esp + 0x64], ecx
mov ecx, dword [edx + 0x14]
mov dword [esp + 0x68], ecx
mov ecx, dword [edx + 0x18]
mov dword [esp + 0x6c], ecx
mov ecx, dword [edx + 0x1c]
mov dword [esp + 0x70], ecx
mov ecx, dword [edx + 0x20]
mov dword [esp + 0x74], ecx
mov edx, dword [edx + 0x24]
mov dword [esp + 0x78], edx
mov esi, dword [esp + 0xbc]
xor edx, edx
mov byte [ebp + 0xa6], 0
test esi, esi
jle 0x40b03e
xor ecx, ecx
mov edi, 1
lea edx, [edi + edi]
add edx, edx
cmp esi, dword [esp + edx + 0x54]
jg 0x40afe9
inc edi
cmp edi, 0xa
jl 0x40afd3
add edi, edi
lea edx, [edi + edi]
mov edi, dword [esp + edx + 0x50]
mov edx, dword [0x5b37c8]
cmp edi, edx
jle 0x40affd
test edx, edx
jle 0x40affd
mov edi, edx
mov edx, dword [0x801e0c]
cmp edi, edx
jle 0x40b00d
test edx, edx
jle 0x40b00d
mov edi, edx
cmp edi, ebx
jle 0x40b017
test ebx, ebx
jle 0x40b017
mov edi, ebx
sub esi, edi
mov dword [ebp + ecx*4 + 0xb0], edi
movzx edx, byte [ebp + 0xa6]
inc edx
mov byte [ebp + 0xa6], dl
movzx ecx, dl
cmp ecx, 0x20
je 0x40c46a
test esi, esi
jg 0x40afce
mov esi, dword [esp + 0x44]
xor ecx, ecx
mov dword [esp + 0x38], ecx
xor ecx, ecx
mov dword [esp + 0x9c], ecx
test esi, esi
jle 0x40b0ec
mov byte [ebp + 0xa7], 0
xor edi, edi
mov eax, dword [esp + 0x7c]
jmp 0x40b06e
mov byte [ebp + 0xa7], dl
mov ecx, 1
lea edx, [ecx + ecx]
add edx, edx
cmp esi, dword [esp + edx + 0x54]
jg 0x40b089
inc ecx
cmp ecx, 0xa
jl 0x40b073
add ecx, ecx
lea edx, [ecx + ecx]
mov edx, dword [esp + edx + 0x50]
mov ecx, dword [0x5b37cc]
cmp edx, ecx
jle 0x40b09d
test ecx, ecx
jle 0x40b09d
mov edx, ecx
mov ecx, dword [0x801e10]
cmp edx, ecx
jle 0x40b0ad
test ecx, ecx
jle 0x40b0ad
mov edx, ecx
cmp edx, eax
jle 0x40b0b7
test eax, eax
jle 0x40b0b7
mov edx, eax
sub esi, edx
mov dword [ebp + edi*4 + 0x130], edx
movzx edx, byte [ebp + 0xa7]
inc edx
mov ecx, edx
movzx edi, dl
cmp edi, 0x20
je 0x40c433
test esi, esi
jg 0x40b068
mov dword [esp + 0x9c], ecx
mov dword [esp + 0x38], edx
movzx edx, byte [ebp + 0xa6]
movsx ecx, byte [0x801704]
test ecx, ecx
je 0x40b113
cmp byte [ebp + 0xa4], 2
je 0x40be13
mov ecx, dword [esp + 0x9c]
mov byte [ebp + 0xa7], cl
jmp 0x40b120
mov ecx, dword [esp + 0x9c]
mov byte [ebp + 0xa7], cl
movzx edx, dl
mov dword [esp + 0x9c], edx
mov ecx, dword [esp + 0x38]
movzx ecx, cl
mov dword [esp + 0x38], ecx
mov eax, dword [0x5d0c60]
test eax, eax
je 0x40c41d
test eax, eax
je 0x40c406
mov eax, dword [0x5d0c64]
test eax, eax
je 0x40c3f1
test eax, eax
je 0x40c3da
mov eax, dword [0x5d0c68]
test eax, eax
je 0x40c3c5
test eax, eax
je 0x40c3ae
mov eax, dword [0x5d0c6c]
test eax, eax
je 0x40c399
test eax, eax
je 0x40c382
mov eax, dword [0x5d0c70]
test eax, eax
je 0x40c36d
test eax, eax
je 0x40c356
mov eax, dword [0x5d0c74]
test eax, eax
je 0x40c341
test eax, eax
je 0x40c32a
mov eax, dword [0x5d0c78]
test eax, eax
je 0x40c315
test eax, eax
je 0x40c2fe
mov eax, dword [0x5d0c7c]
test eax, eax
je 0x40c2e9
test eax, eax
je 0x40c2d2
mov eax, dword [0x5d0c80]
test eax, eax
je 0x40c2bd
test eax, eax
je 0x40c2a6
xor edx, edx
mov dword [esp + 0x34], edx
mov dword [esp + 0xd8], edx
mov esi, dword [0x801da8]
mov edi, dword [esi]
lea ecx, [esp + 0x34]
push edx
push ecx
push 2
push dword [0x5b37c4]
push 0x100
push 0x200
push esi
call dword [edi + 0x90]
test eax, eax
je 0x40b23c
push 0x80bb90
push 0x807270
call fcn.004293ac
add esp, 8
mov edx, dword [esp + 0x38]
test edx, edx
jle 0x40bd6a
mov edi, 1
mov dword [esp + 0xd4], edi
mov edi, 1
xor ecx, ecx
mov dword [esp + 0x50], ecx
xor esi, esi
mov dword [esp + 0x8c], esi
lea esi, [edx - 1]
mov edx, dword [esp + 0x9c]
lea ecx, [edx - 1]
lea eax, [edx + edx]
add eax, eax
xor edx, edx
mov dword [esp + 0x40], eax
mov dword [esp + 0x84], ecx
mov dword [esp + 0x90], esi
mov dword [esp + 0xec], edi
mov dword [esp + 0x3c], ebx
mov dword [esp + 0xa4], ebp
mov eax, dword [esp + 0xa4]
mov ecx, dword [esp + 0x8c]
mov eax, dword [eax + ecx*4 + 0x130]
mov ebx, dword [esp + 0x9c]
test ebx, ebx
jle 0x40c29a
xor esi, esi
xor ebp, ebp
mov ebx, dword [esp + 0x50]
lea ecx, [ebx + eax]
mov edi, dword [esp + 0x44]
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 + 0x21c]
mov dword [esp + 0xa0], edi
mov dword [esp + 0xc0], ecx
mov dword [esp + 0xe0], eax
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0xec]
mov edi, dword [esp + 0xa4]
mov eax, dword [edi + ebp*4 + 0xb0]
mov dword [esp + 0xdc], eax
lea edi, [eax + eax]
add edi, edi
mov ecx, dword [esp + 0xe0]
imul ecx, edi
cmp ecx, dword [0x5b3080]
jle 0x40b37e
mov dword [0x5b3080], ecx
push ecx
push dword [0x5d0c60]
mov dword [esp + 0xf4], edx
call fcn.00467b38
mov edx, dword [esp + 0xf4]
add esp, 8
mov dword [0x5d0c60], eax
test eax, eax
je 0x40be88
movsx eax, byte [0x801704]
test eax, eax
je 0x40b39d
mov eax, dword [esp + 0xa4]
cmp byte [eax + 0xa4], 2
je 0x40b8a4
mov ecx, dword [esp + 0x90]
mov eax, dword [esp + 0x8c]
cmp eax, ecx
je 0x40b596
mov eax, dword [esp + 0x84]
cmp ebp, eax
je 0x40b480
mov ecx, dword [esp + 0x50]
mov eax, dword [esp + 0xc0]
cmp ecx, eax
jge 0x40b8a4
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 + 0x90]
add eax, dword [esp + 0xd0]
lea edx, [ebx + ebx]
add edx, edx
add eax, edx
mov edx, esi
add edx, dword [0x5d0c60]
push edi
push eax
push edx
call dword [0x5d048c]
add esp, 0xc
add esi, edi
add ebx, dword [esp + 0xbc]
inc ebp
mov edx, dword [esp + 0xc0]
cmp ebp, edx
jl 0x40b41b
mov ebx, dword [esp + 0xac]
mov ebp, dword [esp + 0x94]
mov esi, dword [esp + 0x98]
mov edx, dword [esp + 0xec]
jmp 0x40b8a4
mov ecx, dword [esp + 0xbc]
sub ecx, esi
add ecx, ecx
add ecx, ecx
mov dword [esp + 0xb0], ecx
mov ecx, dword [esp + 0x50]
mov eax, dword [esp + 0xc0]
cmp ecx, eax
jge 0x40b8a4
xor eax, eax
mov dword [esp + 0x4c], 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 + 0x4c]
mov edi, dword [esp + 0xb0]
mov eax, dword [esp + 0xb8]
mov eax, dword [eax + 0x90]
add eax, dword [esp + 0xc8]
lea edx, [ebp + ebp]
add edx, edx
add eax, edx
mov edx, esi
add edx, dword [0x5d0c60]
push edi
push eax
push edx
call dword [0x5d048c]
mov edx, dword [0x5d0c60]
add edx, edi
add edx, esi
push dword [0x801304]
mov eax, dword [esp + 0xdc]
push eax
push edx
call dword [0x5d0488]
add esp, 0x18
add esi, dword [esp + 0xc4]
add ebp, dword [esp + 0xbc]
inc ebx
mov eax, dword [esp + 0xc0]
cmp ebx, eax
jl 0x40b50c
mov ebx, dword [esp + 0xac]
mov ebp, dword [esp + 0x94]
mov esi, dword [esp + 0x98]
mov edx, dword [esp + 0xec]
jmp 0x40b8a4
mov eax, dword [esp + 0x84]
cmp ebp, eax
je 0x40b6fc
mov eax, dword [esp + 0x50]
mov dword [esp + 0xb0], eax
mov ecx, dword [esp + 0xb4]
cmp eax, ecx
jge 0x40bead
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 + 0x90]
add ecx, dword [esp + 0xcc]
lea edx, [ebp + ebp]
add edx, edx
add ecx, edx
mov eax, ebx
add eax, dword [0x5d0c60]
push edi
push ecx
push eax
call dword [0x5d048c]
add esp, 0xc
add ebx, edi
add ebp, dword [esp + 0xbc]
inc esi
mov eax, dword [esp + 0xb4]
cmp esi, eax
jl 0x40b616
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 0x40b8a4
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 [0x5d0c60]
push dword [0x801304]
push edi
push eax
call dword [0x5d0488]
add esp, 0xc
add esi, edi
inc ebx
cmp ebx, ebp
jl 0x40b6bb
mov ebx, dword [esp + 0xac]
mov ebp, dword [esp + 0x94]
mov esi, dword [esp + 0x98]
mov edx, dword [esp + 0xec]
jmp 0x40b8a4
mov eax, dword [esp + 0xbc]
sub eax, esi
add eax, eax
add eax, eax
mov dword [esp + 0xb0], eax
mov ecx, dword [esp + 0x50]
mov dword [esp + 0xd0], ecx
mov eax, dword [esp + 0xb4]
cmp ecx, eax
jge 0x40c28c
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 + 0x4c], 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 + 0x90]
add ecx, dword [esp + 0xcc]
lea edx, [ebp + ebp]
add edx, edx
add ecx, edx
mov eax, ebx
add eax, dword [0x5d0c60]
push edi
push ecx
push eax
call dword [0x5d048c]
mov edx, dword [0x5d0c60]
add edx, edi
add edx, ebx
push dword [0x801304]
mov eax, dword [esp + 0xd8]
push eax
push edx
call dword [0x5d0488]
add esp, 0x18
add ebx, dword [esp + 0xc4]
add ebp, dword [esp + 0xbc]
inc esi
mov eax, dword [esp + 0xb4]
cmp esi, eax
jl 0x40b79c
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 0x40b8a4
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 [0x5d0c60]
push dword [0x801304]
push edi
push eax
call dword [0x5d0488]
add esp, 0xc
add esi, edi
inc ebx
cmp ebx, ebp
jl 0x40b868
mov ebx, dword [esp + 0xac]
mov ebp, dword [esp + 0x94]
mov esi, dword [esp + 0x98]
mov edx, dword [esp + 0xec]
movsx eax, byte [0x8012d4]
test eax, eax
je 0x40b8c8
movsx eax, byte [0x5b36e0]
test eax, eax
je 0x40b8c1
mov ecx, 0x100005
jmp 0x40b8cd
mov ecx, 5
jmp 0x40b8cd
mov ecx, 5
movsx eax, byte [0x8012e0]
test eax, eax
jne 0x40b94f
mov eax, dword [esp + 0x88]
test eax, eax
je 0x40b8ed
mov edx, 1
jmp 0x40ba31
mov dword [esp + 0xa8], ecx
mov ecx, dword [0x801da8]
mov eax, dword [ecx]
xor edi, edi
push edi
mov edx, dword [esp + 0xa4]
push edx
push edi
push dword [0x801da0]
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 0x40ba31
cmp edx, 1
jne 0x40b9c5
mov eax, dword [esp + 0x88]
test eax, eax
je 0x40b969
mov edx, 2
jmp 0x40ba31
mov dword [esp + 0xa8], ecx
mov ecx, dword [0x801da8]
mov eax, dword [ecx]
xor edi, edi
push edi
mov edx, dword [esp + 0xa4]
push edx
push edi
push dword [0x801da0]
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 0x40ba31
mov eax, dword [esp + 0x88]
test eax, eax
je 0x40b9d7
mov edx, 4
jmp 0x40ba31
mov dword [esp + 0xa8], ecx
mov ecx, dword [0x801da8]
mov eax, dword [ecx]
xor edi, edi
push edi
mov edx, dword [esp + 0xa4]
push edx
push edi
push dword [0x801da0]
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 0x40c25e
mov dword [esp + 0xf0], 0
mov eax, dword [0x5d0c60]
mov dword [esp + 0xc4], eax
movsx edi, byte [0x801704]
test edi, edi
je 0x40ba74
mov eax, dword [esp + 0xa4]
cmp byte [eax + 0xa4], 2
jne 0x40ba74
xor edx, edx
test edx, edx
jbe 0x40bd05
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 + 0x21c]
mov esi, dword [ebp]
lea edx, [esp + 0xf0]
push edx
push edi
push ebp
call dword [esi + 0x48]
test eax, eax
jne 0x40bcb4
mov eax, dword [0x801da8]
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 [0x5b37c4]
push esi
push ebp
push eax
call dword [ecx + 0x90]
test eax, eax
je 0x40bb0e
push 0x80bb90
push 0x807270
call fcn.004293ac
add esp, 8
cmp edi, 1
je 0x40c1f8
cmp edi, 2
je 0x40c184
cmp edi, 3
je 0x40c110
cmp edi, 4
je 0x40c09c
cmp edi, 5
je 0x40c028
cmp edi, 6
je 0x40bfb4
cmp edi, 7
je 0x40bf49
cmp edi, 8
je 0x40bef3
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 0x40bed7
test esi, esi
jle 0x40bbd8
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 [0x5d048c]
add esp, 0xc
add ebx, ebp
inc esi
cmp esi, edi
jl 0x40bba6
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 0x40bebb
xor eax, eax
test eax, eax
jne 0x40bc84
movsx eax, byte [0x8012d4]
test eax, eax
jne 0x40bc3f
mov edx, dword [0x801da8]
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 0x40bc66
push 0x80b814
push 0x807270
call fcn.004293ac
add esp, 8
jmp 0x40bc66
xor edx, edx
push dword [0x801304]
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.004c5a47
mov eax, dword [esp + 0xf0]
test eax, eax
je 0x40bc77
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov dword [esp + 0xf0], 0
jmp 0x40bc96
push 0x80bce8
push 0x80b37c
call fcn.0040c5ac
add esp, 8
mov eax, dword [esp + 0xd8]
test eax, eax
je 0x40bca7
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov dword [esp + 0xd8], 0
jmp 0x40bcc9
push edi
push 2
push 0x80b860
push 0x807270
call fcn.004293ac
add esp, 0x10
mov eax, dword [esp + 0xf0]
test eax, eax
je 0x40bcda
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 0x40ba9a
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 0x40b322
mov dword [esp + 0xec], edx
mov ecx, dword [esp + 0xc0]
mov edx, dword [esp + 0x48]
mov dword [esp + 0x50], ecx
add edx, dword [esp + 0x40]
mov eax, dword [esp + 0x8c]
inc eax
mov dword [esp + 0x8c], eax
mov ecx, dword [esp + 0x38]
cmp eax, ecx
jl 0x40b2a0
mov ebx, dword [esp + 0x3c]
mov ebp, dword [esp + 0xa4]
fld dword [0x801e14]
fnstcw word [esp + 0x28]
movzx eax, word [esp + 0x28]
or eax, 0xc00
mov dword [esp + 0x30], eax
fldcw word [esp + 0x30]
fistp qword [ebp + 0x1d0]
fldcw word [esp + 0x28]
fld dword [0x801e18]
fnstcw word [esp + 0x28]
movzx eax, word [esp + 0x28]
or eax, 0xc00
mov dword [esp + 0x30], eax
fldcw word [esp + 0x30]
fistp qword [ebp + 0x1d8]
fldcw word [esp + 0x28]
mov esi, dword [0x801e1c]
mov dword [ebp + 0x78], esi
mov edi, dword [0x801e20]
mov dword [ebp + 0x7c], edi
xor edx, edx
mov byte [ebp + 0xa5], dl
mov dword [ebp + 0xa8], ebx
mov ebx, dword [esp + 0x7c]
mov dword [ebp + 0xac], ebx
mov dword [0x801e1c], edx
mov dword [0x801e20], edx
mov dword [0x801e14], edx
mov dword [0x801e18], edx
mov eax, dword [esp + 0x34]
test eax, eax
je 0x40be06
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 [0x8018dc]
fnstcw word [esp + 0x28]
movzx eax, word [esp + 0x28]
or eax, 0xc00
mov dword [esp + 0x30], eax
fldcw word [esp + 0x30]
fistp dword [ebp + 0xb0]
fldcw word [esp + 0x28]
fild dword [0x8018e0]
fnstcw word [esp + 0x28]
movzx eax, word [esp + 0x28]
or eax, 0xc00
mov dword [esp + 0x30], eax
fldcw word [esp + 0x30]
fistp dword [ebp + 0x130]
fldcw word [esp + 0x28]
mov edx, 1
mov ecx, 1
mov byte [ebp + 0xa6], cl
mov ecx, 1
mov dword [esp + 0x38], ecx
mov ecx, 1
mov byte [ebp + 0xa7], cl
jmp 0x40b120
push 0x80bb7c
push 0x807270
mov dword [esp + 0xf4], edx
call fcn.0040c5ac
mov edx, dword [esp + 0xf4]
add esp, 8
jmp 0x40b37e
xor eax, eax
mov dword [esp + 0xa8], eax
jmp 0x40b67e
push 0x80bf68
push 0x807270
call fcn.004293ac
add esp, 8
mov eax, 2
jmp 0x40bbef
push 0x80bf54
push 0x807270
call fcn.004293ac
add esp, 8
mov eax, 1
jmp 0x40bbef
mov eax, dword [0x5d0c80]
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 [0x5d0c60]
xor ecx, ecx
call fcn.0040c498
jmp 0x40bb56
mov eax, dword [esp + 0xdc]
lea edx, [eax - 1]
mov dword [esp + 0xb0], edx
mov eax, dword [0x5d0c7c]
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 [0x5d0c60]
xor ecx, ecx
call fcn.0040c498
jmp 0x40bb56
mov eax, dword [esp + 0xdc]
lea edx, [eax - 1]
mov dword [esp + 0xb0], edx
mov eax, dword [0x5d0c78]
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 [0x5d0c60]
xor ecx, ecx
call fcn.0040c498
cmp edi, 7
je 0x40bf5a
jmp 0x40bb56
mov eax, dword [esp + 0xdc]
lea edx, [eax - 1]
mov dword [esp + 0xb0], edx
mov eax, dword [0x5d0c74]
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 [0x5d0c60]
xor ecx, ecx
call fcn.0040c498
cmp edi, 6
je 0x40bfc5
jmp 0x40bb56
mov eax, dword [esp + 0xdc]
lea edx, [eax - 1]
mov dword [esp + 0xb0], edx
mov eax, dword [0x5d0c70]
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 [0x5d0c60]
xor ecx, ecx
call fcn.0040c498
cmp edi, 5
je 0x40c039
jmp 0x40bb56
mov eax, dword [esp + 0xdc]
lea edx, [eax - 1]
mov dword [esp + 0xb0], edx
mov eax, dword [0x5d0c6c]
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 [0x5d0c60]
xor ecx, ecx
call fcn.0040c498
cmp edi, 4
je 0x40c0ad
jmp 0x40bb56
mov eax, dword [esp + 0xdc]
lea edx, [eax - 1]
mov dword [esp + 0xb0], edx
mov eax, dword [0x5d0c68]
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 [0x5d0c60]
xor ecx, ecx
call fcn.0040c498
cmp edi, 3
je 0x40c121
jmp 0x40bb56
mov eax, dword [0x5d0c64]
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 [0x5d0c60]
xor ecx, ecx
call fcn.0040c498
cmp edi, 2
je 0x40c195
jmp 0x40bb56
push 0x80bbc0
push 0x807270
call fcn.0040c5ac
push 0x80bcc0
push 0x807270
call fcn.004293ac
mov eax, 0xffffffff
add esp, 0x108
pop ebx
pop ebp
pop esi
pop edi
ret
xor eax, eax
mov dword [esp + 0xa8], eax
jmp 0x40b82f
mov ecx, dword [esp + 0x50]
lea ecx, [ecx + eax]
jmp 0x40bd3c
push 0x80bb7c
push 0x807270
call fcn.0040c5ac
add esp, 8
jmp 0x40b1f2
push 0x100
call fcn.0046769c
pop ecx
mov dword [0x5d0c80], eax
jmp 0x40b1ea
push 0x80bb7c
push 0x807270
call fcn.0040c5ac
add esp, 8
jmp 0x40b1dd
push 0x400
call fcn.0046769c
pop ecx
mov dword [0x5d0c7c], eax
jmp 0x40b1d5
push 0x80bb7c
push 0x807270
call fcn.0040c5ac
add esp, 8
jmp 0x40b1c8
push 0x1000
call fcn.0046769c
pop ecx
mov dword [0x5d0c78], eax
jmp 0x40b1c0
push 0x80bb7c
push 0x807270
call fcn.0040c5ac
add esp, 8
jmp 0x40b1b3
push 0x4000
call fcn.0046769c
pop ecx
mov dword [0x5d0c74], eax
jmp 0x40b1ab
push 0x80bb7c
push 0x807270
call fcn.0040c5ac
add esp, 8
jmp 0x40b19e
push 0x10000
call fcn.0046769c
pop ecx
mov dword [0x5d0c70], eax
jmp 0x40b196
push 0x80bb7c
push 0x807270
call fcn.0040c5ac
add esp, 8
jmp 0x40b189
push 0x40000
call fcn.0046769c
pop ecx
mov dword [0x5d0c6c], eax
jmp 0x40b181
push 0x80bb7c
push 0x807270
call fcn.0040c5ac
add esp, 8
jmp 0x40b174
push 0x100000
call fcn.0046769c
pop ecx
mov dword [0x5d0c68], eax
jmp 0x40b16c
push 0x80bb7c
push 0x807270
call fcn.0040c5ac
add esp, 8
jmp 0x40b15f
push 0x400000
call fcn.0046769c
pop ecx
mov dword [0x5d0c64], eax
jmp 0x40b157
push 0x80bb7c
push 0x807270
call fcn.0040c5ac
add esp, 8
jmp 0x40b14a
push dword [0x5b3080]
call fcn.0046769c
pop ecx
mov dword [0x5d0c60], eax
jmp 0x40b142
mov dword [esp + 0x38], edx
mov byte [ebp + 0xa7], dl
push esi
mov eax, dword [esp + 0x48]
push eax
mov ecx, dword [esp + 0xc4]
push ecx
push 0x80bb48
push 0x807270
call fcn.0040c5ac
mov eax, 0xffffffff
add esp, 0x10c
pop ebx
pop ebp
pop esi
pop edi
ret
xor eax, eax
push eax
push eax
push 0x80bb30
push eax
call dword [0x58b3c0]
mov eax, 0xffffffff
add esp, 0xf8
pop ebx
pop ebp
pop esi
pop edi
ret