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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x588e94
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xe0
push ebx
push esi
push edi
mov edi, ecx
cmp dword [edi + 0x13c], 0xd
mov dword [esp + 0x28], edi
je 0x43b52b
mov esi, dword [ebp + 0xc]
test esi, esi
je 0x43ab5f
mov eax, dword [edi + 0x174]
mov edx, dword [eax + 0x20]
lea ecx, [eax + 0x24]
add eax, 0x20
cmp edx, dword [ecx]
jge 0x43ab13
mov eax, ecx
mov eax, dword [eax]
mov edx, dword [edi + 8]
lea ecx, [edi + 8]
mov dword [esp + 0x20], eax
mov eax, dword [edx + 0xc]
call eax
fild dword [esp + 0x20]
sub esp, 0xc
fmul qword [0x5ec650]
fstp dword [esp + 0x2c]
fld dword [esp + 0x2c]
fadd st(0), st(0)
fstp dword [esp + 0x2c]
fld dword [esp + 0x2c]
fst dword [esp + 8]
fstp dword [esp + 4]
fldz
fstp dword [esp]
push eax
push esi
call fcn.004800e0
test al, al
je 0x43b52b
mov edx, dword [edi + 8]
mov eax, dword [edx + 0xc]
lea ecx, [edi + 8]
mov dword [esp + 0x50], ecx
call eax
fld dword [eax + 4]
fstp dword [esp + 0x48]
mov dword [esp + 0x44], 0x5cf904
fld dword [eax + 8]
fstp dword [esp + 0x4c]
mov dword [esp + 0xf4], 0
cmp byte [edi + 0x18c], 0
mov ebx, dword [ebp + 8]
je 0x43abd6
mov edx, dword [ebx]
mov eax, dword [edx + 0x50]
push 1
mov ecx, ebx
call eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x48]
push 0x44ffffff
mov ecx, ebx
call eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x88]
push 1
mov ecx, ebx
call eax
fld dword [edi + 0x194]
fstp dword [esp + 0x48]
fld dword [edi + 0x198]
fstp dword [esp + 0x4c]
lea ecx, [esp + 0x88]
push ecx
push edi
call fcn.00439340
mov byte [esp + 0xf4], 1
mov ecx, dword [edi + 0x1a0]
xor edx, edx
cmp ecx, edx
jne 0x43abfe
mov dword [esp + 0x40], edx
jmp 0x43ac0d
mov eax, dword [edi + 0x1a4]
sub eax, ecx
sar eax, 2
mov dword [esp + 0x40], eax
cmp esi, edx
mov eax, dword [edi + 0x13c]
mov dword [esp + 0x64], eax
jne 0x43ac1f
fld1
jmp 0x43ac26
call fcn.0047fad0
xor edx, edx
cmp dword [esp + 0x40], edx
fstp dword [esp + 0x2c]
mov ecx, dword [edi + 0x13c]
mov eax, dword [edi + 0x174]
fld dword [eax + ecx*4 + 0x2e4]
mov dword [esp + 0x3c], edx
fstp dword [esp + 0x20]
fld dword [edi + 0x178]
fmul dword [esp + 0x2c]
mov dword [esp + 0x2c], edx
fmul dword [edi + 0x188]
fmul dword [esp + 0x20]
fstp dword [esp + 0x20]
jle 0x43b4b8
jmp 0x43ac70
mov esi, dword [esp + 0x28]
mov ecx, dword [esi + 0x1a0]
test ecx, ecx
je 0x43ac8f
mov eax, dword [esi + 0x1a4]
sub eax, ecx
sar eax, 2
cmp dword [esp + 0x3c], eax
jb 0x43ac95
call dword [0x58e3e0]
mov ecx, dword [esi + 0x1a0]
mov edx, dword [esp + 0x3c]
mov edi, dword [ecx + edx*4]
mov eax, dword [edi + 0x28]
cmp byte [eax + 0x74], 0
mov dword [esp + 0x24], edi
je 0x43ae0c
mov ecx, dword [esi + 0x174]
cmp byte [ecx + 0x124], 0
je 0x43ae0c
lea edx, [esp + 0xd0]
push edx
mov ecx, edi
call fcn.00435950
mov byte [esp + 0xf4], 2
lea ecx, [esp + 0x94]
push ecx
mov ecx, eax
lea edx, [esp + 0x48]
call fcn.0040a090
mov byte [esp + 0xf4], 3
fld dword [eax + 4]
fsub dword [esp + 0x8c]
push ecx
fstp dword [esp + 0x18]
fld dword [eax + 8]
fsub dword [esp + 0x94]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fld dword [esp + 0x18]
fmul st(0), st(0)
fld st(1)
fmulp st(2)
faddp st(1)
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fstp dword [esp]
call fcn.00401df0
fstp dword [esp + 0x14]
add esp, 4
mov byte [esp + 0xf4], 2
mov eax, 0x5cf904
mov dword [esp + 0x94], eax
mov byte [esp + 0xf4], 1
fld dword [esp + 0x10]
fcom qword [0x5eca38]
mov dword [esp + 0xd0], eax
fnstsw ax
test ah, 5
jp 0x43adce
fsub qword [0x5eca10]
fdiv qword [0x5ecc88]
fld qword [0x5dffe8]
fld st(0)
fsubrp st(2)
fxch st(1)
fstp dword [esp + 0x14]
fld1
fstp dword [esp + 0x10]
fld dword [esp + 0x14]
fcompp
fnstsw ax
test ah, 0x41
lea eax, [esp + 0x10]
je 0x43ada7
lea eax, [esp + 0x14]
fld dword [eax]
lea ecx, [esi + 0x184]
fstp dword [esp + 0x14]
fld dword [ecx]
fld dword [esp + 0x14]
fcompp
fnstsw ax
test ah, 0x41
lea eax, [esp + 0x14]
je 0x43adc8
mov eax, ecx
fld dword [eax]
fstp dword [ecx]
jmp 0x43add0
fstp st(0)
fld dword [esi + 0x184]
fcomp qword [0x5ec760]
fnstsw ax
test ah, 5
jp 0x43ae0c
cmp dword [esi + 0x144], 4
fldz
fstp dword [esi + 0x184]
jne 0x43b4a3
mov edi, dword [esp + 0x28]
mov ecx, dword [edi + 0x148]
call fcn.0043a640
jmp 0x43b4a3
cmp byte [esi + 0x680], 0
jne 0x43ae1e
mov edx, dword [edi + 0x28]
cmp byte [edx + 0x6c], 0
jmp 0x43ae34
mov edi, dword [edi + 0x28]
mov eax, dword [edi + 0x68]
test eax, eax
je 0x43b4a3
mov ecx, dword [esp + 0x64]
cmp byte [eax + ecx], 0
je 0x43b4a3
fldz
mov edi, dword [esp + 0x24]
mov edx, dword [edi + 4]
fst dword [esp + 0x34]
mov esi, 0x5cf904
fstp dword [esp + 0x38]
mov dword [esp + 0x54], edx
mov dword [esp + 0x30], esi
mov byte [esp + 0xf4], 4
lea eax, [esp + 0xb8]
push eax
mov ecx, edi
call fcn.00435950
mov byte [esp + 0xf4], 5
push ecx
mov ecx, dword [esp + 0x2c]
fld dword [ecx + 0x178]
lea edx, [esp + 0x80]
fstp dword [esp]
push edx
mov ecx, eax
call fcn.0040a170
mov byte [esp + 0xf4], 7
mov eax, dword [edi + 0x28]
cmp byte [eax + 0x8c], 0
mov dword [esp + 0xb8], esi
je 0x43af2d
mov ecx, dword [esp + 0x50]
mov edx, dword [ecx]
mov eax, dword [edx + 0x1c]
call eax
push ecx
lea ecx, [esp + 0xb0]
fstp dword [esp]
push ecx
lea esi, [esp + 0x84]
call fcn.00409270
add esp, 8
mov byte [esp + 0xf4], 8
lea edx, [esp + 0xa0]
push edx
mov ecx, eax
lea edx, [esp + 0x48]
call fcn.0040a090
mov byte [esp + 0xf4], 9
fld dword [eax + 4]
fstp dword [esp + 0x34]
fld dword [eax + 8]
fstp dword [esp + 0x38]
mov byte [esp + 0xf4], 8
mov eax, 0x5cf904
mov dword [esp + 0xa0], eax
mov byte [esp + 0xf4], 7
mov dword [esp + 0xac], eax
mov esi, eax
jmp 0x43af6a
lea eax, [esp + 0xc4]
push eax
lea ecx, [esp + 0x80]
lea edx, [esp + 0x48]
call fcn.0040a090
mov byte [esp + 0xf4], 0xa
fld dword [eax + 4]
fstp dword [esp + 0x34]
fld dword [eax + 8]
fstp dword [esp + 0x38]
mov byte [esp + 0xf4], 7
mov dword [esp + 0xc4], esi
mov ecx, dword [ebp + 0xc]
test ecx, ecx
je 0x43afb0
fldz
push ecx
fstp dword [esp]
lea edx, [esp + 0x34]
push edx
lea eax, [esp + 0xe4]
push eax
call fcn.0047fbd0
mov byte [esp + 0xf4], 0xb
fld dword [eax + 4]
fstp dword [esp + 0x34]
fld dword [eax + 8]
fstp dword [esp + 0x38]
mov byte [esp + 0xf4], 7
mov dword [esp + 0xdc], esi
jmp 0x43afba
fld dword [esp + 0x38]
fchs
fstp dword [esp + 0x38]
fld dword [esp + 0x34]
mov edx, dword [ebx]
fadd dword [ebp + 0x10]
mov eax, dword [edx + 0x3c]
mov ecx, ebx
fstp dword [esp + 0x34]
fld dword [esp + 0x38]
fadd dword [ebp + 0x14]
fstp dword [esp + 0x38]
call eax
mov eax, dword [edi + 0x28]
cmp byte [eax + 0x74], 0
fld dword [eax + 0x70]
fstp dword [esp + 0x14]
je 0x43b016
fld1
mov ecx, dword [esp + 0x28]
add ecx, 0x184
fstp dword [esp + 0x10]
fld dword [ecx]
fcomp qword [0x5dffe8]
fnstsw ax
test ah, 0x41
jne 0x43b00c
lea ecx, [esp + 0x10]
fld dword [ecx]
fmul dword [esp + 0x14]
fstp dword [esp + 0x14]
fld1
fld dword [esp + 0x14]
fucom st(1)
fnstsw ax
fstp st(1)
test ah, 0x44
jnp 0x43b03c
mov edx, dword [ebx]
mov eax, dword [edx + 0x1c]
sub esp, 8
fst dword [esp + 4]
mov ecx, ebx
fstp dword [esp]
call eax
jmp 0x43b03e
fstp st(0)
mov ecx, dword [edi + 0x64]
xor esi, esi
cmp ecx, esi
jne 0x43b04d
mov dword [esp + 0x10], esi
jmp 0x43b059
mov eax, dword [edi + 0x68]
sub eax, ecx
sar eax, 2
mov dword [esp + 0x10], eax
cmp dword [esp + 0x10], esi
mov dword [esp + 0x14], esi
jle 0x43b10d
jmp 0x43b074
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0x64]
test ecx, ecx
je 0x43b08b
mov eax, dword [eax + 0x68]
sub eax, ecx
sar eax, 2
cmp esi, eax
jb 0x43b091
call dword [0x58e3e0]
mov ecx, dword [esp + 0x24]
mov edx, dword [ecx + 0x64]
mov eax, dword [esp + 0x28]
mov esi, dword [edx + esi*4]
mov eax, dword [eax + 0x13c]
mov edi, dword [esi + 4]
push eax
call fcn.00455340
test al, al
je 0x43b0f8
call fcn.00404bf0
mov edx, dword [0x619c48]
mov edi, eax
fld dword [edi + 0x30]
mov eax, dword [edx + 0x28]
mov ecx, 0x619c48
fstp qword [esp + 0x68]
call eax
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
mov edx, dword [esi]
mov eax, dword [edx + 4]
push ebx
fdivr qword [esp + 0x6c]
push ecx
mov ecx, esi
fmul dword [edi + 0x2c]
fadd dword [edi + 0x14]
fstp dword [esp + 0x24]
fld dword [esp + 0x24]
fstp dword [esp]
call eax
mov eax, dword [esp + 0x14]
add eax, 1
cmp eax, dword [esp + 0x10]
mov dword [esp + 0x14], eax
jl 0x43b070
mov ecx, dword [esp + 0x24]
mov edx, dword [ecx + 0x28]
cmp byte [edx + 0x74], 0
mov esi, dword [esp + 0x28]
je 0x43b135
mov edi, dword [esp + 0x2c]
mov ebx, esi
call fcn.0043a7a0
test al, al
mov ebx, dword [ebp + 8]
mov byte [esp + 0x1b], 1
jne 0x43b13a
mov byte [esp + 0x1b], 0
mov edi, dword [esp + 0x24]
mov eax, dword [edi + 0x28]
cmp byte [eax + 0x74], 0
je 0x43b171
cmp byte [esp + 0x1b], 0
je 0x43b16c
mov edx, dword [ebx]
mov eax, dword [edx + 0x50]
push 1
mov ecx, ebx
call eax
mov ecx, dword [esi + 0x174]
mov eax, dword [ecx + 0x5c]
mov edx, dword [ebx]
push eax
mov eax, dword [edx + 0x48]
mov ecx, ebx
call eax
add dword [esp + 0x2c], 1
mov edx, dword [ebx]
fld dword [esp + 0x20]
mov eax, dword [edx + 0x1c]
sub esp, 8
fst dword [esp + 4]
mov ecx, ebx
fstp dword [esp]
call eax
mov ecx, dword [edi + 0x28]
cmp byte [ecx + 0x8c], 0
je 0x43b1b2
mov ecx, dword [esp + 0x50]
mov edx, dword [ecx]
mov edi, dword [ebx]
mov eax, dword [edx + 0x1c]
add edi, 0x24
call eax
mov edx, dword [edi]
push ecx
mov ecx, ebx
fstp dword [esp]
call edx
mov edi, dword [esp + 0x24]
mov eax, dword [edi + 0x28]
fld dword [eax + 0x90]
fstp dword [esp + 0x1c]
fldz
fcomp dword [esp + 0x1c]
fnstsw ax
test ah, 5
jp 0x43b1d0
mov cl, 1
jmp 0x43b1d2
xor cl, cl
mov eax, dword [esi + 0x13c]
add eax, 0xfffffffe
cmp eax, 0xa
ja case.0x43b1eb.4
movzx edx, byte [eax + 0x43b54c]
jmp dword [edx*4 + 0x43b544]
test cl, cl
je case.0x43b1eb.4
mov eax, dword [esi + 0x34]
test eax, eax
je 0x43b21b
push eax
call fcn.0057590a
fld dword [eax]
fstp dword [esi + 0x104]
add esp, 4
fld dword [eax + 4]
fstp dword [esi + 0x108]
lea eax, [esp + 0x70]
lea edi, [esi + 0x100]
push eax
call fcn.0040a280
mov byte [esp + 0xf4], 0xc
fld dword [0x5ec850]
mov eax, dword [esi + 0x34]
fstp dword [esp + 0x14]
test eax, eax
je 0x43b25e
push eax
call fcn.0057590a
fld dword [eax]
fstp dword [esi + 0x104]
add esp, 4
fld dword [eax + 4]
fstp dword [esi + 0x108]
fld dword [edi + 8]
push ecx
fld dword [edi + 4]
fmul st(0), st(0)
fld st(1)
fmulp st(2)
faddp st(1)
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fstp dword [esp]
call fcn.00401df0
mov ecx, dword [esp + 0x28]
fstp dword [esp + 0x20]
fldz
add esp, 4
fcom dword [ecx + 0x54]
fnstsw ax
test ah, 5
jp 0x43b299
fld dword [ecx + 0x54]
jmp 0x43b2a2
mov edx, dword [ecx + 0x28]
fld dword [edx + 0x90]
fstp dword [esp + 0x10]
fld dword [esp + 0x1c]
fdiv dword [esp + 0x10]
fstp dword [esp + 0x10]
fld1
fld dword [esp + 0x10]
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x43b2cd
fstp st(0)
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
jmp 0x43b2cf
fstp st(1)
fxch st(1)
fcom dword [ecx + 0x54]
fnstsw ax
test ah, 5
jp 0x43b2e0
fld dword [ecx + 0x58]
jmp 0x43b2e9
mov eax, dword [ecx + 0x28]
fld dword [eax + 0x94]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fld qword [0x5dffe8]
fsub st(1), st(0)
fld st(3)
fmulp st(2)
fadd st(1), st(0)
fxch st(1)
fstp dword [esp + 0x68]
fxch st(1)
fcom dword [ecx + 0x54]
fnstsw ax
test ah, 5
jp 0x43b316
fld dword [ecx + 0x5c]
jmp 0x43b31f
mov ecx, dword [ecx + 0x28]
fld dword [ecx + 0x98]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fsub st(2)
fmulp st(3)
fxch st(2)
faddp st(1)
fstp dword [esp + 0x10]
fld dword [esp + 0x74]
fucom st(1)
fnstsw ax
fstp st(1)
test ah, 0x44
jnp 0x43b360
fdivr dword [esp + 0x78]
push ecx
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fstp dword [esp]
call fcn.0040b1f0
fstp dword [esp + 0x18]
add esp, 4
jmp 0x43b362
fstp st(0)
mov edx, dword [ebx]
fld dword [esp + 0x14]
mov eax, dword [edx + 0x24]
fchs
push ecx
mov ecx, ebx
fstp dword [esp]
call eax
fld dword [esp + 0x10]
mov edx, dword [ebx]
mov eax, dword [edx + 0x1c]
sub esp, 8
fstp dword [esp + 4]
mov ecx, ebx
fld dword [esp + 0x70]
fstp dword [esp]
call eax
mov edx, dword [ebx]
fld dword [esp + 0x14]
mov eax, dword [edx + 0x24]
push ecx
mov ecx, ebx
fstp dword [esp]
call eax
mov byte [esp + 0xf4], 7
mov edi, dword [esp + 0x24]
mov dword [esp + 0x70], 0x5cf904
fld dword [esp + 0x38]
mov edx, dword [ebx]
mov eax, dword [edx + 0x28]
sub esp, 8
fstp dword [esp + 4]
mov ecx, ebx
fld dword [esp + 0x3c]
fstp dword [esp]
call eax
mov edx, dword [ebx]
mov eax, dword [esp + 0x54]
mov edx, dword [edx + 0xc]
push eax
mov ecx, ebx
call edx
mov eax, dword [edi + 0x28]
cmp byte [eax + 0x74], 0
je 0x43b3f9
cmp byte [esp + 0x1b], 0
je 0x43b3f9
mov edx, dword [ebx]
mov eax, dword [edx + 0x50]
push 0
mov ecx, ebx
call eax
mov ecx, dword [edi + 0x28]
cmp byte [ecx + 0x74], 0
je 0x43b47d
cmp byte [esp + 0x1b], 0
jne 0x43b47d
fld dword [esp + 0x20]
push ecx
lea edx, [esp + 0x5c]
fstp dword [esp]
push edx
lea ecx, [edi + 0x14]
call fcn.0040a170
mov byte [esp + 0xf4], 0xd
fld dword [esp + 0x60]
mov eax, dword [ebx]
fchs
mov edx, dword [eax + 0x3c]
fstp dword [esp + 0x60]
mov ecx, ebx
call edx
fld dword [esp + 0x60]
mov eax, dword [ebx]
mov edx, dword [eax + 0x28]
sub esp, 8
fstp dword [esp + 4]
mov ecx, ebx
fld dword [esp + 0x64]
fstp dword [esp]
call edx
mov eax, dword [edi + 0x20]
mov edx, dword [ebx]
push eax
mov eax, dword [edx + 0xc]
mov ecx, ebx
call eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x40]
mov ecx, ebx
call eax
mov byte [esp + 0xf4], 7
mov esi, 0x5cf904
mov dword [esp + 0x58], esi
jmp 0x43b482
mov esi, 0x5cf904
mov edx, dword [ebx]
mov eax, dword [edx + 0x40]
mov ecx, ebx
call eax
mov byte [esp + 0xf4], 4
mov dword [esp + 0x7c], esi
mov byte [esp + 0xf4], 1
mov dword [esp + 0x30], esi
mov eax, dword [esp + 0x3c]
add eax, 1
cmp eax, dword [esp + 0x40]
mov dword [esp + 0x3c], eax
jl 0x43ac70
mov edx, dword [ebx]
mov eax, dword [edx + 0x50]
push 0
mov ecx, ebx
call eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x88]
push 0
mov ecx, ebx
call eax
mov esi, dword [esp + 0x28]
cmp byte [esi + 0x18c], 0
je 0x43b508
fld dword [ebp + 0x14]
mov ecx, dword [ebp + 0xc]
sub esp, 8
fstp dword [esp + 4]
mov byte [esi + 0x18c], 0
fld dword [ebp + 0x10]
fstp dword [esp]
push ecx
push ebx
mov ecx, esi
call fcn.0043aac0
mov byte [esi + 0x18c], 1
mov byte [esp + 0xf4], 0
mov eax, 0x5cf904
mov dword [esp + 0x88], eax
mov dword [esp + 0xf4], 0xffffffff
mov dword [esp + 0x44], eax
mov ecx, dword [esp + 0xec]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 0x10