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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x7c
mov eax, dword [0x479630]
xor eax, esp
mov dword [esp + 0x78], eax
push ebx
xor eax, eax
mov ebx, ecx
push esi
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], eax
mov dword [ebx + 0x1c], eax
lea eax, [esp + 0xc]
push edi
push eax
mov dword [esp + 0x24], ebx
call fcn.0043bf3d
pop ecx
lea eax, [esp + 0x10]
push eax
call fcn.0043be10
pop ecx
push 9
pop ecx
push 9
mov esi, eax
lea edi, [esp + 0x28]
rep movsd dword es:[edi], dword [esi]
mov edx, dword [esp + 0x3c]
pop ecx
push dword [esp + 0x30]
lea esi, [esp + 0x28]
push dword [ebx + 4]
lea edi, [esp + 0x68]
push dword [ebx + 8]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x40]
push 0
lea eax, [esp + 0x70]
call fcn.00403807
mov edi, eax
mov eax, dword [ebx]
mov esi, edx
mov edx, eax
and edx, 0xff
add esp, 0x10
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], esi
cmp edx, 0x7f
jne 0x403acc
cmp esi, dword [esp + 0x14]
jl 0x403ab8
jg 0x403aa4
cmp edi, dword [esp + 0x10]
jbe 0x403ab8
mov dword [ebx + 0x48], edi
sub edi, 0x15180
mov dword [ebx + 0x4c], esi
sbb esi, 0
jmp 0x403bcc
mov dword [ebx + 0x40], edi
add edi, 0x15180
mov dword [ebx + 0x44], esi
adc esi, 0
jmp 0x403be2
test eax, 0x1000000
je 0x403b8b
push dword [esp + 0x38]
mov eax, dword [esp + 0x38]
movzx esi, byte [ebx + 2]
call fcn.00403845
pop ecx
mov ecx, eax
test esi, esi
jne 0x403af2
inc esi
jmp 0x403aff
cmp esi, ecx
jbe 0x403aff
xor edx, edx
div esi
sub ecx, edx
lea esi, [ecx + 1]
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
push esi
push dword [ebx + 4]
lea eax, [esp + 0x68]
push dword [ebx + 8]
push 0
call fcn.00403807
mov esi, edx
add esp, 0x10
mov edi, eax
cmp esi, dword [esp + 0x14]
jl 0x403b5a
jg 0x403b2e
cmp edi, dword [esp + 0x10]
jbe 0x403b5a
mov eax, dword [esp + 0x34]
mov dword [ebx + 0x48], edi
mov dword [ebx + 0x4c], esi
test eax, eax
jne 0x403b41
push 0xb
pop eax
jmp 0x403b42
dec eax
push dword [esp + 0x38]
call fcn.00403845
imul eax, eax, 0x15180
pop ecx
xor ecx, ecx
sub edi, eax
sbb esi, ecx
jmp 0x403bcc
push dword [esp + 0x38]
mov eax, dword [esp + 0x38]
inc eax
cdq
push 0xc
pop ecx
idiv ecx
mov dword [ebx + 0x40], edi
mov dword [ebx + 0x44], esi
mov eax, edx
call fcn.00403845
imul eax, eax, 0x15180
pop ecx
xor ecx, ecx
add eax, edi
adc ecx, esi
mov dword [ebx + 0x48], eax
mov dword [ebx + 0x4c], ecx
jmp 0x403be8
call fcn.0040f783
cmp eax, dword [esp + 0x78]
jle 0x403b9c
sub eax, dword [esp + 0x78]
jmp 0x403ba3
sub eax, dword [esp + 0x78]
add eax, 7
imul eax, eax, 0x15180
add edi, eax
push 0
pop eax
adc esi, eax
cmp esi, dword [esp + 0x14]
jl 0x403bd4
jg 0x403bbe
cmp edi, dword [esp + 0x10]
jbe 0x403bd4
mov dword [ebx + 0x48], edi
sub edi, 0x93a80
mov dword [ebx + 0x4c], esi
sbb esi, eax
mov dword [ebx + 0x40], edi
mov dword [ebx + 0x44], esi
jmp 0x403be8
mov dword [ebx + 0x40], edi
add edi, 0x93a80
mov dword [ebx + 0x44], esi
adc esi, eax
mov dword [ebx + 0x4c], esi
mov dword [ebx + 0x48], edi
mov eax, dword [ebx + 0x48]
mov edx, dword [ebx]
and dword [ebx + 0x1c], 0
mov dword [ebx + 0x28], eax
mov eax, dword [ebx + 0x4c]
mov dword [ebx + 0x2c], eax
mov eax, dword [ebx + 0x40]
mov dword [ebx + 0x20], eax
mov eax, dword [ebx + 0x44]
sar edx, 8
and edx, 0xff
mov dword [ebx + 0x24], eax
call fcn.0040f783
xor edi, edi
cmp eax, edi
jge 0x403c5c
lea esi, [esp + 0x54]
call fcn.00412bf2
lea ecx, [esp + 0xf]
push ecx
lea edx, [esp + 0x4c]
mov ecx, eax
call fcn.00412c69
mov ecx, esi
call fcn.00412c4c
movzx edx, byte [esp + 0xf]
neg edx
sbb edx, edx
and edx, dword [esp + 0x48]
mov dword [ebx], edx
and edx, 0xff00
call fcn.0040f783
cmp eax, edi
jl 0x403d2b
cmp eax, dword [esp + 0x3c]
jl 0x403c68
sub eax, dword [esp + 0x3c]
jmp 0x403c6f
sub eax, dword [esp + 0x3c]
add eax, 7
mov ecx, dword [esp + 0x18]
imul eax, eax, 0x15180
add ecx, eax
mov eax, dword [esp + 0x1c]
adc eax, edi
cmp eax, dword [esp + 0x14]
jl 0x403ca5
jg 0x403c8f
cmp ecx, dword [esp + 0x10]
jbe 0x403ca5
mov dword [ebx + 0x38], ecx
sub ecx, 0x93a80
mov dword [ebx + 0x3c], eax
sbb eax, edi
mov dword [ebx + 0x30], ecx
mov dword [ebx + 0x34], eax
jmp 0x403cb9
mov dword [ebx + 0x30], ecx
add ecx, 0x93a80
mov dword [ebx + 0x34], eax
adc eax, edi
mov dword [ebx + 0x38], ecx
mov dword [ebx + 0x3c], eax
add ebx, 0x50
call fcn.004038bd
test eax, eax
je 0x403d2b
mov esi, dword [ebx]
mov ebx, dword [ebx + 4]
mov eax, dword [esp + 0x20]
cmp ebx, dword [eax + 0x44]
jg 0x403cdf
jl 0x403cda
cmp esi, dword [eax + 0x40]
jae 0x403cdf
xor edi, edi
inc edi
jmp 0x403ce1
xor edi, edi
mov edx, dword [eax + 0x34]
mov ecx, dword [eax + 0x30]
cmp ebx, edx
jg 0x403cf6
jl 0x403cf1
cmp esi, ecx
jae 0x403cf6
xor esi, esi
inc esi
jmp 0x403cf8
xor esi, esi
test edi, edi
jne 0x403d2b
test esi, esi
jne 0x403d12
mov esi, dword [eax + 0x3c]
cmp esi, dword [eax + 0x4c]
jg 0x403d2b
jl 0x403d12
mov esi, dword [eax + 0x38]
cmp esi, dword [eax + 0x48]
jae 0x403d2b
mov dword [eax + 0x20], ecx
mov ecx, dword [eax + 0x38]
mov dword [eax + 0x28], ecx
mov ecx, dword [eax + 0x3c]
mov dword [eax + 0x1c], 1
mov dword [eax + 0x24], edx
mov dword [eax + 0x2c], ecx
mov ecx, dword [esp + 0x84]
pop edi
pop esi
xor eax, eax
pop ebx
xor ecx, esp
inc eax
call fcn.0043a455
mov esp, ebp
pop ebp
ret