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

Disassembly:
sub esp, 0x78
push ebx
push ebp
push esi
mov esi, dword [esp + 0x88]
push edi
xor ebp, ebp
mov eax, dword [esi + 0x1c]
mov edi, dword [eax*4 + 0x472a40]
mov eax, dword [esi + 0xc]
cmp eax, ebp
mov dword [esp + 0x84], edi
je 0x431555
lea ecx, [esp + 0x60]
lea edx, [esp + 0x5c]
push ecx
push edx
push eax
call fcn.00431900
add esp, 0xc
mov dword [esp + 0x18], 1
jmp 0x431559
mov dword [esp + 0x18], ebp
mov edx, dword [esi + 0x10]
lea eax, [esp + 0x58]
lea ecx, [esp + 0x54]
push eax
push ecx
push edx
call fcn.00431900
mov edx, dword [esi + 0x14]
lea eax, [esp + 0x5c]
lea ecx, [esp + 0x58]
push eax
push ecx
push edx
call fcn.00431900
mov edx, dword [esi + 0x18]
lea eax, [esp + 0x60]
lea ecx, [esp + 0x5c]
push eax
push ecx
push edx
call fcn.00431900
mov edx, dword [esi + 0x10]
mov ebx, dword [esi + 0xc]
lea eax, [esp + 0x34]
lea ecx, [esp + 0x60]
push eax
mov eax, dword [esi + 0x18]
push ecx
mov ecx, dword [esi + 0x14]
or edx, ebx
or edx, ecx
or edx, eax
push edx
call fcn.00431900
mov eax, dword [esp + 0x6c]
add esp, 0x30
cmp eax, 0x10
jle 0x4315c9
mov eax, dword [esi + 4]
mov dword [esp + 0x40], eax
jmp 0x4315d0
mov ecx, dword [esi + 4]
mov dword [esp + 0x64], ecx
mov ebx, dword [esi + 0x24]
mov eax, dword [esi + 0x20]
cmp ebx, eax
mov dword [esp + 0x10], ebp
mov dword [esp + 0x70], ebx
jl 0x4318ec
lea edx, [ebx*4 + 0x472a40]
mov dword [esp + 0x30], edx
jmp 0x4315f5
xor ebp, ebp
mov eax, dword [esp + 0x30]
mov ecx, dword [eax]
mov eax, edi
cdq
idiv ecx
mov edx, edi
mov dword [esp + 0x74], ecx
sub edx, eax
mov dword [esp + 0x24], eax
shl edx, 2
mov dword [esp + 0x78], edx
mov edx, eax
imul edx, eax
mov dword [esp + 0x6c], edx
cmp ecx, ebp
fild dword [esp + 0x6c]
fdivr dword [0x45c65c]
fstp dword [esp + 0x14]
jle 0x4318d1
imul eax, edi
shl eax, 2
mov dword [esp + 0x80], eax
mov eax, ebp
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x28], eax
mov dword [esp + 0x68], ecx
jmp 0x431673
mov ecx, dword [esp + 0x74]
mov eax, dword [esp + 0x2c]
mov esi, dword [esp + 0x8c]
mov dword [esp + 0x28], eax
mov dword [esp + 0x68], ecx
jmp 0x431673
mov esi, dword [esp + 0x8c]
mov eax, dword [esp + 0x28]
mov ebp, dword [esi]
mov ecx, dword [esp + 0x24]
add eax, ebp
xor edx, edx
xor ebp, ebp
xor edi, edi
xor esi, esi
test ecx, ecx
mov dword [esp + 0x38], edx
mov dword [esp + 0x34], ebp
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], esi
mov dword [esp + 0x7c], esi
jle 0x431723
mov dword [esp + 0x1c], ecx
jmp 0x4316ad
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x4316df
xor ecx, ecx
xor ebx, ebx
mov cl, byte [eax]
mov bl, byte [eax + 1]
imul ebx, ecx
add esi, ebx
xor ebx, ebx
mov bl, byte [eax + 2]
add edx, ecx
imul ebx, ecx
add edi, ebx
xor ebx, ebx
mov bl, byte [eax + 3]
imul ebx, ecx
add ebp, ebx
jmp 0x4316f4
xor ecx, ecx
mov cl, byte [eax + 1]
add esi, ecx
xor ecx, ecx
mov cl, byte [eax + 2]
add edi, ecx
xor ecx, ecx
mov cl, byte [eax + 3]
add ebp, ecx
mov ecx, dword [esp + 0x20]
add eax, 4
dec ecx
mov dword [esp + 0x20], ecx
jne 0x4316b1
mov ebx, dword [esp + 0x78]
mov ecx, dword [esp + 0x1c]
add eax, ebx
dec ecx
mov dword [esp + 0x1c], ecx
jne 0x4316a9
mov dword [esp + 0x34], ebp
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], esi
mov dword [esp + 0x38], edx
fild dword [esp + 0x20]
mov eax, dword [esp + 0x18]
test eax, eax
fmul dword [esp + 0x14]
fild dword [esp + 0x1c]
fmul dword [esp + 0x14]
fstp dword [esp + 0x1c]
fild dword [esp + 0x34]
fmul dword [esp + 0x14]
fstp dword [esp + 0x20]
je 0x431780
fild dword [esp + 0x38]
fmul dword [esp + 0x14]
fcom dword [0x45c690]
fnstsw ax
test ah, 0x40
jne 0x431784
fld dword [0x45c65c]
fdiv st(1)
fld st(0)
fmulp st(3)
fld st(0)
fmul dword [esp + 0x1c]
fstp dword [esp + 0x1c]
fmul dword [esp + 0x20]
fstp dword [esp + 0x20]
jmp 0x431784
fld dword [esp + 0x7c]
call fcn.004474b4
mov esi, eax
call fcn.004474b4
fld dword [esp + 0x1c]
mov ebx, eax
call fcn.004474b4
fld dword [esp + 0x20]
mov edi, eax
call fcn.004474b4
cmp esi, 0xff
jl 0x4317b3
mov esi, 0xff
cmp ebx, 0xff
jl 0x4317c0
mov ebx, 0xff
cmp edi, 0xff
jl 0x4317cd
mov edi, 0xff
cmp eax, 0xff
jl 0x4317d9
mov eax, 0xff
mov ecx, dword [esp + 0x3c]
cmp ecx, 0x10
mov ecx, dword [esp + 0x44]
jle 0x43182f
sar eax, cl
mov ecx, dword [esp + 0x48]
shl eax, cl
mov ecx, dword [esp + 0x4c]
sar edi, cl
mov ecx, dword [esp + 0x50]
shl edi, cl
mov ecx, dword [esp + 0x54]
sar ebx, cl
mov ecx, dword [esp + 0x58]
or eax, edi
shl ebx, cl
mov ecx, dword [esp + 0x5c]
sar esi, cl
mov ecx, dword [esp + 0x60]
or eax, ebx
shl esi, cl
mov ecx, dword [esp + 0x40]
add ecx, 4
mov dword [esp + 0x40], ecx
or eax, esi
mov dword [ecx - 4], eax
mov eax, dword [esp + 0x10]
add eax, 4
jmp 0x431877
sar eax, cl
mov ecx, dword [esp + 0x48]
shl eax, cl
mov ecx, dword [esp + 0x4c]
sar edi, cl
mov ecx, dword [esp + 0x50]
shl edi, cl
mov ecx, dword [esp + 0x54]
sar ebx, cl
mov ecx, dword [esp + 0x58]
or eax, edi
shl ebx, cl
mov ecx, dword [esp + 0x5c]
sar esi, cl
mov ecx, dword [esp + 0x60]
or eax, ebx
shl esi, cl
mov ecx, dword [esp + 0x64]
add ecx, 2
mov dword [esp + 0x64], ecx
or eax, esi
mov word [ecx - 2], ax
mov eax, dword [esp + 0x10]
add eax, 2
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x10], eax
lea eax, [edx*4]
add ecx, eax
mov eax, dword [esp + 0x68]
dec eax
mov dword [esp + 0x28], ecx
mov dword [esp + 0x68], eax
jne 0x43166c
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x2c]
add ecx, eax
mov eax, dword [esp + 0x6c]
dec eax
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x6c], eax
jne 0x431653
mov ebx, dword [esp + 0x70]
mov edi, dword [esp + 0x84]
mov esi, dword [esp + 0x8c]
mov ecx, dword [esp + 0x30]
mov eax, dword [esi + 0x20]
dec ebx
sub ecx, 4
cmp ebx, eax
mov dword [esp + 0x70], ebx
mov dword [esp + 0x30], ecx
jge 0x4315f3
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret