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

Disassembly:
mov al, byte [esp + 4]
sub esp, 0xb4
test al, al
push ebx
push ebp
push esi
push edi
mov esi, ecx
jne 0x418e4c
mov al, byte [0x59a47c]
test al, 1
jne 0x418cb9
mov dl, al
push fcn.0041a480
or dl, 1
mov byte [0x59a47c], dl
call fcn.00476928
add esp, 4
fld dword [esi + 0x74]
fmul dword [esi + 0x12c]
fld dword [esi + 0x64]
fmul dword [esi + 0x128]
faddp st(1)
fld dword [esi + 0x124]
fmul dword [esi + 0x54]
faddp st(1)
fadd dword [esi + 0x84]
fstp dword [0x59a480]
fld dword [esi + 0x58]
fmul dword [esi + 0x124]
fld dword [esi + 0x78]
fmul dword [esi + 0x12c]
mov eax, dword [0x59a480]
mov dword [esp + 0x2c], eax
mov al, byte [0x59a47c]
faddp st(1)
fld dword [esi + 0x68]
fmul dword [esi + 0x128]
test al, 1
faddp st(1)
fadd dword [esi + 0x88]
fstp dword [0x59a484]
fld dword [esi + 0x5c]
fmul dword [esi + 0x124]
fld dword [esi + 0x7c]
fmul dword [esi + 0x12c]
mov ecx, dword [0x59a484]
mov dword [esp + 0x30], ecx
faddp st(1)
fld dword [esi + 0x6c]
fmul dword [esi + 0x128]
faddp st(1)
fadd dword [esi + 0x8c]
fstp dword [0x59a488]
mov edx, dword [0x59a488]
mov dword [esp + 0x34], edx
jne 0x418d78
mov dl, al
push fcn.0041a480
or dl, 1
mov byte [0x59a47c], dl
call fcn.00476928
add esp, 4
fld dword [esi + 0x74]
fmul dword [esi + 0x120]
fld dword [esi + 0x64]
fmul dword [esi + 0x11c]
mov ebx, dword [esp + 0xd0]
faddp st(1)
fld dword [esi + 0x54]
fmul dword [esi + 0x118]
faddp st(1)
fadd dword [esi + 0x84]
fstp dword [0x59a480]
fld dword [esi + 0x78]
fmul dword [esi + 0x120]
fld dword [esi + 0x58]
fmul dword [esi + 0x118]
mov eax, dword [0x59a480]
mov dword [esp + 0x20], eax
lea eax, [esp + 0x2c]
faddp st(1)
fld dword [esi + 0x68]
fmul dword [esi + 0x11c]
push eax
faddp st(1)
fadd dword [esi + 0x88]
fstp dword [0x59a484]
fld dword [esi + 0x7c]
fmul dword [esi + 0x120]
fld dword [esi + 0x5c]
fmul dword [esi + 0x118]
mov ecx, dword [0x59a484]
mov dword [esp + 0x28], ecx
lea ecx, [esp + 0x24]
faddp st(1)
fld dword [esi + 0x6c]
fmul dword [esi + 0x11c]
push ecx
push ebx
faddp st(1)
fadd dword [esi + 0x8c]
fstp dword [0x59a488]
mov edx, dword [0x59a488]
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0xd8]
push edx
call fcn.0041aaf0
add esp, 0x10
test al, al
jne 0x418e53
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0xb4
ret 0x14
mov ebx, dword [esp + 0xd0]
mov eax, dword [esp + 0xcc]
xor ebp, ebp
mov ecx, dword [eax]
mov dword [esp + 0x40], ecx
mov ecx, ebx
mov edx, dword [eax + 4]
mov dword [esp + 0x44], edx
mov edx, dword [ecx]
mov eax, dword [eax + 8]
mov dword [esp + 0x64], edx
mov dword [esp + 0x48], eax
mov eax, dword [ecx + 4]
mov dword [esp + 0x68], eax
mov ecx, dword [ecx + 8]
mov dword [esp + 0x6c], ecx
mov ecx, dword [esi + 0x154]
cmp ecx, ebp
jne 0x418e96
mov dword [esp + 0x1c], ebp
jmp 0x418ea5
mov eax, dword [esi + 0x158]
sub eax, ecx
sar eax, 2
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x14], ebp
cmp eax, ebp
jle 0x418e3c
mov edx, dword [esi + 0x154]
mov edi, dword [edx + ebp*4]
add edi, 0xf8
je 0x41926c
mov ecx, edi
call fcn.004162d0
mov dword [esp + 0x18], eax
mov eax, dword [edi + 0x18]
mov edi, dword [edi + 0x1c]
mov dword [esp + 0x10], eax
mov eax, 0x55555556
imul edi
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
cmp edx, 0x40
mov dword [esp + 0x3c], edx
jle 0x418ff2
mov edx, dword [esi + 0x154]
mov eax, dword [edx + ebp*4]
mov ecx, dword [eax + 0x120]
test ecx, ecx
je 0x418f37
add ecx, 0x64
add eax, 0x38
push eax
mov edx, dword [ecx]
mov dword [esp + 0x5c], edx
mov edx, dword [ecx + 4]
mov dword [esp + 0x60], edx
lea edx, [esp + 0x98]
mov ecx, dword [ecx + 8]
push edx
mov dword [esp + 0x68], ecx
lea ecx, [esp + 0x60]
call fcn.004147d0
jmp 0x418f49
push 0
push 0
push 0
lea ecx, [esp + 0xb8]
call fcn.00419d00
mov ecx, dword [eax]
mov dword [esp + 0x7c], ecx
mov ecx, dword [esi + 0x154]
mov edx, dword [eax + 4]
mov dword [esp + 0x80], edx
mov eax, dword [eax + 8]
mov dword [esp + 0x84], eax
mov eax, dword [ecx + ebp*4]
mov ecx, dword [eax + 0x120]
test ecx, ecx
je 0x418fa4
add ecx, 0x58
add eax, 0x38
push eax
mov edx, dword [ecx]
mov dword [esp + 0x50], edx
mov edx, dword [ecx + 4]
mov dword [esp + 0x54], edx
lea edx, [esp + 0xa4]
mov ecx, dword [ecx + 8]
push edx
mov dword [esp + 0x5c], ecx
lea ecx, [esp + 0x54]
call fcn.004147d0
jmp 0x418fb6
push 0
push 0
push 0
lea ecx, [esp + 0xc4]
call fcn.00419d00
mov ecx, dword [eax]
mov edi, dword [esp + 0xcc]
mov dword [esp + 0x70], ecx
lea ecx, [esp + 0x7c]
mov edx, dword [eax + 4]
push ecx
mov dword [esp + 0x78], edx
lea edx, [esp + 0x74]
mov eax, dword [eax + 8]
push edx
push ebx
push edi
mov dword [esp + 0x88], eax
call fcn.0041aaf0
add esp, 0x10
test al, al
je 0x41926c
jmp 0x418ff9
mov edi, dword [esp + 0xcc]
mov al, byte [0x596d28]
test al, 1
jne 0x41901a
mov dl, al
push 0x4194e0
or dl, 1
mov byte [0x596d28], dl
call fcn.00476928
add esp, 4
mov eax, dword [esi + 0x154]
mov ecx, dword [eax + ebp*4]
add ecx, 0x38
push ecx
push 0
push 0x596ce8
call fcn.004440b3
mov al, byte [0x59a47c]
test al, 1
jne 0x419054
mov dl, al
push fcn.0041a480
or dl, 1
mov byte [0x59a47c], dl
call fcn.00476928
add esp, 4
fld dword [0x596d08]
fmul dword [edi + 8]
fld dword [0x596ce8]
fmul dword [edi]
faddp st(1)
fld dword [0x596cf8]
fmul dword [edi + 4]
faddp st(1)
fadd dword [0x596d18]
fstp dword [0x59a480]
fld dword [0x596d0c]
fmul dword [edi + 8]
fld dword [0x596cfc]
fmul dword [edi + 4]
mov edx, dword [0x59a480]
mov dword [esp + 0x20], edx
mov dword [esp + 0x40], edx
faddp st(1)
fld dword [0x596cec]
fmul dword [edi]
faddp st(1)
fadd dword [0x596d1c]
fstp dword [0x59a484]
fld dword [0x596d10]
fmul dword [edi + 8]
fld dword [0x596d00]
fmul dword [edi + 4]
mov eax, dword [0x59a484]
mov dword [esp + 0x24], eax
mov dword [esp + 0x44], eax
faddp st(1)
fld dword [0x596cf0]
fmul dword [edi]
mov al, byte [0x59a47c]
mov dword [0x596d18], 0
test al, 1
faddp st(1)
mov dword [0x596d1c], 0
fadd dword [0x596d20]
mov dword [0x596d20], 0
fstp dword [0x59a488]
mov ecx, dword [0x59a488]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x48], ecx
jne 0x41913a
mov dl, al
push fcn.0041a480
or dl, 1
mov byte [0x59a47c], dl
call fcn.00476928
add esp, 4
fld dword [0x596d08]
fmul dword [ebx + 8]
fld dword [0x596ce8]
fmul dword [ebx]
mov dword [esp + 0x38], 0
faddp st(1)
fld dword [0x596cf8]
fmul dword [ebx + 4]
faddp st(1)
fadd dword [0x596d18]
fstp dword [0x59a480]
fld dword [0x596d0c]
fmul dword [ebx + 8]
fld dword [0x596cfc]
fmul dword [ebx + 4]
mov edx, dword [0x59a480]
mov dword [esp + 0x2c], edx
mov dword [esp + 0x64], edx
faddp st(1)
fld dword [0x596cec]
fmul dword [ebx]
faddp st(1)
fadd dword [0x596d1c]
fstp dword [0x59a484]
fld dword [0x596d10]
fmul dword [ebx + 8]
fld dword [0x596d00]
fmul dword [ebx + 4]
mov eax, dword [0x59a484]
mov dword [esp + 0x30], eax
mov dword [esp + 0x68], eax
faddp st(1)
fld dword [0x596cf0]
fmul dword [ebx]
mov eax, dword [esp + 0x3c]
test eax, eax
faddp st(1)
fadd dword [0x596d20]
fstp dword [0x59a488]
mov ecx, dword [0x59a488]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x6c], ecx
jle 0x41926c
mov edx, dword [esp + 0x10]
lea eax, [edx + 4]
mov dword [esp + 0x10], eax
jmp 0x419202
mov eax, dword [esp + 0x10]
xor ebp, ebp
xor edi, edi
mov bp, word [eax]
mov di, word [eax - 4]
xor ebx, ebx
mov ecx, ebp
mov bx, word [eax - 2]
mov eax, dword [esp + 0x18]
shl ecx, 5
add ecx, eax
mov edx, ebx
push ecx
mov ecx, edi
shl edx, 5
add edx, eax
shl ecx, 5
push edx
add ecx, eax
lea edx, [esp + 0x6c]
push ecx
lea eax, [esp + 0x4c]
push edx
push eax
call fcn.0041b670
add esp, 0x14
test al, al
jne 0x41928d
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x3c]
inc eax
add edx, 6
cmp eax, ecx
mov dword [esp + 0x38], eax
mov dword [esp + 0x10], edx
jl 0x4191fe
mov ebx, dword [esp + 0xd0]
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
inc ebp
cmp ebp, eax
mov dword [esp + 0x14], ebp
jl 0x418eb1
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0xb4
ret 0x14
mov eax, dword [esp + 0x18]
lea edx, [esp + 0x90]
shl ebp, 5
shl edi, 5
lea ecx, [eax + ebp]
lea ebp, [edi + eax]
mov edi, dword [esp + 0xd4]
shl ebx, 5
add ebx, eax
push edi
push edx
lea eax, [esp + 0x94]
lea edx, [esp + 0x90]
push eax
push edx
push ecx
mov dword [esp + 0x2c], ecx
push ebx
lea eax, [esp + 0x7c]
push ebp
lea ecx, [esp + 0x5c]
push eax
push ecx
call fcn.0041b290
add esp, 0x24
test edi, edi
je 0x4193a4
mov edx, dword [esi + 0x154]
mov eax, dword [esp + 0x14]
mov edi, dword [edx + eax*4]
mov al, byte [0x59a540]
add edi, 0x38
test al, 1
jne 0x419314
mov dl, al
push fcn.0041a480
or dl, 1
mov byte [0x59a540], dl
call fcn.00476928
add esp, 4
mov eax, dword [esp + 0xd4]
mov ecx, dword [eax + 8]
mov edx, dword [eax + 4]
mov eax, dword [eax]
push ecx
push edx
push eax
mov ecx, 0x59a550
call fcn.00411f50
fld dword [0x59a558]
fmul dword [edi + 0x20]
fld dword [0x59a554]
fmul dword [edi + 0x10]
mov eax, dword [esp + 0xd4]
faddp st(1)
fld dword [0x59a550]
fmul dword [edi]
faddp st(1)
fadd dword [edi + 0x30]
fstp dword [eax]
fld dword [0x59a558]
fmul dword [edi + 0x24]
fld dword [0x59a554]
fmul dword [edi + 0x14]
faddp st(1)
fld dword [0x59a550]
fmul dword [edi + 4]
faddp st(1)
fadd dword [edi + 0x34]
fstp dword [eax + 4]
fld dword [0x59a558]
fmul dword [edi + 0x28]
fld dword [0x59a554]
fmul dword [edi + 0x18]
faddp st(1)
fld dword [0x59a550]
fmul dword [edi + 8]
faddp st(1)
fadd dword [edi + 0x38]
fstp dword [eax + 8]
mov edi, dword [esp + 0xd8]
test edi, edi
je 0x4194c9
mov al, byte [0x59a57c]
test al, 1
jne 0x4193d4
mov dl, al
push fcn.0041a480
or dl, 1
mov byte [0x59a57c], dl
call fcn.00476928
add esp, 4
mov eax, dword [esp + 0x18]
fld dword [eax]
fsub dword [ebx]
fstp dword [0x59a580]
fld dword [eax + 4]
fsub dword [ebx + 4]
mov ecx, dword [0x59a580]
mov dword [esp + 0x4c], ecx
fstp dword [0x59a584]
fld dword [eax + 8]
fsub dword [ebx + 8]
mov edx, dword [0x59a584]
mov dword [esp + 0x50], edx
fstp dword [0x59a588]
mov eax, dword [0x59a588]
mov dword [esp + 0x54], eax
mov al, byte [0x59a57c]
test al, 1
jne 0x419438
mov dl, al
push fcn.0041a480
or dl, 1
mov byte [0x59a57c], dl
call fcn.00476928
add esp, 4
fld dword [ebx]
fsub dword [ebp]
fstp dword [0x59a580]
fld dword [ebx + 4]
fsub dword [ebp + 4]
mov ecx, dword [0x59a580]
mov dword [esp + 0x58], ecx
lea ecx, [esp + 0x4c]
push ecx
mov ecx, edi
fstp dword [0x59a584]
fld dword [ebx + 8]
fsub dword [ebp + 8]
mov edx, dword [0x59a584]
mov dword [esp + 0x60], edx
lea edx, [esp + 0x5c]
push edx
fstp dword [0x59a588]
mov eax, dword [0x59a588]
mov dword [esp + 0x68], eax
call fcn.00419cc0
mov ecx, edi
call fcn.00419c70
mov eax, dword [esi + 0x154]
mov ecx, dword [esp + 0x14]
mov edx, dword [eax + ecx*4]
add edx, 0x38
push edx
push 0
push 0x596ce8
call fcn.004440b3
push 0
push 0
push 0
mov ecx, 0x596ce8
call fcn.00419fd0
push 0x596ce8
mov ecx, edi
call fcn.00411f90
mov eax, dword [esp + 0x14]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xb4
ret 0x14