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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x1c4
mov eax, dword [0x5a8314]
xor eax, esp
mov dword [esp + 0x1c0], eax
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
xor esi, esi
mov dword [esp + 0x3c], edi
mov byte [esp + 0x13], 1
test edi, edi
je 0x445f90
mov ebx, dword [ebp + 0xc]
test ebx, ebx
je 0x445f90
mov ecx, dword [ebp + 0x10]
test ecx, ecx
je 0x445f90
cmp dword [ebp + 0x14], esi
je 0x445f90
mov eax, dword [edi + 8]
mov edx, dword [ebx]
sub eax, edx
inc eax
cmp eax, 2
ja 0x445971
mov eax, dword [edi + 0xc]
mov ebx, dword [ebx + 4]
sub eax, ebx
inc eax
cmp eax, 2
ja 0x445971
mov eax, ecx
mov ecx, dword [eax]
sub edx, ecx
inc edx
cmp edx, 2
ja 0x44596f
mov eax, dword [eax + 4]
sub ebx, eax
inc ebx
cmp ebx, 2
ja 0x44596a
mov ebx, dword [ebp + 0x14]
sub ecx, dword [ebx]
inc ecx
cmp ecx, 2
ja 0x44596a
sub eax, dword [ebx + 4]
inc eax
cmp eax, 2
ja 0x44596a
mov eax, dword [ebx]
mov dword [edi + 8], eax
mov eax, dword [ebx + 4]
mov dword [edi + 0xc], eax
mov eax, esi
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1c0]
xor ecx, esp
call fcn.00496b5c
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 0x10]
jmp 0x445971
mov ecx, eax
mov edx, dword [ebp + 0x14]
lea ebx, [esp + 0xa0]
mov dword [esp + 0x18], ebx
mov eax, dword [edx]
mov dword [esp + 0xa0], eax
mov eax, dword [edx + 4]
mov dword [esp + 0xa4], eax
mov eax, dword [ecx]
mov dword [esp + 0xa8], eax
mov eax, dword [ecx + 4]
mov ecx, dword [ebp + 0xc]
mov dword [esp + 0xac], eax
mov eax, dword [ecx]
mov dword [esp + 0xb0], eax
mov eax, dword [ecx + 4]
mov dword [esp + 0xb4], eax
mov eax, dword [edi + 8]
mov dword [esp + 0xb8], eax
mov eax, dword [edi + 0xc]
mov dword [esp + 0xbc], eax
lea eax, [esp + 0xb8]
mov dword [esp + 0x24], eax
lea eax, [esp + 0xbc]
mov dword [esp + 0x48], eax
mov ecx, dword [edi]
mov eax, ecx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x30], ecx
lea ecx, [esp + 0x1a0]
mov dword [esp + 0x14], eax
cmp ebx, ecx
jae 0x445b2a
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0x1c]
push eax
push ebx
call fcn.00446870
add esp, 0x10
test al, al
jne 0x445b1e
cmp byte [edi + 0x14], al
je 0x445a33
mov eax, dword [esp + 0x14]
mov dword [edi], eax
mov edx, dword [ebx + 8]
mov eax, dword [esp + 0x24]
mov edi, dword [ebx + 0x10]
mov dword [esp + 0x20], edx
mov ecx, dword [eax]
mov eax, dword [ebx]
add eax, edx
mov dword [ebx + 0x30], ecx
cdq
sub eax, edx
mov ebx, eax
mov eax, dword [esp + 0x18]
sar ebx, 1
mov dword [eax + 8], ebx
lea eax, [ecx + edi]
cdq
sub eax, edx
mov ecx, dword [esp + 0x18]
sar eax, 1
mov dword [esp + 0x2c], eax
mov dword [ecx + 0x28], eax
mov eax, dword [esp + 0x20]
add eax, edi
cdq
sub eax, edx
mov ecx, eax
sar ecx, 1
lea eax, [ebx + ecx]
mov ebx, dword [esp + 0x18]
cdq
sub eax, edx
mov edi, eax
mov eax, dword [esp + 0x2c]
add eax, ecx
sar edi, 1
cdq
mov ecx, dword [esp + 0x24]
sub eax, edx
sar eax, 1
mov dword [ebx + 0x20], eax
add eax, edi
cdq
sub eax, edx
mov dword [ebx + 0x10], edi
mov edx, dword [ebx + 0xc]
mov edi, dword [ebx + 0x14]
sar eax, 1
mov dword [ecx], eax
mov eax, dword [ebx + 4]
mov ecx, dword [ebx + 0x1c]
add eax, edx
mov dword [esp + 0x20], edx
cdq
sub eax, edx
mov dword [ebx + 0x34], ecx
mov ebx, eax
mov eax, dword [esp + 0x18]
sar ebx, 1
mov dword [eax + 0xc], ebx
lea eax, [ecx + edi]
mov ecx, dword [esp + 0x18]
cdq
sub eax, edx
sar eax, 1
mov dword [ecx + 0x2c], eax
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x20]
add eax, edi
cdq
sub eax, edx
mov ecx, eax
sar ecx, 1
lea eax, [ebx + ecx]
mov ebx, dword [esp + 0x18]
cdq
sub eax, edx
mov edi, eax
mov eax, dword [esp + 0x2c]
sar edi, 1
add eax, ecx
mov dword [ebx + 0x14], edi
cdq
mov ecx, 0x18
sub eax, edx
sar eax, 1
mov dword [ebx + 0x24], eax
add eax, edi
mov edi, dword [esp + 0x3c]
cdq
sub eax, edx
sar eax, 1
mov dword [ebx + 0x1c], eax
jmp 0x445f48
mov eax, dword [esp + 0x28]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x14]
cmp byte [esp + 0x13], 0
je 0x445b59
cmp byte [edi + 0x14], 0
mov byte [esp + 0x13], 0
push 0
je 0x445b4c
push eax
push edi
call fcn.00447580
add esp, 0xc
mov esi, eax
jmp 0x445ba0
push edi
mov dword [edi + 4], eax
call fcn.00447530
mov esi, eax
jmp 0x445b9d
push eax
push dword [edi]
call fcn.0043c860
cdq
add esp, 8
xor eax, edx
sub eax, edx
cmp eax, 0x5a000
jle 0x445ba0
mov ecx, dword [esp + 0x24]
push 0
push edi
mov dword [edi + 0x30], 0
mov eax, dword [ecx]
mov dword [edi + 8], eax
mov eax, dword [ecx + 4]
mov dword [edi + 0xc], eax
mov eax, dword [esp + 0x1c]
mov dword [edi + 4], eax
call fcn.00447530
mov esi, eax
mov eax, dword [edi + 0x34]
mov dword [edi + 0x30], eax
add esp, 8
test esi, esi
jne 0x445f95
mov dword [esp + 0x5c], esi
mov esi, dword [esp + 0x1c]
push esi
push dword [esp + 0x18]
call fcn.0043c860
push dword [esp + 0x38]
cdq
sub eax, edx
mov edi, eax
push esi
sar edi, 1
call fcn.0043c860
push dword [esp + 0x2c]
cdq
push dword [esp + 0x28]
sub eax, edx
mov esi, eax
sar esi, 1
call fcn.0043c860
push dword [esp + 0x48]
cdq
push dword [esp + 0x38]
sub eax, edx
sar eax, 1
add eax, dword [esp + 0x34]
mov dword [esp + 0x48], eax
call fcn.0043c860
cdq
sub eax, edx
sar eax, 1
add eax, dword [esp + 0x3c]
push edi
mov dword [esp + 0x64], eax
call fcn.0043ca40
mov edi, dword [esp + 0x60]
push eax
push dword [edi + 0x3c]
call fcn.0043ca70
push esi
mov dword [esp + 0xa0], eax
call fcn.0043ca40
push eax
push dword [edi + 0x3c]
call fcn.0043ca70
add esp, 0x38
mov dword [esp + 0x7c], eax
cmp byte [edi + 0x28], 0
mov eax, dword [ebx]
mov dword [esp + 0x1c], eax
je 0x445c60
mov ecx, dword [ebx + 4]
sub ecx, dword [ebx + 0x1c]
push ecx
mov ecx, eax
mov eax, dword [esp + 0x28]
sub ecx, dword [eax]
push ecx
call fcn.0043c8d0
add esp, 8
mov dword [esp + 0x5c], eax
jmp 0x445c64
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x18]
lea ebx, [edi + 0x40]
mov edx, dword [esp + 0x40]
mov esi, dword [esp + 0x30]
mov dword [esp + 0x20], ebx
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x74], ecx
mov ecx, dword [eax + 0x14]
mov dword [esp + 0x78], ecx
mov ecx, dword [eax + 8]
mov dword [esp + 0x80], ecx
mov ecx, dword [eax + 0xc]
mov eax, dword [eax + 4]
mov dword [esp + 0x84], ecx
mov ecx, dword [esp + 0x28]
sub ecx, edx
mov dword [esp + 0x60], eax
lea eax, [edx + str.en_JM]
mov dword [esp + 0x2c], 0
sub esi, edx
mov dword [esp + 0x44], eax
mov dword [esp + 0x28], ecx
mov dword [esp + 0x88], esi
add eax, ecx
push eax
push dword [esp + 0x74]
lea eax, [esp + 0x5c]
push eax
call fcn.004411d0
mov eax, dword [esp + 0x80]
add dword [esp + 0x60], eax
mov esi, dword [esp + 0x50]
mov eax, dword [esp + 0x84]
add dword [esp + 0x64], eax
lea eax, [esp + 0x58]
push esi
push dword [esp + 0x8c]
push eax
call fcn.004411d0
mov eax, dword [esp + 0x98]
add dword [esp + 0x64], eax
mov eax, dword [esp + 0x9c]
add dword [esp + 0x68], eax
mov eax, dword [esp + 0xa0]
add eax, esi
push eax
push dword [edi + 0x3c]
lea eax, [esp + 0x54]
push eax
call fcn.004411d0
mov esi, dword [esp + 0x40]
add esp, 0x24
mov edx, dword [esp + 0x60]
add esi, dword [esp + 0x34]
add edx, dword [esp + 0x38]
cmp byte [edi + 0x28], 0
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], edx
je 0x445eed
mov ecx, dword [ebx + 8]
mov eax, dword [ebx]
mov edi, dword [ecx + eax*8 - 8]
sub esi, edi
mov eax, dword [ecx + eax*8 - 4]
sub edx, eax
push edx
push esi
mov dword [esp + 0x1c], edi
mov dword [esp + 0xa0], edi
mov dword [esp + 0x48], eax
mov dword [esp + 0xa4], eax
call fcn.0043c8d0
push eax
push dword [esp + 0x68]
mov dword [esp + 0x9c], eax
call fcn.0043c860
mov edi, dword [esp + 0x4c]
add esp, 0x10
cdq
xor eax, edx
sub eax, edx
cmp eax, str.en_JM
jle 0x445eed
mov eax, dword [esp + 0x48]
mov eax, dword [eax]
sub eax, dword [esp + 0x40]
push eax
mov eax, dword [esp + 0x28]
mov eax, dword [eax]
sub eax, dword [esp + 0x18]
push eax
call fcn.0043c8d0
mov ecx, dword [esp + 0x68]
sub ecx, dword [esp + 0x40]
push ecx
mov ecx, dword [esp + 0x28]
sub ecx, dword [esp + 0x40]
push ecx
mov dword [esp + 0x74], eax
call fcn.0043c8d0
mov ecx, dword [esp + 0x44]
mov edi, eax
sub ecx, dword [esp + 0x24]
lea eax, [esp + 0xa0]
mov dword [esp + 0xa0], ecx
mov ecx, dword [esp + 0x48]
sub ecx, dword [esp + 0x50]
push eax
mov dword [esp + 0xa8], ecx
call fcn.00441290
mov ebx, eax
mov eax, dword [esp + 0xa0]
sub eax, edi
push eax
call fcn.00440680
mov ecx, dword [esp + 0x7c]
mov esi, eax
sub ecx, edi
push ecx
call fcn.00440680
cdq
xor eax, edx
sub eax, edx
push eax
mov eax, esi
cdq
xor eax, edx
sub eax, edx
push eax
push ebx
call fcn.0043e2a0
push dword [esp + 0x8c]
push eax
lea eax, [esp + 0x98]
push eax
call fcn.004411d0
mov eax, dword [esp + 0x48]
add dword [esp + 0x9c], eax
mov eax, dword [esp + 0x74]
add dword [esp + 0xa0], eax
lea eax, [esp + 0x9c]
mov ebx, dword [esp + 0x54]
push 0
push eax
push ebx
mov byte [ebx + 0x10], 0
call fcn.00446cd0
mov esi, eax
add esp, 0x40
test esi, esi
jne 0x445f95
push eax
lea eax, [esp + 0x38]
push eax
push ebx
call fcn.00446cd0
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x445f95
lea eax, [esp + 0x98]
push eax
lea eax, [esp + 0x58]
push eax
lea eax, [esp + 0x54]
push eax
push ebx
call fcn.00446b50
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x445f95
push eax
lea eax, [esp + 0x38]
push eax
push ebx
call fcn.00446cd0
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x445f95
mov edi, dword [esp + 0x3c]
jmp 0x445f0f
lea eax, [esp + 0x34]
push eax
lea eax, [esp + 0x50]
push eax
lea eax, [esp + 0x5c]
push eax
push ebx
call fcn.00446b50
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x445f95
mov ecx, dword [esp + 0x2c]
add ebx, 0x20
mov eax, dword [esp + 0x44]
inc ecx
sub eax, 0xb40000
mov dword [esp + 0x2c], ecx
cmp ecx, 1
mov dword [esp + 0x44], eax
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x20], ebx
jle 0x445cc5
mov eax, dword [esp + 0x30]
mov ecx, 0xffffffe8
mov ebx, dword [esp + 0x18]
mov dword [edi], eax
add dword [esp + 0x48], ecx
mov eax, ecx
add dword [esp + 0x24], eax
add ebx, eax
lea eax, [esp + 0xa0]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x18], ebx
cmp ebx, eax
jae 0x4459e5
mov ecx, dword [ebp + 0x14]
mov eax, dword [ecx]
mov dword [edi + 8], eax
mov eax, dword [ecx + 4]
mov dword [edi + 0xc], eax
mov eax, esi
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1c0]
xor ecx, esp
call fcn.00496b5c
mov esp, ebp
pop ebp
ret
mov esi, 6
mov ecx, dword [esp + 0x1cc]
mov eax, esi
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00496b5c
mov esp, ebp
pop ebp
ret