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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x174
mov eax, dword [ebp + 0xc]
push ebx
mov ebx, ecx
mov ecx, dword [eax + 0x10]
push esi
push edi
add ecx, 0x10
mov dword [esp + 0x14], ebx
call fcn.005b5050
mov eax, dword [ebp + 8]
mov ecx, eax
shl ecx, 7
lea esi, [ecx + ebx]
mov ecx, eax
shl ecx, 7
mov edi, dword [ecx + ebx + 0xd4]
fld dword [ecx + ebx + 0xd8]
add ecx, ebx
mov dword [esp + 0x80], edi
mov edi, dword [ecx + 0xdc]
mov dword [esp + 0x40], edi
movsx edi, byte [esi + 0x149]
mov edx, eax
mov dword [esp + 0xc0], edi
movsx edi, byte [esi + 0x14d]
fstp dword [esp + 0x84]
fld dword [ecx + 0xe0]
add eax, 2
shl edx, 5
shl eax, 7
mov dword [esp + 0x70], edi
fstp dword [esp + 0x44]
lea edi, [eax + ebx]
fld dword [ebx + edx*4 + 0xfc]
fst dword [esp + 0xb0]
fsubr dword [edi]
fst dword [esp + 0xa0]
fmul dword [0x783c90]
fcom dword [0x784250]
fnstsw ax
test ah, 0x41
je 0x4190ee
fstp st(0)
fld dword [0x784250]
mov eax, dword [ecx + 0xdc]
fst dword [esp + 0x60]
fstp dword [esp + 0x30]
mov dword [esp + 0x88], eax
fld dword [ecx + 0xe0]
mov eax, dword [ecx + 0xe4]
fstp dword [esp + 0x8c]
fld dword [ecx + 0xe8]
mov dword [esp + 0x48], eax
movsx eax, byte [esi + 0x14a]
mov dword [esp + 0xc4], eax
movsx eax, byte [esi + 0x14e]
fstp dword [esp + 0x4c]
fld dword [edi]
fst dword [esp + 0xb4]
mov dword [esp + 0x74], eax
fsubr dword [ebx + edx*4 + 0x104]
fst dword [esp + 0xa4]
fmul dword [0x783c90]
fcom dword [0x784250]
fnstsw ax
test ah, 0x41
je 0x41916f
fstp st(0)
fld dword [0x784250]
mov eax, dword [ecx + 0xe4]
fst dword [esp + 0x64]
fstp dword [esp + 0x34]
mov dword [esp + 0x90], eax
fld dword [ecx + 0xe8]
mov eax, dword [ecx + 0xec]
fstp dword [esp + 0x94]
fld dword [ecx + 0xf0]
mov dword [esp + 0x50], eax
movsx eax, byte [esi + 0x14b]
mov dword [esp + 0xc8], eax
movsx eax, byte [esi + 0x14f]
fstp dword [esp + 0x54]
fld dword [ebx + edx*4 + 0x104]
fst dword [esp + 0xb8]
mov dword [esp + 0x78], eax
fsubr dword [ebx + edx*4 + 0x108]
fst dword [esp + 0xa8]
fmul dword [0x783c90]
fcom dword [0x784250]
fnstsw ax
test ah, 0x41
je 0x4191f5
fstp st(0)
fld dword [0x784250]
mov eax, dword [ecx + 0xec]
fst dword [esp + 0x68]
fstp dword [esp + 0x38]
mov dword [esp + 0x98], eax
fld dword [ecx + 0xf0]
mov eax, dword [ecx + 0xf4]
fstp dword [esp + 0x9c]
fld dword [ecx + 0xf8]
movsx ecx, byte [esi + 0x14c]
mov dword [esp + 0x58], eax
movsx eax, byte [esi + 0x150]
fstp dword [esp + 0x5c]
fld dword [ebx + edx*4 + 0x108]
fst dword [esp + 0xbc]
mov dword [esp + 0x7c], eax
fsubr dword [ebx + edx*4 + 0x10c]
mov dword [esp + 0xcc], ecx
fst dword [esp + 0xac]
fmul dword [0x783c90]
fcom dword [0x784250]
fnstsw ax
test ah, 0x41
je 0x41927b
fstp st(0)
fld dword [0x784250]
fst dword [esp + 0x6c]
lea edi, [esp + 0x30]
fld dword [0x783c94]
xor esi, esi
fmul dword [esp + 0x60]
fstp dword [esp + 0x60]
fmul dword [0x783c94]
fstp dword [esp + 0x3c]
lea ecx, [ecx]
fld dword [esp + esi + 0x48]
mov ecx, dword [edi]
lea eax, [esp + esi + 0xd0]
fsub dword [esp + esi + 0x40]
push ecx
push eax
fstp dword [eax]
push eax
fld dword [esp + esi + 0x58]
fsub dword [esp + esi + 0x50]
fstp dword [esp + esi + 0xe0]
call fcn.0043cf20
add esi, 8
add esp, 0xc
add edi, 4
cmp esi, 0x18
jl 0x4192a0
mov eax, dword [esp + 0x7c]
mov edi, dword [ebx + 4]
xor ecx, ecx
test eax, eax
setle cl
lea esi, [edi - 2]
dec ecx
and ecx, eax
cmp esi, ecx
jge 0x4192f2
mov ecx, esi
cmp eax, ecx
jne 0x41932a
mov eax, dword [ebx + eax*4 + 0xc]
fld dword [eax + 0x54]
push 0
push 0
push ecx
lea edx, [esp + 0x2c]
fstp dword [esp]
push edx
mov ecx, eax
call fcn.004122f0
fld dword [esp + 0x24]
fld dword [esp + 0x20]
fsub dword [esp + 0x58]
fstp dword [esp + 0xe8]
fsub dword [esp + 0x5c]
jmp 0x419391
mov edi, dword [ebx + edi*4 + 4]
mov ax, word [edi + 0x5c]
cmp ax, 0xffff
je 0x41937c
mov cx, word [edi + 0x5e]
cmp cx, 0xffff
je 0x41937c
movsx eax, ax
test eax, eax
jl 0x419352
mov eax, dword [eax*4 + 0x88a334]
jmp 0x419354
xor eax, eax
movsx ecx, cx
imul ecx, ecx, 0x38
lea eax, [ecx + eax + 0x8c]
test eax, eax
je 0x41937c
mov edx, dword [edi]
push eax
lea eax, [esp + 0x24]
push eax
mov ecx, edi
call dword [edx + 0x1c]
fld dword [esp + 0x20]
fld dword [esp + 0x24]
jmp 0x419388
fld dword [0x7d7d3c]
fld dword [0x784250]
fxch st(1)
fstp dword [esp + 0xe8]
mov ecx, dword [esp + 0x3c]
fstp dword [esp + 0xec]
push ecx
lea edx, [esp + 0xec]
push edx
lea eax, [esp + 0xf0]
push eax
call fcn.0043cf20
xor edi, edi
add esp, 0xc
mov eax, 1
xor edx, edx
mov dword [esp + 0xf0], 0
mov dword [esp + 0xf4], 0
mov dword [esp + 0xf8], 0
mov dword [esp + 0xfc], 0
mov dword [esp + 0x114], 0x3f800000
mov dword [esp + 0x118], 0x3f800000
mov word [esp + 0x11c], di
mov word [esp + 0x11e], ax
mov dword [esp + 0x120], edi
mov dword [esp + 0x124], edi
mov dword [esp + 0x128], edi
mov dword [esp + 0x12c], edi
mov dword [esp + 0x144], 0x3f800000
mov dword [esp + 0x148], 0x3f800000
mov word [esp + 0x14c], di
mov word [esp + 0x14e], ax
mov dword [esp + 0x18], edi
mov dword [esp + 0xc], edx
lea ebx, [ebx]
fld dword [esp + edx + 0xa0]
lea eax, [esp + edx + 0xa0]
fcomp dword [0x784358]
mov dword [esp + 0x10], eax
fnstsw ax
test ah, 0x41
jne 0x41966e
mov eax, dword [ebx + 4]
mov esi, dword [esp + edx + 0xc0]
xor ecx, ecx
dec eax
test esi, esi
setle cl
dec ecx
and ecx, esi
cmp eax, ecx
jge 0x41949e
mov ecx, eax
cmp esi, ecx
jne 0x41966e
lea ecx, [esp + edx + 0x70]
xor edx, edx
mov dword [esp + 0x1c], ecx
mov ecx, dword [ecx]
test ecx, ecx
setle dl
dec edx
and edx, ecx
cmp eax, edx
jl 0x4194c0
mov eax, edx
cmp ecx, eax
jne 0x41966e
test esi, esi
jle 0x41951c
mov ebx, dword [ebx + esi*4 + 4]
fld dword [ebx + 0x54]
push 0
push 0
push ecx
lea ecx, [esp + 0x15c]
fstp dword [esp]
push ecx
mov ecx, ebx
call fcn.004122f0
fld dword [esp + 0x154]
fld dword [esp + edi + 0x80]
lea ebx, [esp + edi + 0x160]
fsub dword [esp + 0x150]
fstp dword [ebx]
fld dword [esp + edi + 0x84]
fsub st(1)
fstp dword [esp + edi + 0x164]
fstp st(0)
jmp 0x41958d
mov ebx, dword [ebx + 8]
mov ax, word [ebx + 0x5c]
cmp ax, 0xffff
je 0x419565
mov cx, word [ebx + 0x5e]
cmp cx, 0xffff
je 0x419565
movsx eax, ax
test eax, eax
jl 0x419543
mov eax, dword [eax*4 + 0x88a334]
jmp 0x419545
xor eax, eax
movsx edx, cx
imul edx, edx, 0x38
lea eax, [edx + eax + 0x8c]
test eax, eax
je 0x419565
mov edx, dword [ebx]
push eax
lea eax, [esp + 0x24]
push eax
mov ecx, ebx
call dword [edx + 0x20]
jmp 0x419575
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0x3f800000
mov ecx, dword [esp + 0x20]
fld dword [esp + 0x24]
lea ebx, [esp + edi + 0x160]
fstp dword [esp + edi + 0x164]
mov dword [ebx], ecx
mov edx, dword [esp + 0xc]
mov eax, dword [esp + edx + 0x60]
push eax
push ebx
push ebx
call fcn.0043cf20
add esp, 0xc
lea ecx, [esp + edi + 0x80]
push ecx
lea ecx, [esp + 0xf4]
call fcn.00574790
push ebx
lea ecx, [esp + 0xf4]
call fcn.005747d0
lea edx, [esp + edi + 0x40]
push edx
lea ecx, [esp + 0xf4]
call fcn.00574810
lea eax, [esp + edi + 0xd0]
push eax
lea ecx, [esp + 0xf4]
call fcn.00574850
lea ecx, [esp + 0xf0]
call fcn.005744b0
lea ecx, [esp + 0x120]
call fcn.005744b0
mov ecx, dword [esp + 0x1c]
cmp esi, dword [ecx]
jg 0x41966a
mov edx, dword [esp + 0x10]
fld dword [0x784250]
fdiv dword [edx]
mov edi, dword [ecx]
mov eax, dword [esp + 0x14]
sub edi, esi
lea ebx, [eax + esi*4 + 8]
inc edi
fstp dword [esp + 0x10]
mov esi, dword [ebx]
fld dword [esi + 0x54]
mov edx, dword [esp + 0xc]
fsub dword [esp + edx + 0xb0]
push ecx
lea eax, [esp + 0x34]
fmul dword [esp + 0x14]
lea ecx, [esp + 0xf4]
fstp dword [esp]
push eax
call fcn.005748b0
push 0
lea ecx, [esp + 0x34]
push ecx
mov ecx, esi
call fcn.004123f0
fadd dword [esi + 4]
add ebx, 4
dec edi
fstp dword [esi + 4]
jne 0x419623
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x14]
mov edx, dword [esp + 0xc]
add edi, 8
add edx, 4
cmp edi, 0x20
mov dword [esp + 0x18], edi
mov dword [esp + 0xc], edx
jl 0x419460
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8