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

Disassembly:
push ecx
mov edx, dword [esp + 8]
push ebp
push esi
mov eax, dword [edx]
mov ecx, dword [edx + 0x10]
push edi
test byte [eax + 0x14], 8
je 0x438d9a
mov esi, dword [ecx + 4]
mov al, 0x80
and esi, 0xfffffff2
mov dword [ecx + 4], esi
mov cl, byte [edx + 0x14]
test cl, 2
je 0x438be8
test byte [edx + 0x14], al
jne 0x438be8
mov esi, dword [edx + 0x10]
mov eax, dword [edx + 0x5c]
mov dword [esp + 0xc], eax
mov cx, word [esi + 8]
mov al, byte [edx + 0x14]
test al, 0x44
je 0x438794
mov dword [esp + 0xc], 0
fld dword [edx + 0x58]
fcomp dword [esi + 0x1c]
fnstsw ax
test ah, 0x40
jne 0x4387c1
fld dword [esi + 0x10]
fcomp dword [0x47363c]
fnstsw ax
test ah, 0x40
je 0x4387b9
mov eax, dword [edx + 0x58]
mov dword [esi + 0x1c], eax
jmp 0x4387c1
mov dword [esp + 0xc], 0
cmp cx, 4
je 0x4387cd
cmp cx, 0x40
jne 0x4387e4
fld dword [0x47363c]
fcomp dword [esi + 0x14]
fnstsw ax
test ah, 0x40
je 0x4387e4
mov ecx, 8
jmp 0x4387ea
cmp cx, 8
jne 0x4387f1
mov eax, dword [esp + 0xc]
mov dword [esi + 0x28], eax
mov ebp, ecx
and ebp, 7
test bp, bp
je 0x43881e
fld dword [esp + 0xc]
fcomp dword [esi + 0x28]
fnstsw ax
test ah, 0x41
je 0x438817
fld dword [esi + 0x10]
fcomp dword [esp + 0xc]
fnstsw ax
test ah, 1
je 0x43881e
mov eax, dword [esp + 0xc]
mov dword [esi + 0x28], eax
mov edi, ecx
and edi, 0x70
test di, di
je 0x43884b
fld dword [esp + 0xc]
fcomp dword [esi + 0x28]
fnstsw ax
test ah, 1
jne 0x438844
fld dword [esi + 0x10]
fcomp dword [esp + 0xc]
fnstsw ax
test ah, 0x41
jne 0x43884b
mov eax, dword [esp + 0xc]
mov dword [esi + 0x28], eax
fld dword [esi + 0x10]
fcomp dword [esp + 0xc]
fnstsw ax
test ah, 1
je 0x438919
test di, di
je 0x43887b
cmp cx, 0x40
je 0x438945
fld dword [edx + 0x7c]
mov ecx, 0x40
fchs
jmp 0x4389ee
fld dword [esi + 0x14]
fld st(0)
fmulp st(1)
fld dword [esi + 0x28]
fsub dword [esi + 0x10]
fld st(1)
fmul dword [edx + 0x6c]
fmul dword [0x47b28c]
fld st(1)
fcompp
fnstsw ax
test ah, 0x41
jne 0x4388df
fstp st(0)
fstp st(0)
fld dword [esi + 0x14]
fcomp dword [edx + 0x60]
fnstsw ax
test ah, 1
je 0x4388b9
fld dword [edx + 0x68]
mov ecx, 1
jmp 0x4388f4
fld dword [esi + 0x14]
fcomp dword [edx + 0x60]
fnstsw ax
test ah, 0x41
jne 0x4388d2
fld dword [edx + 0x68]
mov ecx, 4
fchs
jmp 0x4388f4
fld dword [0x47363c]
mov ecx, 2
jmp 0x4388f4
fxch st(1)
fdiv st(1)
mov ecx, 4
fmul dword [0x47b28c]
fchs
fxch st(1)
fstp st(0)
test byte [esi + 4], 1
je 0x4389ee
cmp cx, 4
je 0x4389ee
fstp st(0)
fld dword [edx + 0x68]
mov ecx, 4
fchs
jmp 0x4389ee
fld dword [esi + 0x10]
fcomp dword [esp + 0xc]
fnstsw ax
test ah, 0x41
jne 0x4389e3
test bp, bp
je 0x43894d
cmp cx, 4
je 0x438945
fld dword [edx + 0x68]
mov ecx, 4
fchs
jmp 0x4389ee
fld dword [esi + 0x18]
jmp 0x4389ee
fld dword [esi + 0x14]
fld st(0)
fmulp st(1)
fld dword [esi + 0x10]
fsub dword [esi + 0x28]
fld st(1)
fmul dword [edx + 0x80]
fmul dword [0x47b28c]
fld st(1)
fcompp
fnstsw ax
test ah, 0x41
jne 0x4389b4
fstp st(0)
fstp st(0)
fld dword [esi + 0x14]
fcomp dword [edx + 0x70]
fnstsw ax
test ah, 1
je 0x43898e
fld dword [edx + 0x7c]
mov ecx, 0x10
jmp 0x4389c9
fld dword [esi + 0x14]
fcomp dword [edx + 0x70]
fnstsw ax
test ah, 0x41
jne 0x4389a7
fld dword [edx + 0x7c]
mov ecx, 0x40
fchs
jmp 0x4389c9
fld dword [0x47363c]
mov ecx, 0x20
jmp 0x4389c9
fxch st(1)
fdiv st(1)
mov ecx, 0x40
fmul dword [0x47b28c]
fchs
fxch st(1)
fstp st(0)
test byte [esi + 4], 1
je 0x4389ee
cmp cx, 0x40
je 0x4389ee
fstp st(0)
fld dword [edx + 0x7c]
mov ecx, 0x40
fchs
jmp 0x4389ee
fld dword [0x47363c]
mov ecx, 8
fld dword [esi + 0xc]
fadd dword [0x473638]
test cl, 7
mov word [esi + 8], cx
fstp dword [esi + 0xc]
je 0x438ad2
fld st(0)
fadd dword [esi + 0x14]
mov dword [esi + 0x20], 0x3f800000
fstp dword [esp + 0x14]
fcom dword [0x47363c]
fnstsw ax
test ah, 0x41
jne 0x438a3d
fld dword [esp + 0x14]
fcomp dword [edx + 0x60]
fnstsw ax
test ah, 0x41
jne 0x438a3d
mov edx, dword [edx + 0x60]
fstp st(0)
mov dword [esp + 0x14], edx
jmp 0x438a65
fcom dword [0x47363c]
fnstsw ax
test ah, 1
je 0x438a6b
fld dword [esp + 0x14]
fcomp dword [0x47363c]
fnstsw ax
test ah, 1
je 0x438a6b
fstp st(0)
mov dword [esp + 0x14], 0
fld dword [0x47363c]
fld dword [esp + 0x14]
fadd dword [esi + 0x14]
fmul dword [0x47b28c]
fadd dword [esi + 0x10]
fst dword [esp + 0xc]
fcomp dword [esi + 0x28]
fnstsw ax
test ah, 0x41
jne 0x438aa0
mov eax, dword [esi + 0x28]
mov dword [esp + 0x14], 0
fstp st(0)
fld dword [0x47363c]
mov dword [esp + 0xc], eax
fld dword [esp + 0xc]
fcomp dword [0x47363c]
fnstsw ax
test ah, 1
je 0x438b82
fstp st(0)
fld dword [0x47363c]
mov dword [esp + 0xc], 0
mov dword [esp + 0x14], 0
jmp 0x438b82
test cl, 0x70
je 0x438b66
fld st(0)
fadd dword [esi + 0x14]
mov dword [esi + 0x20], 0xbf800000
fstp dword [esp + 0x14]
fcom dword [0x47363c]
fnstsw ax
test ah, 0x41
jne 0x438b11
fld dword [esp + 0x14]
fcomp dword [edx + 0x70]
fnstsw ax
test ah, 0x41
jne 0x438b11
mov edx, dword [edx + 0x70]
fstp st(0)
mov dword [esp + 0x14], edx
jmp 0x438b39
fcom dword [0x47363c]
fnstsw ax
test ah, 1
je 0x438b3f
fld dword [esp + 0x14]
fcomp dword [0x47363c]
fnstsw ax
test ah, 1
je 0x438b3f
fstp st(0)
mov dword [esp + 0x14], 0
fld dword [0x47363c]
fld dword [esp + 0x14]
fadd dword [esi + 0x14]
fmul dword [0x47b28c]
fsubr dword [esi + 0x10]
fst dword [esp + 0xc]
fcomp dword [esi + 0x28]
fnstsw ax
test ah, 1
je 0x438aa0
jmp 0x438a89
test cl, 8
je 0x438b82
mov edx, dword [esp + 0xc]
mov dword [esi + 0x20], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0xc], edx
cmp cx, 8
je 0x438bbb
cmp cx, 0x40
jne 0x438ba1
fcom dword [0x47363c]
fnstsw ax
test cl, ah
jne 0x438bbb
mov eax, dword [esi + 4]
and al, 0xfd
jmp 0x438bc0
cmp cx, 4
jne 0x438bb4
fcom dword [0x47363c]
fnstsw ax
test ah, 0x40
jne 0x438bbb
mov eax, dword [esi + 4]
and al, 0xfd
jmp 0x438bc0
mov eax, dword [esi + 4]
or al, 2
fstp dword [esi + 0x18]
fld dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
mov dword [esi + 4], eax
mov eax, dword [esp + 0x14]
mov dword [esi + 0x10], ecx
fadd st(0), st(0)
mov dword [esi + 0x14], eax
pop edi
fmul dword [0x47b28c]
fstp dword [esi + 0x38]
pop esi
pop ebp
pop ecx
ret
mov esi, dword [edx + 0x5c]
mov ecx, dword [edx + 0x10]
mov dword [esp + 0x14], esi
test byte [edx + 0x14], 0x44
je 0x438c02
mov dword [esp + 0x14], 0
jmp 0x438c2e
test dword [edx + 0x14], 0x800
je 0x438c18
mov esi, dword [edx]
fld dword [esp + 0x14]
fmul dword [esi + 0x20]
fstp dword [esp + 0x14]
test dword [edx + 0x14], 0x1000
je 0x438c2e
mov esi, dword [edx]
fld dword [esp + 0x14]
fmul dword [esi + 0x24]
fstp dword [esp + 0x14]
test byte [edx + 0x14], al
je 0x438c38
fld dword [edx + 0x78]
jmp 0x438c3b
fld dword [edx + 0x70]
fld dword [edx + 0x58]
fcomp dword [ecx + 0x1c]
fnstsw ax
test ah, 0x40
jne 0x438c68
fld dword [ecx + 0x10]
fcomp dword [0x47363c]
fnstsw ax
test ah, 0x40
je 0x438c60
mov eax, dword [edx + 0x58]
mov dword [ecx + 0x1c], eax
jmp 0x438c68
mov dword [esp + 0x14], 0
fld dword [ecx + 0x10]
fcomp dword [esp + 0x14]
mov eax, dword [esp + 0x14]
mov dword [ecx + 0x28], eax
fnstsw ax
test ah, 1
je 0x438c89
fstp st(0)
fld dword [edx + 0x60]
mov eax, 2
jmp 0x438cab
fld dword [ecx + 0x10]
fcomp dword [esp + 0x14]
fnstsw ax
test ah, 0x41
jne 0x438c9e
mov eax, 0x20
jmp 0x438cab
fstp st(0)
fld dword [0x47363c]
mov eax, 8
fld dword [ecx + 0xc]
fadd dword [0x473638]
xor edx, edx
mov word [ecx + 8], ax
test al, 7
fstp dword [ecx + 0xc]
je 0x438d0f
fld st(0)
fadd dword [ecx + 0x10]
mov dword [ecx + 0x20], 0x3f800000
fst dword [esp + 0xc]
fcomp dword [esp + 0x14]
fnstsw ax
test ah, 0x41
jne 0x438cec
mov eax, dword [esp + 0x14]
fstp st(0)
fld dword [0x47363c]
mov dword [esp + 0xc], eax
fld dword [esp + 0xc]
fcomp dword [0x47363c]
fnstsw ax
test ah, 1
je 0x438d70
fstp st(0)
fld dword [0x47363c]
mov dword [esp + 0xc], 0
jmp 0x438d70
test al, 0x70
je 0x438d61
fld dword [ecx + 0x10]
fsub st(1)
mov dword [ecx + 0x20], 0xbf800000
fst dword [esp + 0xc]
fcomp dword [esp + 0x14]
fnstsw ax
test ah, 1
je 0x438d3e
mov eax, dword [esp + 0x14]
fstp st(0)
fld dword [0x47363c]
mov dword [esp + 0xc], eax
fld dword [esp + 0xc]
fcomp dword [0x47363c]
fnstsw ax
test ah, 1
je 0x438d70
fstp st(0)
fld dword [0x47363c]
mov dword [esp + 0xc], 0
jmp 0x438d70
test al, 8
je 0x438d70
mov eax, dword [esp + 0x14]
mov dword [ecx + 0x20], edx
mov dword [esp + 0xc], eax
fld dword [esp + 0xc]
fadd dword [ecx + 0x10]
mov eax, dword [ecx + 4]
mov dword [ecx + 0x18], edx
mov edx, dword [esp + 0xc]
pop edi
fmul dword [0x47b28c]
or al, 2
pop esi
pop ebp
mov dword [ecx + 4], eax
fstp dword [ecx + 0x38]
mov dword [ecx + 0x10], edx
fstp dword [ecx + 0x14]
pop ecx
ret
test byte [edx + 0x14], 2
je 0x438f27
fld dword [ecx + 0xc]
fadd dword [0x473638]
movsx eax, word [ecx + 0x48]
fst dword [ecx + 0xc]
fcomp dword [ecx + eax*4 + 0x3c]
fnstsw ax
test ah, 0x41
jne 0x438eab
mov ebp, 0x20
mov edi, 0xfffffffd
mov ax, word [ecx + 0x48]
fld dword [ecx + 0xc]
movsx edx, ax
fsub dword [ecx + edx*4 + 0x3c]
lea edx, [ecx + edx*4 + 0x3c]
fstp dword [ecx + 0xc]
fld dword [edx]
fld st(0)
fmul st(1)
lea edx, [eax + 1]
movsx esi, dx
fld st(0)
fmul st(2)
mov eax, esi
mov word [ecx + 0x48], dx
sub eax, 0
fmul dword [ecx + 0x18]
fchs
fmul dword [0x47bfa8]
fld st(1)
fmul dword [ecx + 0x34]
fmul dword [0x47b28c]
faddp st(1)
fld st(2)
fmul dword [ecx + 0x30]
faddp st(1)
fadd dword [ecx + 0x2c]
fstp dword [ecx + 0x2c]
fmul dword [ecx + 0x18]
fchs
fmul dword [0x47b28c]
fld st(1)
fmul dword [ecx + 0x34]
faddp st(1)
fadd dword [ecx + 0x30]
fstp dword [ecx + 0x30]
fmul dword [ecx + 0x18]
fchs
fadd dword [ecx + 0x34]
fstp dword [ecx + 0x34]
je 0x438e7f
dec eax
je 0x438e72
dec eax
je 0x438e62
xor eax, eax
mov word [ecx + 8], 8
mov dword [ecx + 0x18], eax
mov dword [ecx + 0x20], eax
mov eax, dword [ecx + 4]
and al, 0xf3
or al, 2
jmp 0x438e90
fld dword [ecx + 0x4c]
fchs
fstp dword [ecx + 0x18]
mov word [ecx + 8], 0x40
jmp 0x438e8b
mov word [ecx + 8], bp
mov dword [ecx + 0x18], 0
jmp 0x438e8b
mov eax, dword [ecx + 0x4c]
mov word [ecx + 8], 0x10
mov dword [ecx + 0x18], eax
mov eax, dword [ecx + 4]
and eax, edi
fld dword [ecx + 0xc]
mov dword [ecx + 4], eax
fcomp dword [ecx + esi*4 + 0x3c]
fnstsw ax
test ah, 0x41
jne 0x438eab
cmp dx, 3
jl 0x438dcd
mov edx, dword [ecx + 0xc]
pop edi
mov dword [esp + 0x10], edx
pop esi
fld dword [esp + 0xc]
fmul dword [esp + 0xc]
pop ebp
fst dword [esp]
fmul dword [esp + 8]
fmul dword [ecx + 0x18]
fchs
fmul dword [0x47bfa8]
fld dword [esp]
fmul dword [ecx + 0x34]
fmul dword [0x47b28c]
faddp st(1)
fld dword [esp + 8]
fmul dword [ecx + 0x30]
faddp st(1)
fadd dword [ecx + 0x2c]
fld dword [esp]
fmul dword [ecx + 0x18]
fchs
fmul dword [0x47b28c]
fld dword [esp + 8]
fmul dword [ecx + 0x34]
faddp st(1)
fadd dword [ecx + 0x30]
fstp dword [ecx + 0x10]
fld dword [esp + 8]
fmul dword [ecx + 0x18]
fld dword [ecx + 0x34]
fchs
faddp st(1)
fstp dword [ecx + 0x14]
fld st(0)
fsub dword [ecx + 0x24]
fstp dword [ecx + 0x38]
fstp dword [ecx + 0x24]
pop ecx
ret
fld dword [ecx + 0x4c]
movsx eax, word [ecx + 0x48]
fst dword [ecx + 0x14]
fld dword [ecx + 0xc]
fadd dword [0x473638]
xor esi, esi
lea edx, [ecx + eax*4 + 0x3c]
mov dword [ecx + 0x18], esi
fst dword [esp + 0x14]
fst dword [ecx + 0xc]
fcomp dword [edx]
fnstsw ax
test ah, 0x41
jne 0x438f9d
fld dword [edx]
fld st(0)
fmul st(1)
mov eax, dword [ecx + 4]
mov dword [ecx + 0x14], esi
mov word [ecx + 8], 8
mov dword [ecx + 0x20], esi
fmul st(2)
and al, 0xf3
fchs
fmul dword [0x47b28c]
fld st(1)
fmul dword [ecx + 0x30]
faddp st(1)
fadd dword [ecx + 0x2c]
fstp dword [ecx + 0x2c]
fxch st(1)
fmul st(1)
fchs
fadd dword [ecx + 0x30]
fstp dword [ecx + 0x30]
fstp st(0)
fld dword [esp + 0x14]
fsub dword [edx]
mov dword [ecx + 4], eax
fstp dword [ecx + 0xc]
jmp 0x438fa5
fstp st(0)
mov word [ecx + 8], 0x20
mov edx, dword [ecx + 0xc]
pop edi
mov dword [esp + 0x10], edx
pop esi
fld dword [esp + 0xc]
fmul dword [esp + 0xc]
pop ebp
fmul dword [ecx + 0x14]
fchs
fmul dword [0x47b28c]
fld dword [esp + 8]
fmul dword [ecx + 0x30]
faddp st(1)
fadd dword [ecx + 0x2c]
fld dword [esp + 8]
fmul dword [ecx + 0x14]
fchs
fadd dword [ecx + 0x30]
fstp dword [ecx + 0x10]
fld st(0)
fsub dword [ecx + 0x24]
fstp dword [ecx + 0x38]
fstp dword [ecx + 0x24]
pop ecx
ret