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

Disassembly:
sub esp, 0xa0
push ebx
push ebp
push esi
mov esi, ecx
xor ecx, ecx
push edi
mov cl, byte [esi + 0x15]
mov edx, dword [esi + 0x18]
xor eax, eax
mov edx, dword [edx + ecx*4]
mov dword [esp + 0x3c], eax
mov byte [esp + 0x13], al
mov eax, dword [esi + 0x20]
mov cl, byte [edx + 9]
mov edi, ecx
and edi, 0xff
fld dword [esi + 0x24]
lea ebp, [eax + edi*4]
mov eax, dword [eax + edi*4]
mov ebx, dword [eax]
mov dword [esp + 0x2c], ebx
mov ebx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0x30], ebx
mov bl, byte [edx + 8]
mov dword [esp + 0x34], eax
mov eax, dword [esi + 0x28]
sub cl, bl
mov dword [esp + 0x5c], eax
mov eax, dword [esi + 0x2c]
mov dword [esp + 0x60], eax
mov eax, 0x32
and ecx, 0xff
cdq
inc ecx
idiv ecx
mov cl, 0x32
sub cl, dl
mov byte [esp + 0x38], cl
mov ebx, dword [esp + 0x38]
and ebx, 0xff
jle 0x43c951
mov al, byte [esp + 0x13]
test al, al
jne 0x43cb03
mov eax, dword [esp + 0xb4]
lea ecx, [esp + 0x70]
fld dword [eax]
fsub dword [esp + 0x2c]
fstp dword [esp + 0x40]
fld dword [eax + 4]
fsub dword [esp + 0x30]
fstp dword [esp + 0x44]
fld dword [eax + 8]
fsub dword [esp + 0x34]
fstp dword [esp + 0x48]
fsub dword [esp + 0x2c]
fstp dword [esp + 0x4c]
fld dword [esp + 0x5c]
fsub dword [esp + 0x30]
fstp dword [esp + 0x50]
fld dword [esp + 0x60]
fsub dword [esp + 0x34]
fstp dword [esp + 0x54]
mov edx, dword [ebp]
mov eax, dword [edx + 0x10]
push eax
push ecx
call fcn.006346c0
lea edx, [esp + 0x78]
lea eax, [esp + 0x48]
push edx
push 1
lea ecx, [esp + 0x24]
push eax
push ecx
call fcn.006237b0
lea edx, [esp + 0x88]
lea eax, [esp + 0x64]
push edx
push 1
lea ecx, [esp + 0x40]
push eax
push ecx
call fcn.006237b0
fld dword [esp + 0x40]
fmul dword [esp + 0x40]
fld dword [esp + 0x44]
fmul dword [esp + 0x44]
add esp, 0x24
faddp st(1)
fld dword [esp + 0x18]
fmul dword [esp + 0x18]
faddp st(1)
fstp dword [esp]
call fcn.00404020
fcom dword [0x6d035c]
add esp, 4
fnstsw ax
test ah, 0x44
jnp 0x43c784
fdivr dword [0x6d0348]
fld dword [esp + 0x14]
fmul st(1)
fstp dword [esp + 0x14]
fld dword [esp + 0x18]
fmul st(1)
fstp dword [esp + 0x18]
fld dword [esp + 0x1c]
fmul st(1)
fstp dword [esp + 0x1c]
fstp st(0)
fld dword [esp + 0x28]
fmul dword [esp + 0x28]
fld dword [esp + 0x24]
fmul dword [esp + 0x24]
push ecx
faddp st(1)
fld dword [esp + 0x24]
fmul dword [esp + 0x24]
faddp st(1)
fstp dword [esp]
call fcn.00404020
fcom dword [0x6d035c]
add esp, 4
fnstsw ax
test ah, 0x44
jnp 0x43c7df
fdivr dword [0x6d0348]
fld dword [esp + 0x20]
fmul st(1)
fstp dword [esp + 0x20]
fld dword [esp + 0x24]
fmul st(1)
fstp dword [esp + 0x24]
fld dword [esp + 0x28]
fmul st(1)
fstp dword [esp + 0x28]
fstp st(0)
fld dword [esp + 0x1c]
fmul dword [esp + 0x28]
fld dword [esp + 0x18]
fmul dword [esp + 0x24]
faddp st(1)
fld dword [esp + 0x20]
fmul dword [esp + 0x14]
faddp st(1)
fst dword [esp + 0x38]
fcomp dword [0x6d3160]
fnstsw ax
test ah, 5
jp 0x43c8ca
fld dword [esp + 0x38]
fcomp dword [0x6d315c]
fnstsw ax
and eax, 0x4100
jne 0x43c8ca
fld dword [esp + 0x1c]
fmul dword [esp + 0x24]
fld dword [esp + 0x18]
fmul dword [esp + 0x28]
mov edx, dword [esi + 0xc]
mov ecx, dword [esi + 0x20]
fsubp st(1)
push 1
fstp dword [esp + 0x68]
fld dword [esp + 0x2c]
fmul dword [esp + 0x18]
fld dword [esp + 0x20]
fmul dword [esp + 0x24]
fsubp st(1)
fstp dword [esp + 0x6c]
fld dword [esp + 0x1c]
fmul dword [esp + 0x24]
fld dword [esp + 0x28]
fmul dword [esp + 0x18]
fsubp st(1)
fstp dword [esp + 0x70]
mov eax, dword [edx + 0x20]
mov edx, dword [ecx + edi*4]
fld dword [esp + 0x3c]
mov ecx, dword [edx + 0xc]
imul ecx, dword [eax + 0x24]
lea eax, [ecx + eax + 0x4c]
lea ebp, [eax + 8]
call fcn.006b1770
fmul dword [0x6d3150]
push ecx
lea edx, [esp + 0x6c]
fstp dword [esp]
push edx
push ebp
call fcn.006209d0
add esp, 0x10
mov ecx, esi
push ebp
push edi
call fcn.0043b650
mov ecx, eax
call fcn.0043b0b0
push edi
mov ecx, esi
call fcn.0043c220
push edi
mov ecx, esi
call fcn.0043c090
jmp 0x43c8ea
cmp dword [esp + 0x3c], 5
jle 0x43c8ea
mov ecx, dword [esi + 0x18]
xor eax, eax
mov al, byte [esi + 0x15]
mov edx, dword [ecx + eax*4]
xor eax, eax
mov al, byte [edx + 9]
cmp edi, eax
jne 0x43c8ea
mov byte [esp + 0x13], 1
mov edx, dword [esi + 0x18]
xor ecx, ecx
mov cl, byte [esi + 0x15]
dec edi
mov eax, dword [edx + ecx*4]
xor ecx, ecx
mov cl, byte [eax + 8]
cmp edi, ecx
jge 0x43c906
xor edx, edx
mov dl, byte [eax + 9]
mov edi, edx
mov eax, dword [esi + 0x20]
fld dword [esi + 0x24]
lea ebp, [eax + edi*4]
mov eax, dword [eax + edi*4]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esi + 0x28]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x30], edx
mov edx, dword [esi + 0x2c]
inc eax
cmp eax, ebx
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x60], edx
mov dword [esp + 0x3c], eax
jl 0x43c696
mov al, byte [esp + 0x13]
test al, al
jne 0x43cb03
mov ecx, dword [esi + 0x18]
xor eax, eax
mov al, byte [esi + 0x15]
mov esi, dword [esi + 0x20]
mov edx, dword [ecx + eax*4]
lea ecx, [ecx + eax*4]
xor eax, eax
mov al, byte [edx + 9]
mov eax, dword [esi + eax*4]
fld dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x30], edx
xor edx, edx
fld dword [eax]
fsub st(1)
fstp dword [esp + 0x40]
fld dword [eax + 4]
fsub dword [esp + 0x30]
fstp dword [esp + 0x44]
fld dword [eax + 8]
fsub dword [esp + 0x34]
fstp dword [esp + 0x48]
fxch st(1)
fsub st(1)
fstp dword [esp + 0x4c]
fstp st(0)
fld dword [esp + 0x5c]
fsub dword [esp + 0x30]
fstp dword [esp + 0x50]
fld dword [esp + 0x60]
fsub dword [esp + 0x34]
fstp dword [esp + 0x54]
mov ecx, dword [ecx]
mov dl, byte [ecx + 9]
mov eax, dword [esi + edx*4]
lea edx, [esp + 0x70]
mov ecx, dword [eax + 0x10]
push ecx
push edx
call fcn.006346c0
lea eax, [esp + 0x78]
lea ecx, [esp + 0x48]
push eax
push 1
lea edx, [esp + 0x24]
push ecx
push edx
call fcn.006237b0
lea eax, [esp + 0x88]
lea ecx, [esp + 0x64]
push eax
push 1
lea edx, [esp + 0x40]
push ecx
push edx
call fcn.006237b0
fld dword [esp + 0x40]
fmul dword [esp + 0x40]
fld dword [esp + 0x44]
fmul dword [esp + 0x44]
add esp, 0x24
faddp st(1)
fld dword [esp + 0x18]
fmul dword [esp + 0x18]
faddp st(1)
fstp dword [esp]
call fcn.00404020
fcom dword [0x6d035c]
add esp, 4
fnstsw ax
test ah, 0x44
jnp 0x43ca63
fdivr dword [0x6d0348]
fld dword [esp + 0x14]
fmul st(1)
fstp dword [esp + 0x14]
fld dword [esp + 0x18]
fmul st(1)
fstp dword [esp + 0x18]
fld dword [esp + 0x1c]
fmul st(1)
fstp dword [esp + 0x1c]
fstp st(0)
fld dword [esp + 0x28]
fmul dword [esp + 0x28]
fld dword [esp + 0x24]
fmul dword [esp + 0x24]
push ecx
faddp st(1)
fld dword [esp + 0x24]
fmul dword [esp + 0x24]
faddp st(1)
fstp dword [esp]
call fcn.00404020
fcom dword [0x6d035c]
add esp, 4
fnstsw ax
test ah, 0x44
jnp 0x43caba
fdivr dword [0x6d0348]
fld dword [esp + 0x20]
fmul st(1)
fstp dword [esp + 0x20]
fld dword [esp + 0x24]
fmul st(1)
fstp dword [esp + 0x24]
fmul dword [esp + 0x28]
jmp 0x43cac0
fstp st(0)
fld dword [esp + 0x28]
fmul dword [esp + 0x1c]
fld dword [esp + 0x18]
fmul dword [esp + 0x24]
faddp st(1)
fld dword [esp + 0x20]
fmul dword [esp + 0x14]
faddp st(1)
fcom dword [0x6d3158]
fnstsw ax
test ah, 5
jp 0x43cb03
fcomp dword [0x6d3154]
fnstsw ax
and eax, 0x4100
jne 0x43cb05
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0xa0
ret 4
fstp st(0)
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 0xa0
ret 4