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

Disassembly:
sub esp, 0x4e4
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x4fc]
lea eax, [esp + 0xb4]
push 0x20
push eax
push 0x2c
push 1
mov esi, ecx
push edi
mov dword [esp + 0x78], 0
call fcn.00402750
lea ecx, [esp + 0xe8]
push 0x20
push ecx
push 0x2c
push 2
push edi
call fcn.00402750
lea edx, [esp + 0xc4]
push edx
push 0x2c
push 0
push edi
call fcn.004029f0
lea eax, [esp + 0x50]
push eax
push 0x2c
push 3
push edi
call fcn.004029f0
add esp, 0x48
lea ecx, [esp + 0x14]
push ecx
push 0x2c
push 4
push edi
call fcn.004029f0
lea edx, [esp + 0x3c]
push edx
push 0x2c
push 5
push edi
call fcn.004029f0
lea eax, [esp + 0x50]
push eax
push 0x2c
push 6
push edi
call fcn.004029f0
lea ecx, [esp + 0x74]
push ecx
push 0x2c
push 7
push edi
call fcn.004029f0
add esp, 0x40
lea edx, [esp + 0x48]
push edx
push 0x2c
push 8
push edi
call fcn.004029f0
lea eax, [esp + 0x2c]
push eax
push 0x2c
push 9
push edi
call fcn.004029f0
lea ecx, [esp + 0x70]
push ecx
push 0x2c
push 0xa
push edi
call fcn.004029f0
lea edx, [esp + 0xa8]
push edx
push 0x2c
push 0xb
push edi
call fcn.004029f0
add esp, 0x40
lea eax, [esp + 0x54]
push eax
push 0x2c
push 0xc
push edi
call fcn.004029f0
lea ecx, [esp + 0x5c]
push ecx
push 0x2c
push 0xd
push edi
call fcn.004029f0
lea edx, [esp + 0x90]
push edx
push 0x2c
push 0xe
push edi
call fcn.004029f0
lea eax, [esp + 0x9c]
push eax
push 0x2c
push 0xf
push edi
call fcn.004029f0
add esp, 0x40
lea ecx, [esp + 0x74]
push ecx
push 0x2c
push 0x10
push edi
call fcn.004029f0
lea edx, [esp + 0x8c]
push edx
push 0x2c
push 0x11
push edi
call fcn.004029f0
lea eax, [esp + 0x7c]
push eax
push 0x2c
push 0x12
push edi
call fcn.004029f0
lea ecx, [esp + 0x98]
push ecx
push 0x2c
push 0x13
push edi
call fcn.004029f0
mov ebx, dword [esp + 0xdc]
mov ecx, dword [esi + 0xa74997]
add esp, 0x40
lea edx, [esp + 0xb4]
add ebx, ecx
mov ecx, esi
push edx
call fcn.0043a2a0
and eax, 0xffff
lea ecx, [esp + 0xd4]
shl eax, 4
mov edi, eax
xor ebp, ebp
push ecx
mov ecx, esi
mov eax, dword [edi + 0x4daea4]
mov bp, word [edi + 0x4dae9c]
mov dword [esp + 0x2c], eax
call fcn.0043a2e0
and eax, 0xffff
xor ecx, ecx
xor edx, edx
cmp ebp, 0x510
mov cx, word [eax*8 + 0x4db2cc]
mov dword [esp + 0x58], eax
mov dword [esp + 0x94], ecx
mov dword [esp + 0x80], edx
jg 0x4388ce
je 0x4387e8
cmp ebp, 0x302
jg 0x437df4
cmp ebp, 0x301
jge case.0x43825b.1286
cmp ebp, 0x204
jg 0x437bef
je 0x437ace
cmp ebp, 0xff
jg 0x437a8c
je case.0x43825b.1286
lea eax, [ebp - 1]
cmp eax, 0x20
ja case.0x438f04.4109
xor edx, edx
mov dl, byte [eax + 0x43a0d0]
jmp dword [edx*4 + 0x43a0c4]
mov ecx, dword [esp + 0x1c]
xor eax, eax
test ecx, ecx
mov dword [esp + 0x34], 0xffffffff
mov dword [esp + 0x10], eax
jle 0x437a03
jmp 0x437938
mov eax, dword [esp + 0x10]
cmp eax, dword [esp + 0x50]
jge 0x437a03
mov edx, dword [esp + 0x28]
xor ecx, ecx
mov cl, byte [edx + esi + 0x5a7318]
cmp ecx, eax
jne 0x43795d
mov eax, dword [esi + 0x5a6f04]
mov dword [esp + 0x34], eax
mov ecx, esi
call fcn.004206a0
push 0
push 0
push 0
push 1
mov ecx, esi
call fcn.00420a50
mov edx, dword [edi + 0x4daea0]
lea ecx, [esi + 0xa684e1]
mov eax, dword [esp + 0x48]
push 1
push ecx
mov ecx, dword [esp + 0x4c]
push 0xb
push edx
mov edx, dword [esp + 0x40]
push 0x10
push ebx
push 1
push 1
push 0x211
push eax
mov eax, dword [esp + 0x54]
push ecx
mov ecx, dword [esp + 0x40]
push edx
mov edx, dword [esp + 0x48]
push eax
push ecx
push edx
mov ecx, esi
call fcn.004206e0
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
add ecx, eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x4c]
add edx, ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x70]
add eax, edx
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x6c]
add ecx, eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x1c]
inc eax
cmp eax, ecx
mov dword [esp + 0x10], eax
jl 0x437934
xor ecx, ecx
add ebp, 0xfffffffa
mov cl, byte [esi + 0x5a7319]
cmp ebp, ecx
jne 0x437a5e
mov eax, dword [esp + 0x34]
cmp eax, 0xffffffff
jle 0x437a5e
mov ebx, eax
push 2
shl eax, 5
sub eax, ebx
lea edx, [eax + eax*8]
lea eax, [ebx + edx*4]
lea ecx, [ebx + eax*4]
lea eax, [esi + ecx*2]
lea ecx, [eax + 0x2ab314]
mov byte [eax + 0x2ac22c], 1
call fcn.0041c4b0
mov edx, dword [edi + 0x4daea0]
mov eax, dword [esp + 0x4f8]
push ebx
push edx
push eax
push 0x211
mov ecx, esi
call fcn.00420c50
mov al, byte [esi + 0x5a7318]
test al, al
je case.0x438f04.4109
push 0
push 0x700006
mov ecx, esi
call fcn.00420e70
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x4e4
ret 8
cmp ebp, 0x203
jg case.0x438f04.4109
cmp ebp, 0x201
jge case.0x43825b.1286
cmp ebp, 0x101
jl case.0x438f04.4109
cmp ebp, 0x102
jle case.0x43825b.1286
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x4e4
ret 8
mov eax, dword [esp + 0x1c]
mov cl, byte [esi + 0x5a6f04]
xor ebp, ebp
mov byte [esi + 0x5a734e], cl
test eax, eax
jle case.0x438f04.4109
cmp ebp, dword [esp + 0x50]
jge case.0x438f04.4109
mov edx, dword [esp + 0x28]
xor ecx, ecx
lea eax, [edx + ebp]
mov cl, byte [eax + esi + 0x5a7318]
mov dword [esp + 0x64], ecx
fild dword [esp + 0x64]
fmul dword [0x4c058c]
fild dword [esp + 0x5c]
fmul st(1)
call fcn.004b0e40
fild dword [esp + 0x68]
mov dword [esp + 0x60], eax
fmul st(1)
call fcn.004b0e40
mov ecx, esi
mov dword [esp + 0x38], eax
fstp st(0)
call fcn.004206a0
mov eax, dword [edi + 0x4daea0]
lea edx, [esi + 0xa684e1]
push 0
push edx
mov edx, dword [esp + 0x50]
push 0xb
lea ecx, [ebp + 0x700]
push eax
mov eax, dword [esp + 0x54]
push ecx
mov ecx, dword [esp + 0x44]
push ebx
push 1
push 1
push 0x200
push edx
mov edx, dword [esp + 0x54]
push eax
mov eax, dword [esp + 0x40]
push ecx
mov ecx, dword [esp + 0x68]
push edx
mov edx, dword [esp + 0x4c]
add ecx, eax
mov eax, dword [esp + 0x94]
push ecx
add eax, edx
mov ecx, esi
push eax
call fcn.004206e0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x5c]
push 1
add ecx, eax
push 0x221
push ecx
mov ecx, dword [esp + 0x24]
add edx, ecx
push edx
push eax
push ecx
mov ecx, esi
call fcn.004207a0
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
add ecx, eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x4c]
add edx, ecx
inc ebp
cmp ebp, eax
mov dword [esp + 0x14], edx
jl 0x437ae8
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x4e4
ret 8
lea eax, [ebp - 0x205]
cmp eax, 5
ja case.0x438f04.4109
jmp dword [eax*4 + 0x43a0f4]
mov eax, dword [esp + 0x1c]
xor ebp, ebp
test eax, eax
jle case.0x438f04.4109
cmp ebp, dword [esp + 0x50]
jge case.0x438f04.4109
mov ecx, esi
call fcn.004206a0
push 0
push 0
push 0
push 1
mov ecx, esi
call fcn.00420a50
mov eax, dword [edi + 0x4daea0]
mov ecx, dword [esp + 0x4f8]
lea edx, [esi + 0xa684e1]
push 1
push edx
mov edx, dword [esp + 0x50]
push 0xb
push eax
mov eax, dword [esp + 0x54]
push ecx
mov ecx, dword [esp + 0x44]
push ebx
push 1
push 1
push 0x200
push edx
mov edx, dword [esp + 0x54]
push eax
mov eax, dword [esp + 0x40]
push ecx
mov ecx, dword [esp + 0x48]
push edx
push eax
push ecx
mov ecx, esi
call fcn.004206e0
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
add eax, edx
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x4c]
add ecx, eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x70]
add edx, ecx
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x6c]
add eax, edx
inc ebp
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x1c]
cmp ebp, eax
jl 0x437c13
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x4e4
ret 8
mov al, byte [esi + 0x5a6f04]
xor ebp, ebp
mov byte [esi + 0x5a734e], al
mov eax, dword [esp + 0x1c]
test eax, eax
jle case.0x438f04.4109
cmp ebp, dword [esp + 0x50]
jge case.0x438f04.4109
mov ecx, dword [esp + 0x28]
xor eax, eax
lea edx, [ecx + ebp]
mov al, byte [edx + esi + 0x5a7318]
mov dword [esp + 0x64], eax
fild dword [esp + 0x64]
fmul dword [0x4c058c]
fild dword [esp + 0x5c]
fmul st(1)
call fcn.004b0e40
fild dword [esp + 0x68]
mov dword [esp + 0x60], eax
fmul st(1)
call fcn.004b0e40
mov ecx, esi
mov dword [esp + 0x38], eax
fstp st(0)
call fcn.004206a0
mov edx, dword [edi + 0x4daea0]
lea ecx, [esi + 0xa684e1]
push 0
push ecx
mov ecx, dword [esp + 0x50]
push 0xb
lea eax, [ebp + 0x700]
push edx
mov edx, dword [esp + 0x54]
push eax
mov eax, dword [esp + 0x44]
push ebx
push 1
push 1
push 0x200
push ecx
mov ecx, dword [esp + 0x54]
push edx
mov edx, dword [esp + 0x40]
push eax
mov eax, dword [esp + 0x68]
push ecx
mov ecx, dword [esp + 0x4c]
add eax, edx
mov edx, dword [esp + 0x94]
push eax
add edx, ecx
mov ecx, esi
push edx
call fcn.004206e0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x5c]
push 1
add ecx, eax
push 0x221
push ecx
mov ecx, dword [esp + 0x24]
add edx, ecx
push edx
push eax
push ecx
mov ecx, esi
call fcn.004207a0
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
add ecx, eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x4c]
add edx, ecx
inc ebp
cmp ebp, eax
mov dword [esp + 0x14], edx
jl 0x437ced
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x4e4
ret 8
cmp ebp, 0x504
jg 0x43824c
je 0x43817f
cmp ebp, 0x501
jg 0x438038
je 0x437e4a
cmp ebp, 0x401
jl case.0x438f04.4109
cmp ebp, 0x405
jle case.0x43825b.1286
cmp ebp, 0x4a1
je case.0x43825b.1286
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x4e4
ret 8
mov ecx, dword [esp + 0x1c]
xor eax, eax
cmp ecx, eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x10], eax
jle case.0x438f04.4109
jmp 0x437e6a
mov eax, dword [esp + 0x10]
cmp eax, dword [esp + 0x78]
jge case.0x438f04.4109
mov edx, eax
mov ebp, eax
imul edx, dword [esp + 0x7c]
imul ebp, dword [esp + 0x74]
mov dword [esp + 0x38], edx
mov edx, eax
imul eax, dword [esp + 0x68]
imul edx, dword [esp + 0x5c]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x3c], edx
mov edx, dword [esi + 0x5a6f04]
cmp eax, ecx
mov dword [esp + 0x34], edx
mov dword [esp + 0x20], 0
jge 0x437fb5
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x28]
cmp edx, dword [esp + 0x50]
jge 0x437fb5
mov ecx, eax
shl ecx, 6
add ecx, eax
lea edx, [eax + ecx*2]
mov eax, dword [esi + edx*2 + 0x79d0b1]
test eax, eax
je 0x437ef1
mov eax, dword [esp + 0x20]
test eax, eax
je 0x437ef1
mov eax, dword [esi + 0x5a6f04]
mov dword [esp + 0x34], eax
mov ecx, esi
call fcn.004206a0
push 0
push 0
push 0
push 1
mov ecx, esi
call fcn.00420a50
mov eax, dword [esp + 0x10]
mov edx, dword [edi + 0x4daea0]
lea ecx, [esi + 0xa684e1]
push 1
push ecx
mov ecx, dword [esp + 0x50]
push 0xb
add eax, 0x100
push edx
mov edx, dword [esp + 0x54]
push eax
mov eax, dword [esp + 0x44]
push ebx
push 1
push 1
push 0x211
push ecx
mov ecx, dword [esp + 0x68]
push edx
mov edx, dword [esp + 0x58]
add ecx, eax
mov eax, dword [esp + 0x68]
add eax, edx
mov edx, dword [esp + 0x64]
push ecx
mov ecx, dword [esp + 0x44]
push eax
mov eax, dword [esp + 0x4c]
add edx, ecx
lea ecx, [eax + ebp]
push edx
push ecx
mov ecx, esi
call fcn.004206e0
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x54]
add eax, edx
add ebp, ecx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x70]
add ecx, eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x6c]
add eax, ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x24]
inc eax
inc ecx
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x1c]
cmp eax, ecx
mov dword [esp + 0x24], eax
jl 0x437eb8
mov ebp, dword [esp + 0x34]
test ebp, ebp
je 0x438011
mov eax, ebp
push 2
shl eax, 5
sub eax, ebp
lea edx, [eax + eax*8]
lea eax, [ebp + edx*4]
lea ecx, [ebp + eax*4]
lea eax, [esi + ecx*2]
lea ecx, [eax + 0x2ab314]
mov byte [eax + 0x2ac22c], 1
call fcn.0041c4b0
mov eax, dword [esp + 0x10]
mov edx, dword [edi + 0x4daea0]
push ebp
add eax, 0x100
push edx
push eax
push 0x211
mov ecx, esi
call fcn.00420c50
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x1c]
inc eax
mov dword [esp + 0x28], eax
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x24]
inc edx
cmp eax, ecx
mov dword [esp + 0x10], edx
jl 0x437e66
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x4e4
ret 8
sub ebp, 0x502
je 0x438059
dec ebp
je 0x438581
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x4e4
ret 8
mov eax, dword [esp + 0x1c]
xor ebp, ebp
cmp eax, ebp
mov dword [esp + 0x28], ebp
jle case.0x438f04.4109
cmp ebp, dword [esp + 0x50]
jge case.0x438f04.4109
mov ecx, dword [esp + 0x28]
lea eax, [ecx + ebp]
mov edx, eax
shl edx, 6
add edx, eax
lea eax, [eax + edx*2]
lea ecx, [esi + eax*2 + 0x79cfed]
call fcn.004538b0
mov dword [esp + 0x64], eax
fild dword [esp + 0x64]
fmul dword [0x4c05a8]
fild dword [esp + 0x5c]
fmul st(1)
call fcn.004b0e40
fild dword [esp + 0x68]
mov dword [esp + 0x60], eax
fmul st(1)
call fcn.004b0e40
mov ecx, esi
mov dword [esp + 0x38], eax
fstp st(0)
call fcn.004206a0
mov edx, dword [edi + 0x4daea0]
lea ecx, [esi + 0xa684e1]
push 0
push ecx
mov ecx, dword [esp + 0x50]
push 0xb
lea eax, [ebp + 0x200]
push edx
mov edx, dword [esp + 0x54]
push eax
mov eax, dword [esp + 0x44]
push ebx
push 1
push 1
push 0x200
push ecx
mov ecx, dword [esp + 0x54]
push edx
mov edx, dword [esp + 0x40]
push eax
mov eax, dword [esp + 0x68]
push ecx
mov ecx, dword [esp + 0x4c]
add eax, edx
mov edx, dword [esp + 0x94]
push eax
add edx, ecx
mov ecx, esi
push edx
call fcn.004206e0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x5c]
push 1
add ecx, eax
push 0x221
push ecx
mov ecx, dword [esp + 0x24]
add edx, ecx
push edx
push eax
push ecx
mov ecx, esi
call fcn.004207a0
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
add ecx, eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x4c]
add edx, ecx
inc ebp
cmp ebp, eax
mov dword [esp + 0x14], edx
jl 0x43806b
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x4e4
ret 8
mov eax, dword [esp + 0x1c]
xor ebp, ebp
test eax, eax
jle case.0x438f04.4109
cmp ebp, dword [esp + 0x50]
jge case.0x438f04.4109
mov ecx, esi
call fcn.004206a0
push 0
push 0
push 0
push 0x63
mov ecx, esi
call fcn.00420a50
mov eax, dword [edi + 0x4daea0]
lea edx, [esi + 0xa684e1]
push 1
push edx
mov edx, dword [esp + 0x50]
push 0xb
lea ecx, [ebp + 0x3f0]
push eax
mov eax, dword [esp + 0x54]
push ecx
mov ecx, dword [esp + 0x44]
push ebx
push 1
push 1
push 0x200
push edx
mov edx, dword [esp + 0x54]
push eax
mov eax, dword [esp + 0x40]
push ecx
mov ecx, dword [esp + 0x48]
push edx
push eax
push ecx
mov ecx, esi
call fcn.004206e0
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
add eax, edx
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x4c]
add ecx, eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x70]
add edx, ecx
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x6c]
add eax, edx
inc ebp
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x1c]
test eax, eax
jg 0x43818d
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x4e4
ret 8
add ebp, 0xfffffafb
cmp ebp, 4
ja case.0x438f04.4109
jmp dword [ebp*4 + 0x43a10c]
mov ecx, dword [esp + 0x1c]
xor eax, eax
cmp ecx, eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x10], eax
jle case.0x438f04.4109
jmp 0x438282
mov eax, dword [esp + 0x10]
cmp eax, dword [esp + 0x78]
jge case.0x438f04.4109
mov edx, eax
mov ebp, eax
imul edx, dword [esp + 0x7c]
imul ebp, dword [esp + 0x74]
mov dword [esp + 0x38], edx
mov edx, eax
imul eax, dword [esp + 0x68]
imul edx, dword [esp + 0x5c]
mov dword [esp + 0x40], eax
mov eax, dword [esi + 0x5a6f04]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x24]
cmp eax, ecx
mov dword [esp + 0x3c], edx
mov dword [esp + 0x20], 0
jge 0x4383cb
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x28]
cmp edx, dword [esp + 0x50]
jge 0x4383cb
lea ecx, [eax*8]
sub ecx, eax
mov eax, dword [esi + ecx*4 + 0x79d615]
test eax, eax
je 0x438306
mov eax, edx
test eax, eax
je 0x438306
mov edx, dword [esi + 0x5a6f04]
mov dword [esp + 0x34], edx
mov ecx, esi
call fcn.004206a0
push 0
push 0
push 0
push 1
mov ecx, esi
call fcn.00420a50
mov edx, dword [esp + 0x10]
mov ecx, dword [edi + 0x4daea0]
lea eax, [esi + 0xa684e1]
push 1
push eax
mov eax, dword [esp + 0x50]
push 0xb
add edx, 0x110
push ecx
mov ecx, dword [esp + 0x54]
push edx
mov edx, dword [esp + 0x44]
push ebx
push 1
push 1
push 0x211
push eax
mov eax, dword [esp + 0x68]
push ecx
mov ecx, dword [esp + 0x58]
add eax, edx
mov edx, dword [esp + 0x68]
add edx, ecx
mov ecx, dword [esp + 0x64]
push eax
mov eax, dword [esp + 0x44]
push edx
mov edx, dword [esp + 0x4c]
add ecx, eax
lea eax, [edx + ebp]
push ecx
push eax
mov ecx, esi
call fcn.004206e0
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x54]
add edx, ecx
mov ecx, dword [esp + 0x40]
add ebp, eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x70]
add eax, edx
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x6c]
add ecx, eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x20]
inc eax
inc ecx
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x1c]
cmp eax, ecx
mov dword [esp + 0x24], eax
jl 0x4382d0
mov ebp, dword [esp + 0x34]
test ebp, ebp
je 0x438428
mov eax, ebp
push 2
shl eax, 5
sub eax, ebp
lea ecx, [eax + eax*8]
lea edx, [ebp + ecx*4]
lea eax, [ebp + edx*4]
lea eax, [esi + eax*2]
lea ecx, [eax + 0x2ab314]
mov byte [eax + 0x2ac22c], 1
call fcn.0041c4b0
mov edx, dword [esp + 0x10]
mov ecx, dword [edi + 0x4daea0]
push ebp
add edx, 0x110
push ecx
push edx
push 0x211
mov ecx, esi
call fcn.00420c50
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x1c]
inc eax
mov dword [esp + 0x28], eax
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x24]
inc edx
cmp eax, ecx
mov dword [esp + 0x10], edx
jl 0x43827e
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x4e4
ret 8
mov eax, dword [esp + 0x1c]
xor ebp, ebp
cmp eax, ebp
mov dword [esp + 0x28], ebp
jle case.0x438f04.4109
cmp ebp, dword [esp + 0x50]
jge case.0x438f04.4109
mov eax, dword [esp + 0x28]
add eax, ebp
lea ecx, [eax*8]
sub ecx, eax
lea ecx, [esi + ecx*4 + 0x79d611]
call fcn.00453c90
mov dword [esp + 0x64], eax
fild dword [esp + 0x64]
fmul dword [0x4c05a8]
fild dword [esp + 0x5c]
fmul st(1)
call fcn.004b0e40
fild dword [esp + 0x68]
mov dword [esp + 0x60], eax
fmul st(1)
call fcn.004b0e40
mov ecx, esi
mov dword [esp + 0x38], eax
fstp st(0)
call fcn.004206a0
mov eax, dword [edi + 0x4daea0]
lea edx, [esi + 0xa684e1]
push 0
push edx
mov edx, dword [esp + 0x50]
push 0xb
lea ecx, [ebp + 0x210]
push eax
mov eax, dword [esp + 0x54]
push ecx
mov ecx, dword [esp + 0x44]
push ebx
push 1
push 1
push 0x200
push edx
mov edx, dword [esp + 0x54]
push eax
mov eax, dword [esp + 0x40]
push ecx
mov ecx, dword [esp + 0x68]
push edx
mov edx, dword [esp + 0x4c]
add ecx, eax
mov eax, dword [esp + 0x94]
push ecx
add eax, edx
mov ecx, esi
push eax
call fcn.004206e0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x5c]
push 1
add ecx, eax
push 0x221
push ecx
mov ecx, dword [esp + 0x24]
add edx, ecx
push edx
push eax
push ecx
mov ecx, esi
call fcn.004207a0
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
add ecx, eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x4c]
add edx, ecx
inc ebp
cmp ebp, eax
mov dword [esp + 0x14], edx
jl 0x438461
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x4e4
ret 8
mov ecx, 4
jmp 0x438585
mov ecx, 3
jmp 0x438585
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x1c]
xor eax, eax
cmp edx, eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x10], eax
jle case.0x438f04.4109
mov eax, dword [esp + 0x4f8]
mov ebp, dword [esp + 0x34]
add ecx, eax
mov dword [esp + 0x80], ecx
mov ecx, 0x300
sub ecx, eax
mov dword [esp + 0x64], ecx
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x78]
cmp eax, ecx
jge case.0x438f04.4109
mov ecx, eax
mov dword [esp + 0x20], 0
imul ecx, dword [esp + 0x74]
mov dword [esp + 0x60], ecx
mov ecx, eax
imul ecx, dword [esp + 0x7c]
mov dword [esp + 0x38], ecx
mov ecx, eax
imul eax, dword [esp + 0x68]
imul ecx, dword [esp + 0x5c]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x24]
cmp eax, edx
mov dword [esp + 0x3c], ecx
jge 0x438758
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x50]
cmp eax, ecx
jge 0x438758
mov eax, dword [esp + 0x58]
test eax, eax
jne 0x438635
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x20]
xor ecx, ecx
mov cl, byte [edx + esi + 0x5a7318]
cmp ecx, eax
jne 0x43863b
mov ebp, dword [esi + 0x5a6f04]
mov ecx, esi
call fcn.004206a0
push 0
push 0
push 0
push 1
mov ecx, esi
call fcn.00420a50
mov edx, dword [esp + 0x64]
mov ecx, dword [edi + 0x4daea0]
lea eax, [esi + 0xa684e1]
push 1
push eax
mov eax, dword [esp + 0x88]
push 0xb
add edx, eax
mov eax, dword [esp + 0x50]
push ecx
mov ecx, dword [esp + 0xa4]
push edx
mov edx, dword [esp + 0x5c]
push ebx
push 1
push 1
push ecx
mov ecx, dword [esp + 0x54]
push edx
mov edx, dword [esp + 0x68]
push eax
mov eax, dword [esp + 0x58]
add edx, ecx
mov ecx, dword [esp + 0x68]
push edx
mov edx, dword [esp + 0x44]
add ecx, eax
mov eax, dword [esp + 0x68]
push ecx
mov ecx, dword [esp + 0x4c]
add eax, edx
mov edx, dword [esp + 0x94]
add edx, ecx
push eax
push edx
mov ecx, esi
call fcn.004206e0
mov eax, dword [esp + 0x58]
test eax, eax
je 0x438702
mov eax, dword [esp + 0x28]
mov cl, byte [eax + esi + 0x5a7318]
test cl, cl
je 0x4386fe
mov eax, ebp
push 2
shl eax, 5
sub eax, ebp
lea ecx, [eax + eax*8]
lea edx, [ebp + ecx*4]
lea eax, [ebp + edx*4]
lea eax, [esi + eax*2]
lea ecx, [eax + 0x2ab314]
mov byte [eax + 0x2ac22c], 1
call fcn.0041c4b0
inc dword [esp + 0x28]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x60]
mov eax, dword [esp + 0x38]
add edx, ecx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x4c]
add eax, edx
mov edx, dword [esp + 0x40]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x70]
add ecx, eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x6c]
add edx, ecx
inc eax
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0x20]
inc edx
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x1c]
cmp eax, edx
jl 0x438608
mov eax, dword [esp + 0x58]
test eax, eax
jne 0x4387b2
mov eax, ebp
push 2
shl eax, 5
sub eax, ebp
lea edx, [eax + eax*8]
lea eax, [ebp + edx*4]
lea ecx, [ebp + eax*4]
lea eax, [esi + ecx*2]
lea ecx, [eax + 0x2ab314]
mov byte [eax + 0x2ac22c], 1
call fcn.0041c4b0
mov edx, dword [edi + 0x4daea0]
mov eax, dword [esp + 0x80]
push ebp
push edx
push eax
push 0x211
mov ecx, esi
call fcn.00420c50
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x1c]
inc eax
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x80]
inc eax
inc ecx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x24]
cmp eax, edx
mov dword [esp + 0x80], ecx
jl 0x4385ba
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x4e4
ret 8
mov eax, dword [esp + 0x1c]
xor ebp, ebp
test eax, eax
mov dword [esp + 0x34], 0xffffffff
jle case.0x438f04.4109
cmp ebp, dword [esp + 0x50]
jge 0x439cc3
cmp dword [esp + 0x28], 0xffffffff
jle 0x438825
xor ecx, ecx
mov cl, byte [esi + 0x5a73bd]
cmp ecx, ebp
jne 0x438825
mov edx, dword [esi + 0x5a6f04]
mov dword [esp + 0x34], edx
mov ecx, esi
call fcn.004206a0
push 0
push 0
push 0
push 1
mov ecx, esi
call fcn.00420a50
mov ecx, dword [edi + 0x4daea0]
mov edx, dword [esp + 0x4f8]
lea eax, [esi + 0xa684e1]
push 1
push eax
mov eax, dword [esp + 0x50]
push 0xb
push ecx
mov ecx, dword [esp + 0x54]
push edx
mov edx, dword [esp + 0x44]
push ebx
push 1
push 1
push 0x211
push eax
mov eax, dword [esp + 0x54]
push ecx
mov ecx, dword [esp + 0x40]
push edx
mov edx, dword [esp + 0x48]
push eax
push ecx
push edx
mov ecx, esi
call fcn.004206e0
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
add ecx, eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x4c]
add edx, ecx
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x70]
add eax, edx
mov edx, dword [esp + 0x30]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x6c]
add edx, eax
mov eax, dword [esp + 0x1c]
inc ebp
mov dword [esp + 0x30], edx
cmp ebp, eax
jl 0x4387fe
jmp 0x439cc3
cmp ebp, 0x1007
jg 0x438ed8
je 0x439066
cmp ebp, 0x1001
jg 0x438ec2
je 0x439073
add ebp, 0xfffff9ff
cmp ebp, 0x30
ja case.0x438f04.4109
xor eax, eax
mov al, byte [ebp + 0x43a13c]
jmp dword [eax*4 + 0x43a120]
mov edx, 1
inc edx
inc edx
mov ecx, dword [esp + 0x1c]
xor eax, eax
cmp ecx, eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x10], eax
jle case.0x438f04.4109
add edx, 0x400
mov dword [esp + 0x64], edx
mov dword [esp + 0x88], edx
jmp 0x438944
mov eax, dword [esp + 0x10]
cmp eax, dword [esp + 0x78]
jge case.0x438f04.4109
mov edx, eax
mov ebp, eax
imul edx, dword [esp + 0x7c]
imul ebp, dword [esp + 0x74]
mov dword [esp + 0x38], edx
mov edx, eax
imul eax, dword [esp + 0x68]
imul edx, dword [esp + 0x5c]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x24]
cmp eax, ecx
mov dword [esp + 0x3c], edx
mov dword [esp + 0x20], 0
jge 0x438a77
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x50]
cmp edx, eax
jge 0x438a77
mov ecx, dword [esp + 0x28]
xor eax, eax
mov al, byte [ecx + esi + 0x5a7318]
mov ecx, edx
cmp eax, ecx
jne 0x4389b5
mov edx, dword [esi + 0x5a6f04]
mov dword [esp + 0x34], edx
mov ecx, esi
call fcn.004206a0
push 0
push 0
push 0
push 1
mov ecx, esi
call fcn.00420a50
mov ecx, dword [edi + 0x4daea0]
mov edx, dword [esp + 0x88]
lea eax, [esi + 0xa684e1]
push 1
push eax
mov eax, dword [esp + 0x50]
push 0xb
push ecx
mov ecx, dword [esp + 0x54]
push edx
mov edx, dword [esp + 0x44]
push ebx
push 1
push 1
push 0x211
push eax
mov eax, dword [esp + 0x68]
push ecx
mov ecx, dword [esp + 0x58]
add eax, edx
mov edx, dword [esp + 0x68]
push eax
mov eax, dword [esp + 0x44]
add edx, ecx
mov ecx, dword [esp + 0x68]
push edx
mov edx, dword [esp + 0x4c]
add ecx, eax
push ecx
mov ecx, esi
lea eax, [edx + ebp]
push eax
call fcn.004206e0
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x54]
add edx, ecx
mov ecx, dword [esp + 0x40]
add ebp, eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x70]
add eax, edx
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x6c]
add ecx, eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x20]
inc eax
inc ecx
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x1c]
cmp eax, ecx
mov dword [esp + 0x24], eax
jl 0x438988
mov eax, dword [esp + 0x58]
test eax, eax
jne 0x438ad8
mov ebp, dword [esp + 0x34]
push 2
mov eax, ebp
shl eax, 5
sub eax, ebp
lea ecx, [eax + eax*8]
lea edx, [ebp + ecx*4]
lea eax, [ebp + edx*4]
lea eax, [esi + eax*2]
lea ecx, [eax + 0x2ab314]
mov byte [eax + 0x2ac22c], 1
call fcn.0041c4b0
mov edx, dword [esp + 0x64]
mov eax, dword [esp + 0x10]
mov ecx, dword [edi + 0x4daea0]
push ebp
add edx, eax
push ecx
push edx
push 0x211
mov ecx, esi
call fcn.00420c50
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x1c]
inc eax
mov dword [esp + 0x28], eax
mov ebp, dword [esp + 0x10]
mov edx, dword [esp + 0x88]
mov eax, dword [esp + 0x24]
inc ebp
inc edx
cmp eax, ecx
mov dword [esp + 0x10], ebp
mov dword [esp + 0x88], edx
jl 0x438940
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x4e4
ret 8
mov ecx, dword [esp + 0x1c]
xor eax, eax
cmp ecx, eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x10], eax
jle case.0x438f04.4109
jmp 0x438b2a
mov eax, dword [esp + 0x10]
cmp eax, dword [esp + 0x78]
jge case.0x438f04.4109
mov edx, eax
mov ebp, eax
imul edx, dword [esp + 0x7c]
imul ebp, dword [esp + 0x74]
mov dword [esp + 0x38], edx
mov edx, eax
imul eax, dword [esp + 0x68]
imul edx, dword [esp + 0x5c]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x24]
cmp eax, ecx
mov dword [esp + 0x3c], edx
mov dword [esp + 0x20], 0
jge 0x438c60
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x50]
cmp edx, eax
jge 0x438c60
mov ecx, dword [esp + 0x28]
xor eax, eax
mov al, byte [ecx + esi + 0x5a7318]
mov ecx, edx
cmp eax, ecx
jne 0x438b9b
mov edx, dword [esi + 0x5a6f04]
mov dword [esp + 0x34], edx
mov ecx, esi
call fcn.004206a0
push 0
push 0
push 0
push 1
mov ecx, esi
call fcn.00420a50
mov edx, dword [esp + 0x10]
mov ecx, dword [edi + 0x4daea0]
lea eax, [esi + 0xa684e1]
push 1
push eax
mov eax, dword [esp + 0x50]
push 0xb
add edx, 0x800
push ecx
mov ecx, dword [esp + 0x54]
push edx
mov edx, dword [esp + 0x44]
push ebx
push 1
push 1
push 0x211
push eax
mov eax, dword [esp + 0x68]
push ecx
mov ecx, dword [esp + 0x58]
add eax, edx
mov edx, dword [esp + 0x68]
add edx, ecx
mov ecx, dword [esp + 0x64]
push eax
mov eax, dword [esp + 0x44]
push edx
mov edx, dword [esp + 0x4c]
add ecx, eax
lea eax, [edx + ebp]
push ecx
push eax
mov ecx, esi
call fcn.004206e0
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x54]
add edx, ecx
mov ecx, dword [esp + 0x40]
add ebp, eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x70]
add eax, edx
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x6c]
add ecx, eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x20]
inc eax
inc ecx
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x1c]
cmp eax, ecx
mov dword [esp + 0x24], eax
jl 0x438b6e
mov eax, dword [esp + 0x58]
test eax, eax
jne 0x438cc1
mov ebp, dword [esp + 0x34]
push 2
mov eax, ebp
shl eax, 5
sub eax, ebp
lea ecx, [eax + eax*8]
lea edx, [ebp + ecx*4]
lea eax, [ebp + edx*4]
lea eax, [esi + eax*2]
lea ecx, [eax + 0x2ab314]
mov byte [eax + 0x2ac22c], 1
call fcn.0041c4b0
mov edx, dword [esp + 0x10]
mov ecx, dword [edi + 0x4daea0]
push ebp
add edx, 0x800
push ecx
push edx
push 0x211
mov ecx, esi
call fcn.00420c50
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x1c]
inc eax
mov dword [esp + 0x28], eax
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x24]
inc edx
cmp eax, ecx
mov dword [esp + 0x10], edx
jl 0x438b26
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x4e4
ret 8
mov ecx, dword [esp + 0x1c]
xor eax, eax
cmp ecx, eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x10], eax
jle case.0x438f04.4109
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x78]
cmp eax, edx
jge case.0x438f04.4109
mov edx, eax
mov ebp, eax
imul edx, dword [esp + 0x7c]
imul ebp, dword [esp + 0x74]
mov dword [esp + 0x38], edx
mov edx, eax
imul eax, dword [esp + 0x68]
imul edx, dword [esp + 0x5c]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x24]
cmp eax, ecx
mov dword [esp + 0x3c], edx
mov dword [esp + 0x20], 0
jge 0x438e3a
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x50]
cmp edx, eax
jge 0x438e3a
mov ecx, dword [esp + 0x28]
xor eax, eax
mov al, byte [ecx + esi + 0x5a7318]
mov ecx, edx
cmp eax, ecx
jne 0x438d75
mov edx, dword [esi + 0x5a6f04]
mov dword [esp + 0x34], edx
mov ecx, esi
call fcn.004206a0
push 0
push 0
push 0
push 1
mov ecx, esi
call fcn.00420a50
mov edx, dword [esp + 0x10]
mov ecx, dword [edi + 0x4daea0]
lea eax, [esi + 0xa684e1]
push 1
push eax
mov eax, dword [esp + 0x50]
push 0xb
add edx, 0x740
push ecx
mov ecx, dword [esp + 0x54]
push edx
mov edx, dword [esp + 0x44]
push ebx
push 1
push 1
push 0x211
push eax
mov eax, dword [esp + 0x68]
push ecx
mov ecx, dword [esp + 0x58]
add eax, edx
mov edx, dword [esp + 0x68]
add edx, ecx
mov ecx, dword [esp + 0x64]
push eax
mov eax, dword [esp + 0x44]
push edx
mov edx, dword [esp + 0x4c]
add ecx, eax
lea eax, [edx + ebp]
push ecx
push eax
mov ecx, esi
call fcn.004206e0
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x54]
add edx, ecx
mov ecx, dword [esp + 0x40]
add ebp, eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x70]
add eax, edx
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x6c]
add ecx, eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x20]
inc eax
inc ecx
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x1c]
cmp eax, ecx
mov dword [esp + 0x24], eax
jl 0x438d48
mov eax, dword [esp + 0x58]
test eax, eax
jne 0x438e9b
mov ebp, dword [esp + 0x34]
push 2
mov eax, ebp
shl eax, 5
sub eax, ebp
lea ecx, [eax + eax*8]
lea edx, [ebp + ecx*4]
lea eax, [ebp + edx*4]
lea eax, [esi + eax*2]
lea ecx, [eax + 0x2ab314]
mov byte [eax + 0x2ac22c], 1
call fcn.0041c4b0
mov edx, dword [esp + 0x10]
mov ecx, dword [edi + 0x4daea0]
push ebp
add edx, 0x740
push ecx
push edx
push 0x211
mov ecx, esi
call fcn.00420c50
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x1c]
inc eax
mov dword [esp + 0x28], eax
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x24]
inc edx
cmp eax, ecx
mov dword [esp + 0x10], edx
jl 0x438cfe
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x4e4
ret 8
lea eax, [ebp - 0x1002]
cmp eax, 4
ja case.0x438f04.4109
jmp dword [eax*4 + 0x43a170]
cmp ebp, 0x2001
jg 0x439d0c
je case.0x43825b.1286
add ebp, 0xffffeff8
cmp ebp, 0xf9
ja case.0x438f04.4109
xor eax, eax
mov al, byte [ebp + 0x43a19c]
jmp dword [eax*4 + 0x43a184]
mov eax, dword [esp + 0x1c]
xor ebp, ebp
cmp eax, ebp
mov dword [esp + 0x34], 0xffffffff
mov dword [esp + 0x20], ebp
jle case.0x438f04.4109
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x78]
cmp ecx, edx
jge 0x43904f
cmp ebp, eax
mov dword [esp + 0x10], 0
jge 0x439022
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x50]
cmp edx, ecx
jge 0x439022
mov eax, dword [esp + 0x28]
cmp eax, 0xffffffff
jle 0x438f75
xor ecx, ecx
mov cl, byte [eax + esi + 0x5a7318]
cmp ecx, ebp
jne 0x438f75
mov edx, dword [esi + 0x5a6f04]
mov dword [esp + 0x34], edx
mov ecx, esi
call fcn.004206a0
push 0
push 0
push 0
push 1
mov ecx, esi
call fcn.00420a50
mov ecx, dword [edi + 0x4daea0]
mov edx, dword [esp + 0x4f8]
lea eax, [esi + 0xa684e1]
push 1
push eax
mov eax, dword [esp + 0x50]
push 0xb
push ecx
mov ecx, dword [esp + 0x54]
push edx
mov edx, dword [esp + 0x44]
push ebx
push 1
push 1
push 0x211
push eax
mov eax, dword [esp + 0x54]
push ecx
mov ecx, dword [esp + 0x40]
push edx
mov edx, dword [esp + 0x48]
push eax
push ecx
push edx
mov ecx, esi
call fcn.004206e0
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
add ecx, eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x4c]
add edx, ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x70]
add eax, edx
mov edx, dword [esp + 0x10]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x6c]
add ecx, eax
mov eax, dword [esp + 0x1c]
inc ebp
inc edx
cmp ebp, eax
mov dword [esp + 0x30], ecx
mov dword [esp + 0x10], edx
jl 0x438f45
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x18]
add edx, ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x7c]
add ecx, edx
mov edx, dword [esp + 0x20]
inc edx
cmp ebp, eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x20], edx
jl 0x438f25
cmp dword [esp + 0x34], 0xffffffff
jle case.0x438f04.4109
jmp 0x43a06b
mov edx, 1
inc edx
inc edx
inc edx
inc edx
inc edx
inc edx
inc edx
inc edx
mov dword [esp + 0x80], edx
lea edx, [esp + 0xf4]
push 0x400
push edx
push str.PLAY_SWITCH
lea ecx, [esi + 0x2a9e62]
push str.CHARACTER
mov dword [esp + 0x38], 0
mov dword [esp + 0x74], 0x3f800000
call fcn.00407ce0
lea eax, [esp + 0x28]
lea ecx, [esp + 0xf4]
push eax
push 0x2c
push 0
push ecx
call fcn.004029f0
mov eax, dword [esp + 0x38]
add esp, 0x10
test eax, eax
je 0x4396d5
lea edx, [esp + 0x9c]
lea eax, [esp + 0xf4]
push edx
push 0x2c
push 1
push eax
call fcn.004029f0
lea ecx, [esp + 0xbc]
lea edx, [esp + 0x104]
push ecx
push 0x2c
push 2
push edx
call fcn.004029f0
lea eax, [esp + 0xb8]
lea ecx, [esp + 0x114]
push eax
push 0x2c
push 3
push ecx
call fcn.004029f0
lea edx, [esp + 0xc4]
lea eax, [esp + 0x124]
push edx
push 0x2c
push 4
push eax
call fcn.004029f0
add esp, 0x40
lea ecx, [esp + 0x2c]
lea edx, [esp + 0xf4]
push ecx
push 0x2c
push 5
push edx
call fcn.004029f0
lea eax, [esp + 0x40]
lea ecx, [esp + 0x104]
push eax
push 0x2c
push 6
push ecx
call fcn.004029f0
lea edx, [esp + 0x64]
lea eax, [esp + 0x114]
push edx
push 0x2c
push 7
push eax
call fcn.004029f0
lea ecx, [esp + 0x78]
lea edx, [esp + 0x124]
push ecx
push 0x2c
push 8
push edx
call fcn.004029f0
add esp, 0x40
lea eax, [esp + 0xa8]
lea ecx, [esp + 0xf4]
push eax
push 0x2c
push 9
push ecx
call fcn.004029f0
lea edx, [esp + 0xc0]
lea eax, [esp + 0x104]
push edx
push 0x2c
push 0xa
push eax
call fcn.004029f0
lea ecx, [esp + 0xc0]
lea edx, [esp + 0x114]
push ecx
push 0x2c
push 0xb
push edx
call fcn.004029f0
lea eax, [esp + 0xd4]
push eax
push 0x2c
lea ecx, [esp + 0x12c]
push 0xc
push ecx
call fcn.004029f0
add esp, 0x40
lea edx, [esp + 0x70]
lea eax, [esp + 0xf4]
push edx
push 0x2c
push 0xd
push eax
call fcn.004029f0
lea ecx, [esp + 0x7c]
lea edx, [esp + 0x104]
push ecx
push 0x2c
push 0xe
push edx
call fcn.004029f0
lea eax, [esp + 0x7c]
lea ecx, [esp + 0x114]
push eax
push 0x2c
push 0xf
push ecx
call fcn.004029f0
lea edx, [esp + 0x98]
lea eax, [esp + 0x124]
push edx
push 0x2c
push 0x10
push eax
call fcn.004029f0
mov eax, dword [esp + 0xdc]
mov edx, dword [esi + 0xa74997]
add eax, edx
xor edx, edx
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0xec]
add esp, 0x40
sub eax, edx
je 0x439505
dec eax
jne 0x4396d5
mov ecx, dword [esp + 0x1c]
xor eax, eax
cmp ecx, eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x10], eax
jle 0x4396d5
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x78]
cmp eax, edx
jge 0x4396d5
mov edx, eax
mov dword [esp + 0x20], 0
imul edx, dword [esp + 0x74]
mov dword [esp + 0x60], edx
mov edx, eax
imul edx, dword [esp + 0x7c]
mov dword [esp + 0x38], edx
mov edx, eax
imul eax, dword [esp + 0x68]
imul edx, dword [esp + 0x5c]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x24]
cmp eax, ecx
mov dword [esp + 0x3c], edx
jge 0x4394eb
mov edx, eax
mov eax, dword [esp + 0x80]
add edx, eax
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x50]
cmp edx, eax
jge 0x4394eb
mov ebp, dword [esp + 0x98]
mov ebx, dword [esp + 0x94]
xor eax, eax
mov dword [esp + 0x90], 2
mov dword [esp + 0x8c], eax
mov dword [esp + 0x84], eax
mov eax, dword [esi + 0x5a6f04]
mov dword [esp + 0x34], eax
mov ecx, esi
call fcn.004206a0
push 0
push 0
push 0
push 1
mov ecx, esi
call fcn.00420a50
mov edx, dword [esp + 0x58]
mov ecx, dword [edi + 0x4daea0]
lea eax, [esi + 0xa684e1]
push 1
push eax
push 0xb
lea eax, [edx + 0x600]
push ecx
mov ecx, dword [esp + 0x58]
push eax
mov eax, dword [esp + 0x9c]
mov edx, dword [esp + 0x58]
push eax
mov eax, dword [esp + 0x9c]
push 1
push 1
push 0x211
push ecx
mov ecx, dword [esp + 0x68]
push edx
mov edx, dword [esp + 0xb8]
add eax, ecx
mov ecx, dword [esp + 0x5c]
add eax, ecx
mov ecx, dword [esp + 0x58]
push eax
mov eax, dword [esp + 0x6c]
add edx, eax
mov eax, dword [esp + 0x90]
add edx, ecx
mov ecx, dword [esp + 0x68]
push edx
lea edx, [ebx + ecx]
mov ecx, dword [esp + 0x48]
add edx, ecx
lea ecx, [eax + ebp]
push edx
mov edx, dword [esp + 0x50]
add ecx, edx
push ecx
mov ecx, esi
call fcn.004206e0
mov edx, dword [esp + 0xa8]
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0xb0]
add ebp, edx
mov edx, dword [esp + 0xa0]
add ebx, ecx
mov ecx, dword [esp + 0x84]
add eax, edx
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0xa4]
add ecx, eax
mov eax, dword [esp + 0x90]
dec eax
mov dword [esp + 0x84], ecx
mov dword [esp + 0x90], eax
jne 0x439335
mov edx, dword [esp + 0x58]
lea ecx, [esp + 0x64]
push ecx
push edx
lea ecx, [esi + 0xae6307]
call fcn.00454dd0
mov ebx, dword [esp + 0x34]
test eax, eax
je 0x439444
inc ebx
cmp ebx, 0xffffffff
jle 0x43948c
mov eax, ebx
push 2
shl eax, 5
sub eax, ebx
lea eax, [eax + eax*8]
lea ecx, [ebx + eax*4]
lea edx, [ebx + ecx*4]
lea eax, [esi + edx*2]
lea ecx, [eax + 0x2ab314]
mov byte [eax + 0x2ac22c], 1
call fcn.0041c4b0
mov eax, dword [edi + 0x4daea0]
mov ecx, dword [esp + 0x4f8]
push ebx
push eax
push ecx
push 0x211
mov ecx, esi
call fcn.00420c50
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x54]
mov ebx, dword [esp + 0x60]
mov ebp, dword [esp + 0x3c]
add ecx, eax
mov eax, dword [esp + 0x24]
add ebx, edx
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x60], ebx
mov ebx, dword [esp + 0x40]
add ebp, ecx
mov ecx, dword [esp + 0x1c]
add ebx, edx
mov dword [esp + 0x3c], ebp
mov ebp, dword [esp + 0x58]
mov dword [esp + 0x40], ebx
mov ebx, dword [esp + 0x20]
inc eax
inc ebp
inc ebx
cmp eax, ecx
mov dword [esp + 0x24], eax
mov dword [esp + 0x58], ebp
mov dword [esp + 0x20], ebx
jl 0x4392f2
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x24]
inc edx
cmp eax, ecx
mov dword [esp + 0x10], edx
jl 0x439295
jmp 0x4396d5
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x24], edx
cmp ecx, edx
mov dword [esp + 0x10], edx
jle 0x4396d5
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x78]
cmp eax, edx
jge 0x4396d5
mov ebx, eax
mov ebp, eax
mov edx, eax
imul eax, dword [esp + 0x68]
imul edx, dword [esp + 0x5c]
imul ebx, dword [esp + 0x74]
imul ebp, dword [esp + 0x7c]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x24]
cmp eax, ecx
mov dword [esp + 0x3c], edx
mov dword [esp + 0x20], 0
jge 0x4396c0
mov edx, dword [esp + 0x80]
add eax, edx
mov dword [esp + 0x58], eax
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x50]
cmp edx, eax
jge 0x4396c0
mov ecx, dword [esp + 0x94]
mov eax, dword [esp + 0x98]
mov edx, dword [esi + 0x5a6f04]
mov dword [esp + 0x90], ecx
mov ecx, esi
mov dword [esp + 0x84], eax
mov dword [esp + 0x34], edx
call fcn.004206a0
push 0
push 0
push 0
push 1
mov ecx, esi
call fcn.00420a50
mov edx, dword [esp + 0x58]
mov ecx, dword [edi + 0x4daea0]
lea eax, [esi + 0xa684e1]
push 1
push eax
mov eax, dword [esp + 0x90]
push 0xb
add edx, 0x500
push ecx
mov ecx, dword [esp + 0x58]
push edx
mov edx, dword [esp + 0x58]
push eax
mov eax, dword [esp + 0x48]
push 1
push 1
push 0x202
push ecx
mov ecx, dword [esp + 0x68]
push edx
mov edx, dword [esp + 0x58]
add ecx, eax
mov eax, dword [esp + 0x68]
push ecx
mov ecx, dword [esp + 0xc0]
add eax, edx
mov edx, dword [esp + 0xb4]
push eax
mov eax, dword [esp + 0x48]
add ecx, ebp
add ecx, eax
add edx, ebx
push ecx
mov ecx, dword [esp + 0x50]
add edx, ecx
mov ecx, esi
push edx
call fcn.004206e0
mov ecx, dword [esp + 0x58]
lea eax, [esp + 0x64]
push eax
push ecx
lea ecx, [esi + 0xae6307]
call fcn.00454dd0
test eax, eax
je 0x439671
mov ecx, dword [esp + 0x34]
push 2
mov eax, ecx
shl eax, 5
sub eax, ecx
lea edx, [eax + eax*8]
lea eax, [ecx + edx*4]
lea ecx, [ecx + eax*4]
lea eax, [esi + ecx*2]
lea ecx, [eax + 0x2ab314]
mov byte [eax + 0x2ac22c], 1
call fcn.0041c4b0
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x3c]
add ebx, edx
mov edx, dword [esp + 0x70]
mov ecx, dword [esp + 0x4c]
add eax, edx
mov edx, dword [esp + 0x40]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x6c]
add ebp, ecx
mov ecx, dword [esp + 0x20]
add edx, eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0x58]
inc eax
inc edx
inc ecx
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x1c]
cmp eax, ecx
mov dword [esp + 0x24], eax
mov dword [esp + 0x58], edx
jl 0x43956c
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x24]
inc edx
cmp eax, ecx
mov dword [esp + 0x10], edx
jl 0x439519
lea ecx, [esp + 0xf4]
push 0x400
push ecx
push str.PLAY_VOLUME
push str.CHARACTER
lea ecx, [esi + 0x2a9e62]
call fcn.00407ce0
lea edx, [esp + 0x28]
xor ebx, ebx
push edx
push 0x2c
lea eax, [esp + 0xfc]
push ebx
push eax
call fcn.004029f0
mov eax, dword [esp + 0x38]
add esp, 0x10
cmp eax, ebx
je case.0x438f04.4109
lea ecx, [esp + 0x9c]
lea edx, [esp + 0xf4]
push ecx
push 0x2c
push 1
push edx
call fcn.004029f0
lea eax, [esp + 0x68]
lea ecx, [esp + 0x104]
push eax
push 0x2c
push 3
push ecx
call fcn.004029f0
lea edx, [esp + 0xb0]
lea eax, [esp + 0x114]
push edx
push 0x2c
push 4
push eax
call fcn.004029f0
lea ecx, [esp + 0x5c]
lea edx, [esp + 0x124]
push ecx
push 0x2c
push 5
push edx
call fcn.004029f0
add esp, 0x40
lea eax, [esp + 0x30]
lea ecx, [esp + 0xf4]
push eax
push 0x2c
push 6
push ecx
call fcn.004029f0
lea edx, [esp + 0x54]
lea eax, [esp + 0x104]
push edx
push 0x2c
push 7
push eax
call fcn.004029f0
lea ecx, [esp + 0x68]
lea edx, [esp + 0x114]
push ecx
push 0x2c
push 8
push edx
call fcn.004029f0
lea eax, [esp + 0xbc]
lea ecx, [esp + 0x124]
push eax
push 0x2c
push 9
push ecx
call fcn.004029f0
add esp, 0x40
lea edx, [esp + 0x84]
lea eax, [esp + 0xf4]
push edx
push 0x2c
push 0xa
push eax
call fcn.004029f0
mov eax, dword [esp + 0xac]
mov edx, dword [esi + 0xa74997]
add eax, edx
add esp, 0x10
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x1c]
cmp eax, ebx
mov dword [esp + 0x10], ebx
jle case.0x438f04.4109
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x78]
cmp ecx, edx
jge case.0x438f04.4109
mov ebp, ecx
mov dword [esp + 0x20], 0
mov edi, ebp
imul ebp, dword [esp + 0x7c]
imul edi, dword [esp + 0x74]
cmp ebx, eax
jge 0x4399dc
mov edx, dword [esp + 0x80]
lea ecx, [ebx + edx]
mov dword [esp + 0x60], ecx
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x50]
cmp edx, ecx
jge 0x4399dc
mov eax, dword [esp + 0x60]
lea ecx, [esi + 0xae6307]
push eax
call fcn.00454e30
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x64], eax
xor eax, eax
cmp ecx, eax
mov dword [esp + 0x98], eax
mov dword [esp + 0x94], eax
je 0x4398b6
fild dword [esp + 0x64]
fmul dword [0x4c05a8]
fimul dword [esp + 0x8c]
call fcn.004b0e40
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x84]
test eax, eax
je 0x4398de
fild dword [esp + 0x64]
fmul dword [0x4c05a8]
fimul dword [esp + 0x84]
call fcn.004b0e40
mov dword [esp + 0x94], eax
mov ecx, esi
call fcn.004206a0
mov edx, dword [esp + 0x80]
lea ecx, [esi + 0xa684e1]
push 0
push ecx
mov ecx, dword [esp + 0x90]
push 0xb
lea eax, [ebx + edx + 0x500]
mov edx, dword [esp + 0x54]
push 0x701002
push eax
mov eax, dword [esp + 0x58]
push ecx
mov ecx, dword [esp + 0x48]
push 1
push 1
push 0x200
push edx
mov edx, dword [esp + 0x54]
push eax
mov eax, dword [esp + 0xbc]
push ecx
mov ecx, dword [esp + 0xc4]
add ecx, eax
mov eax, dword [esp + 0xc8]
push edx
mov edx, dword [esp + 0x48]
add ecx, ebp
add ecx, edx
mov edx, dword [esp + 0x8c]
add eax, edx
push ecx
mov ecx, dword [esp + 0x50]
add eax, edi
add eax, ecx
mov ecx, esi
push eax
call fcn.004206e0
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0x14]
add ecx, eax
add ecx, ebp
push 1
add ecx, edx
mov edx, dword [esp + 0x90]
push 0x221
push ecx
mov ecx, dword [esp + 0x64]
add eax, ebp
add edx, ecx
mov ecx, dword [esp + 0x24]
add edx, edi
add edx, ecx
push edx
mov edx, dword [esp + 0x24]
add eax, edx
mov edx, dword [esp + 0x68]
add edx, edi
push eax
add edx, ecx
mov ecx, esi
push edx
call fcn.004207a0
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x4c]
add edi, eax
mov eax, dword [esp + 0x60]
add ebp, edx
mov edx, dword [esp + 0x20]
inc ebx
inc eax
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x1c]
inc edx
cmp ebx, eax
mov dword [esp + 0x20], edx
jl 0x43985a
mov edx, dword [esp + 0x10]
inc edx
cmp ebx, eax
mov dword [esp + 0x10], edx
jl 0x43981e
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x4e4
ret 8
mov ecx, dword [esp + 0x1c]
xor eax, eax
cmp ecx, eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x10], eax
jle case.0x438f04.4109
jmp 0x439a1b
mov eax, dword [esp + 0x10]
cmp eax, dword [esp + 0x78]
jge case.0x438f04.4109
mov edx, eax
mov ebp, eax
imul edx, dword [esp + 0x7c]
imul ebp, dword [esp + 0x74]
mov dword [esp + 0x38], edx
mov edx, eax
imul eax, dword [esp + 0x68]
imul edx, dword [esp + 0x5c]
mov dword [esp + 0x40], eax
mov eax, dword [esi + 0x5a6f04]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x24]
cmp eax, ecx
mov dword [esp + 0x3c], edx
mov dword [esp + 0x20], 0
jge 0x439b5b
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x50]
cmp edx, eax
jge 0x439b5b
mov ecx, dword [esp + 0x28]
xor eax, eax
mov al, byte [ecx + esi + 0x5a7318]
mov ecx, edx
cmp eax, ecx
jne 0x439a96
mov edx, dword [esi + 0x5a6f04]
mov dword [esp + 0x34], edx
mov ecx, esi
call fcn.004206a0
push 0
push 0
push 0
push 1
mov ecx, esi
call fcn.00420a50
mov edx, dword [esp + 0x10]
mov ecx, dword [edi + 0x4daea0]
lea eax, [esi + 0xa684e1]
push 1
push eax
mov eax, dword [esp + 0x50]
push 0xb
add edx, 0x610
push ecx
mov ecx, dword [esp + 0x54]
push edx
mov edx, dword [esp + 0x44]
push ebx
push 1
push 1
push 0x211
push eax
mov eax, dword [esp + 0x68]
push ecx
mov ecx, dword [esp + 0x58]
add eax, edx
mov edx, dword [esp + 0x68]
add edx, ecx
mov ecx, dword [esp + 0x64]
push eax
mov eax, dword [esp + 0x44]
push edx
mov edx, dword [esp + 0x4c]
add ecx, eax
lea eax, [edx + ebp]
push ecx
push eax
mov ecx, esi
call fcn.004206e0
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x54]
add edx, ecx
mov ecx, dword [esp + 0x40]
add ebp, eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x70]
add eax, edx
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x6c]
add ecx, eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x20]
inc eax
inc ecx
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x1c]
cmp eax, ecx
mov dword [esp + 0x24], eax
jl 0x439a69
mov ebp, dword [esp + 0x34]
test ebp, ebp
je 0x439bb8
mov eax, ebp
push 2
shl eax, 5
sub eax, ebp
lea ecx, [eax + eax*8]
lea edx, [ebp + ecx*4]
lea eax, [ebp + edx*4]
lea eax, [esi + eax*2]
lea ecx, [eax + 0x2ab314]
mov byte [eax + 0x2ac22c], 1
call fcn.0041c4b0
mov edx, dword [esp + 0x10]
mov ecx, dword [edi + 0x4daea0]
push ebp
add edx, 0x610
push ecx
push edx
push 0x211
mov ecx, esi
call fcn.00420c50
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x1c]
inc eax
mov dword [esp + 0x28], eax
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x24]
inc edx
cmp eax, ecx
mov dword [esp + 0x10], edx
jl 0x439a17
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x4e4
ret 8
mov eax, dword [esp + 0x1c]
xor ebp, ebp
test eax, eax
mov dword [esp + 0x34], 0xffffffff
jle case.0x438f04.4109
cmp ebp, dword [esp + 0x50]
jge 0x439cc3
mov eax, dword [esp + 0x28]
cmp eax, 0xffffffff
jle 0x439c1f
xor ecx, ecx
mov cl, byte [eax + esi + 0x5a7318]
cmp ecx, ebp
jne 0x439c1f
mov edx, dword [esi + 0x5a6f04]
mov dword [esp + 0x34], edx
mov ecx, esi
call fcn.004206a0
push 0
push 0
push 0
push 1
mov ecx, esi
call fcn.00420a50
mov ecx, dword [edi + 0x4daea0]
mov edx, dword [esp + 0x4f8]
lea eax, [esi + 0xa684e1]
push 1
push eax
mov eax, dword [esp + 0x50]
push 0xb
push ecx
mov ecx, dword [esp + 0x54]
push edx
mov edx, dword [esp + 0x44]
push ebx
push 1
push 1
push 0x211
push eax
mov eax, dword [esp + 0x54]
push ecx
mov ecx, dword [esp + 0x40]
push edx
mov edx, dword [esp + 0x48]
push eax
push ecx
push edx
mov ecx, esi
call fcn.004206e0
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
add ecx, eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x4c]
add edx, ecx
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x70]
add eax, edx
mov edx, dword [esp + 0x30]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x6c]
add edx, eax
mov eax, dword [esp + 0x1c]
inc ebp
mov dword [esp + 0x30], edx
cmp ebp, eax
jl 0x439bf5
mov eax, dword [esp + 0x34]
cmp eax, 0xffffffff
jle case.0x438f04.4109
mov ebx, eax
push 2
shl eax, 5
sub eax, ebx
lea ecx, [eax + eax*8]
lea edx, [ebx + ecx*4]
lea eax, [ebx + edx*4]
lea eax, [esi + eax*2]
lea ecx, [eax + 0x2ab314]
mov byte [eax + 0x2ac22c], 1
call fcn.0041c4b0
mov ecx, dword [edi + 0x4daea0]
mov edx, dword [esp + 0x4f8]
push ebx
push ecx
push edx
jmp 0x43a0a6
cmp ebp, 0xf004
jg 0x439ec6
cmp ebp, 0xf002
jge 0x439e55
cmp ebp, 0x2101
je 0x439e55
cmp ebp, 0xf001
jne case.0x438f04.4109
mov eax, dword [esp + 0x1c]
xor ebp, ebp
test eax, eax
jle 0x439dfc
cmp ebp, dword [esp + 0x50]
jge 0x439dfc
cmp dword [esi + 0xa749a5], ebp
jne 0x439d66
mov eax, dword [esi + 0x5a6f04]
mov dword [esp + 0x34], eax
mov ecx, esi
call fcn.004206a0
push 0
push 0
push 0
push 1
mov ecx, esi
call fcn.00420a50
mov edx, dword [edi + 0x4daea0]
mov eax, dword [esp + 0x4f8]
lea ecx, [esi + 0xa684e1]
push 1
push ecx
mov ecx, dword [esp + 0x50]
push 0xb
push edx
mov edx, dword [esp + 0x54]
push eax
mov eax, dword [esp + 0x44]
push ebx
push 1
push 1
push 0x211
push ecx
mov ecx, dword [esp + 0x54]
push edx
mov edx, dword [esp + 0x40]
push eax
mov eax, dword [esp + 0x48]
push ecx
push edx
push eax
mov ecx, esi
call fcn.004206e0
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
add edx, ecx
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x4c]
add eax, edx
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x44]
add edx, eax
mov eax, dword [esp + 0x1c]
inc ebp
mov dword [esp + 0x2c], edx
cmp ebp, eax
jl 0x439d4a
mov ebx, dword [esp + 0x34]
mov ecx, dword [edi + 0x4daea0]
mov edx, dword [esp + 0x4f8]
push ebx
push ecx
push edx
push 0x211
mov ecx, esi
call fcn.00420c50
mov eax, ebx
push 2
shl eax, 5
sub eax, ebx
lea eax, [eax + eax*8]
lea ecx, [ebx + eax*4]
lea edx, [ebx + ecx*4]
lea esi, [esi + edx*2]
lea ecx, [esi + 0x2ab314]
mov byte [esi + 0x2ac22c], 1
call fcn.0041c4b0
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x4e4
ret 8
mov ecx, esi
call fcn.004206a0
push 0
push 0
push 0
push 1
mov ecx, esi
call fcn.00420a50
mov ecx, dword [edi + 0x4daea0]
mov edx, dword [esp + 0x4f8]
lea eax, [esi + 0xa684e1]
push 1
push eax
mov eax, dword [esp + 0x50]
push 0xb
push ecx
mov ecx, dword [esp + 0x54]
push edx
mov edx, dword [esp + 0x44]
push ebx
push 1
push 1
push 0x200
push eax
mov eax, dword [esp + 0x54]
push ecx
mov ecx, dword [esp + 0x40]
push edx
mov edx, dword [esp + 0x48]
push eax
push ecx
push edx
mov ecx, esi
call fcn.004206e0
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x4e4
ret 8
sub ebp, 0xf101
je 0x439fa4
dec ebp
jne case.0x438f04.4109
mov eax, dword [esp + 0x1c]
xor ebp, ebp
test eax, eax
jle case.0x438f04.4109
cmp ebp, dword [esp + 0x50]
jge case.0x438f04.4109
mov ecx, esi
call fcn.004206a0
mov ecx, dword [edi + 0x4daea0]
lea eax, [esi + 0xa684e1]
mov edx, dword [esp + 0x48]
push 0
push eax
mov eax, dword [esp + 0x4c]
push 0xb
push ecx
mov ecx, dword [esp + 0x40]
push 0
push ebx
push 1
push 1
push 0x200
push edx
mov edx, dword [esp + 0x54]
push eax
push ecx
mov ecx, dword [esp + 0x44]
xor eax, eax
mov eax, ecx
push edx
mov edx, dword [esp + 0x4c]
push eax
xor eax, eax
mov ecx, esi
mov eax, edx
push eax
call fcn.004206e0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x5c]
push 1
add ecx, eax
push 0x221
push ecx
mov ecx, dword [esp + 0x24]
add edx, ecx
push edx
push eax
push ecx
mov ecx, esi
call fcn.004207a0
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
add ecx, eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x4c]
add edx, ecx
inc ebp
cmp ebp, eax
mov dword [esp + 0x14], edx
jl 0x439ee7
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x4e4
ret 8
mov eax, dword [esi + 0x5a6f04]
xor ebp, ebp
inc eax
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x1c]
test eax, eax
jle 0x43a06b
cmp ebp, dword [esp + 0x50]
jge 0x43a06b
mov ecx, esi
call fcn.004206a0
push 0
push 0
push 0
push 1
mov ecx, esi
call fcn.00420a50
mov eax, dword [edi + 0x4daea0]
mov ecx, dword [esp + 0x4f8]
lea edx, [esi + 0xa684e1]
push 1
push edx
mov edx, dword [esp + 0x50]
push 0xb
push eax
mov eax, dword [esp + 0x54]
push ecx
mov ecx, dword [esp + 0x44]
push ebx
push 1
push 1
push 0x211
push edx
mov edx, dword [esp + 0x54]
push eax
mov eax, dword [esp + 0x40]
push ecx
mov ecx, dword [esp + 0x48]
push edx
push eax
push ecx
mov ecx, esi
call fcn.004206e0
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
add eax, edx
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x4c]
add ecx, eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x70]
add edx, ecx
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x6c]
add eax, edx
inc ebp
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x1c]
cmp ebp, eax
jl 0x439fbd
mov ebx, dword [esp + 0x34]
push 2
mov eax, ebx
shl eax, 5
sub eax, ebx
lea eax, [eax + eax*8]
lea ecx, [ebx + eax*4]
lea edx, [ebx + ecx*4]
lea eax, [esi + edx*2]
lea ecx, [eax + 0x2ab314]
mov byte [eax + 0x2ac22c], 1
call fcn.0041c4b0
mov eax, dword [edi + 0x4daea0]
mov ecx, dword [esp + 0x4f8]
push ebx
push eax
push ecx
push 0x211
mov ecx, esi
call fcn.00420c50
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x4e4
ret 8