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

Disassembly:
mov ecx, dword [esp + 4]
sub esp, 0x4c
cmp cx, 0xffff
push ebp
mov ebp, dword [esp + 0x5c]
push esi
jne 0x4712c8
or eax, 0xffffffff
jmp 0x4712d5
mov edx, dword [0x87a018]
movsx eax, cx
mov eax, dword [edx + eax*4 + 4]
xor edx, edx
cmp eax, 0xffffffff
mov esi, ebp
mov dword [esi], edx
mov dword [esi + 4], edx
mov dword [esi + 8], edx
mov dword [esi + 0xc], edx
mov dword [esi + 0x10], edx
mov dword [esi + 0x14], edx
mov dword [esi + 0x18], edx
mov dword [esi + 0x1c], edx
je 0x471cc6
mov esi, dword [0x6b1384]
movsx ecx, cx
mov edx, ecx
shl edx, 6
and eax, 0xffff
push ebx
lea ebx, [edx + esi + 0x10]
mov edx, dword [0x87a020]
mov esi, dword [edx + 0x34]
shl eax, 9
add eax, esi
cmp word [0x719648], 0
push edi
mov edi, eax
mov eax, dword [0x746ec0]
mov edx, dword [eax + 0x114]
movsx eax, word [edi + 2]
mov dword [esp + 0x30], edx
lea edx, [eax + eax*4]
lea edx, [edx*8 + 0x7123c0]
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x34], edi
mov dword [esp + 0x14], edx
je 0x471370
mov eax, dword [edx + 0x14]
push eax
call fcn.00471270
fstp dword [edx + 0x14]
mov eax, dword [edx + 0x18]
push eax
call fcn.00471270
fstp dword [edx + 0x18]
add esp, 8
mov eax, dword [edi + 0x34]
cmp eax, 0xffffffff
mov dword [esp + 0x1c], 0
mov dword [esp + 0x24], 0
je 0x471469
fld dword [ecx*4 + 0x6f1c9c]
mov edx, dword [0x85ff50]
fmul dword [0x672c70]
mov edx, dword [edx + 0x34]
and eax, 0xffff
lea eax, [eax + eax*2]
mov esi, dword [edx + eax*4 + 8]
mov eax, dword [esi + 0x11c]
cmp eax, 0xffffffff
fmul dword [0x672b04]
fstp dword [esp + 0x1c]
fld dword [ecx*4 + 0x6f1ca0]
fmul dword [0x672c70]
fmul dword [0x672b04]
fstp dword [esp + 0x24]
je 0x471469
mov si, word [esi + 0x2f0]
cmp si, 0xffff
je 0x471469
and eax, 0xffff
lea ecx, [eax + eax*2]
mov edx, dword [edx + ecx*4 + 8]
mov eax, dword [edx]
mov ecx, dword [0x87b7b4]
and eax, 0xffff
shl eax, 5
mov edx, dword [eax + ecx + 0x14]
mov eax, dword [edx + 0x2e8]
movsx ecx, si
imul ecx, ecx, 0x11c
fld dword [ecx + eax + 0x7c]
fcomp dword [0x672af8]
add ecx, eax
fnstsw ax
test ah, 0x41
jne 0x471440
fld dword [ecx + 0x7c]
fmul dword [0x672c70]
fmul dword [0x672b04]
fstp dword [esp + 0x1c]
fld dword [ecx + 0x80]
fcomp dword [0x672af8]
fnstsw ax
test ah, 0x41
jne 0x471469
fld dword [ecx + 0x80]
fmul dword [0x672c70]
fmul dword [0x672b04]
fstp dword [esp + 0x24]
mov esi, dword [esp + 0x14]
mov eax, dword [esi + 0x14]
mov dword [ebp], eax
mov ecx, dword [esi + 0x18]
mov dword [ebp + 4], ecx
fld dword [esi + 0x20]
fabs
fstp dword [esp + 0x18]
fld dword [esi + 0x1c]
fabs
fstp dword [esp + 0x10]
fld dword [0x672afc]
fld dword [esp + 0x18]
fcomp dword [0x672be4]
fnstsw ax
test ah, 0x41
jne 0x4714fa
fld dword [esp + 0x10]
fcomp dword [0x672be4]
fnstsw ax
test ah, 0x41
jne 0x4714fa
fstp st(0)
fld dword [esp + 0x18]
fcomp dword [esp + 0x10]
fnstsw ax
test ah, 0x41
jne 0x4714d8
fld dword [esp + 0x10]
fdiv dword [esp + 0x18]
fstp dword [esp + 0x10]
fld dword [0x672afc]
jmp 0x4714e8
fld dword [esp + 0x18]
fdiv dword [esp + 0x10]
mov dword [esp + 0x10], 0x3f800000
fld dword [esp + 0x10]
fmul dword [esp + 0x10]
fld st(1)
fmul st(2)
faddp st(1)
fsqrt
fstp st(1)
fld st(0)
fmul dword [esi + 0x1c]
fcom dword [0x672be0]
fnstsw ax
test ah, 5
jp 0x471518
fstp st(0)
mov dword [esp + 0x18], 0xbf800000
jmp 0x471535
fcom dword [0x672afc]
fnstsw ax
test ah, 0x41
jne 0x471531
fstp st(0)
mov dword [esp + 0x18], 0x3f800000
jmp 0x471535
fstp dword [esp + 0x18]
fmul dword [esi + 0x20]
fcom dword [0x672be0]
fnstsw ax
test ah, 5
jp 0x471551
fstp st(0)
mov dword [esp + 0x10], 0xbf800000
jmp 0x47156e
fcom dword [0x672afc]
fnstsw ax
test ah, 0x41
jne 0x47156a
fstp st(0)
mov dword [esp + 0x10], 0x3f800000
jmp 0x47156e
fstp dword [esp + 0x10]
mov edx, dword [0x6b1384]
test byte [edx + 0xc], 1
jne 0x471a04
mov eax, dword [0x6f1c94]
mov cl, byte [eax + 2]
test cl, cl
jne 0x471a04
mov al, byte [esi + 0x24]
test al, al
je 0x471903
mov dl, byte [esi + 0xb]
test dl, dl
mov bl, byte [0x6f1ca7]
je 0x4715b9
test bl, bl
je 0x4715b9
mov cl, byte [0x6f1ca8]
xor eax, eax
test cl, cl
sete al
jmp 0x4715c2
mov cl, byte [0x6f1ca8]
movzx eax, cl
inc eax
test dl, dl
mov dword [esp + 0x38], eax
fild dword [esp + 0x38]
fstp dword [esp + 0x40]
je 0x4715e0
test bl, bl
je 0x4715e0
xor ebx, ebx
test cl, cl
sete bl
jmp 0x4715e3
movzx ebx, cl
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x18]
mov edi, dword [eax + 0x78]
xor esi, esi
mov si, word [eax + 0x74]
push ecx
push esi
call fcn.004711b0
mov edx, dword [esp + 0x18]
inc ebx
mov dword [esp + 0x40], ebx
fild dword [esp + 0x40]
push edx
push esi
fmulp st(1)
fmul dword [esp + 0x2c]
fstp dword [esp + 0x48]
call fcn.004711b0
fmul dword [esp + 0x50]
mov eax, dword [esp + 0x44]
mov eax, dword [eax + 0x34]
mov esi, dword [esp + 0x3c]
fmul dword [esp + 0x34]
add esp, 0x10
cmp eax, 0xffffffff
fstp dword [esp + 0x3c]
je 0x471665
xor ecx, ecx
mov cx, word [esi + 0x24]
cmp cx, 0xffff
je 0x471665
push ecx
call fcn.00565ee0
fdivr dword [0x672afc]
add esp, 4
fld dword [esp + 0x38]
fmul st(1)
fstp dword [esp + 0x38]
fmul dword [esp + 0x3c]
fstp dword [esp + 0x3c]
mov ecx, dword [esp + 0x34]
mov eax, dword [ecx + 0x34]
cmp eax, 0xffffffff
je 0x4716b4
and eax, 0xffff
lea edx, [eax + eax*2]
mov eax, dword [0x85ff50]
mov ecx, dword [eax + 0x34]
mov edx, dword [ecx + edx*4 + 8]
mov eax, dword [0x746ec0]
fld dword [edx + 0x424]
mov ecx, dword [eax + 0x174]
fmul dword [ecx + 0x84]
fsubr dword [0x672afc]
fld dword [esp + 0x38]
fmul st(1)
fstp dword [esp + 0x38]
fmul dword [esp + 0x3c]
fstp dword [esp + 0x3c]
fld dword [esp + 0x18]
mov ebx, dword [esp + 0x30]
fabs
fst qword [esp + 0x24]
fld dword [ebx + 0x48]
fxch st(1)
fcompp
fnstsw ax
test ah, 1
jne 0x471729
fld dword [esi + 0x34]
fdiv dword [ebx + 0x40]
fcom dword [0x672af8]
fnstsw ax
test ah, 5
jp 0x4716ed
fstp st(0)
fld dword [0x672af8]
jmp 0x471702
fcom dword [0x672afc]
fnstsw ax
test ah, 0x41
jne 0x471702
fstp st(0)
fld dword [0x672afc]
fld dword [ebx + 0x44]
fsub dword [0x672afc]
fmul st(1)
fadd dword [0x672afc]
fmul dword [esp + 0x38]
fstp dword [esp + 0x38]
fstp st(0)
fld dword [esp + 0x64]
fadd dword [esi + 0x34]
fstp dword [esi + 0x34]
jmp 0x471730
mov dword [esi + 0x34], 0
lea edx, [esp + 0x40]
push edx
lea eax, [esp + 0x20]
push eax
mov eax, dword [esp + 0x68]
lea edi, [esi + 0x30]
lea ecx, [esi + 0x2c]
push edi
push ecx
call fcn.00459860
mov dword [esi + 0x28], eax
mov al, byte [0x6f1ca5]
add esp, 0x10
test al, al
je 0x4718e0
fld dword [edi]
fcomp dword [0x672af8]
fnstsw ax
test ah, 0x41
jne 0x4718e0
fld qword [esp + 0x24]
fcomp qword [0x672c10]
fnstsw ax
test ah, 0x41
je 0x4717bd
fld dword [esp + 0x10]
fabs
fcomp qword [0x672c10]
fnstsw ax
test ah, 0x41
je 0x4717bd
fld dword [ebp]
fabs
fcomp qword [0x672c10]
fnstsw ax
test ah, 0x41
je 0x4717bd
fld dword [ebp + 4]
fabs
fcomp qword [0x672c10]
fnstsw ax
test ah, 0x41
jne 0x4718e0
call fcn.00470ee0
fld dword [ebx]
fcomp dword [0x672af8]
fnstsw ax
test ah, 5
jp 0x4717d9
fld dword [0x672af8]
jmp 0x4717f2
fld dword [ebx]
fcomp dword [0x672afc]
fnstsw ax
test ah, 0x41
jne 0x4717f0
fld dword [0x672afc]
jmp 0x4717f2
fld dword [ebx]
fmul dword [edi]
fsubr dword [0x672afc]
fstp dword [esp + 0x24]
fld dword [ebx + 4]
fcomp dword [0x672af8]
fnstsw ax
test ah, 5
jp 0x471816
fld dword [0x672af8]
jmp 0x471831
fld dword [ebx + 4]
fcomp dword [0x672afc]
fnstsw ax
test ah, 0x41
jne 0x47182e
fld dword [0x672afc]
jmp 0x471831
fld dword [ebx + 4]
mov edx, dword [0x6b0aa8]
fmul dword [edi]
mov al, byte [edx + 2]
test al, al
fstp dword [esp + 0x60]
je 0x47184a
fmul dword [0x672af4]
fld dword [esp + 0x40]
fmul st(1)
fstp dword [esp + 0x40]
fmul dword [esp + 0x44]
fld dword [esp + 0x40]
fcomp dword [0x673178]
fnstsw ax
test ah, 5
jp 0x471873
mov dword [esp + 0x40], 0xbdd67750
jmp 0x47188c
fld dword [esp + 0x40]
fcomp dword [0x673174]
fnstsw ax
test ah, 0x41
jne 0x47188c
mov dword [esp + 0x40], 0x3dd67750
fcom dword [0x673170]
fnstsw ax
test ah, 5
jp 0x4718a3
fstp st(0)
fld dword [0x673170]
jmp 0x4718b8
fcom dword [0x6556f0]
fnstsw ax
test ah, 0x41
jne 0x4718b8
fstp st(0)
fld dword [0x6556f0]
fld dword [esp + 0x40]
fmul dword [esp + 0x60]
fld dword [esp + 0x24]
fmul dword [esp + 0x38]
faddp st(1)
fstp dword [esp + 0x38]
fmul dword [esp + 0x60]
fld dword [esp + 0x24]
fmul dword [esp + 0x3c]
faddp st(1)
fstp dword [esp + 0x3c]
fld dword [esp + 0x64]
mov ebx, dword [esp + 0x2c]
fmul dword [0x672b00]
fld dword [esp + 0x38]
fmul st(1)
fstp dword [ebp + 0xc]
fmul dword [esp + 0x3c]
fstp dword [ebp + 0x10]
jmp 0x471a0c
mov eax, dword [esi + 0x14]
fld dword [0x672afc]
mov dword [ebp], eax
mov ecx, dword [esi + 0x18]
mov dword [ebp + 4], ecx
mov eax, dword [edi + 0x34]
cmp eax, 0xffffffff
je 0x47193a
xor ecx, ecx
mov cx, word [ebx + 0x24]
cmp cx, 0xffff
je 0x47193a
push ecx
fstp st(0)
call fcn.00565ee0
fdivr dword [0x672afc]
add esp, 4
mov eax, dword [edi + 0x34]
cmp eax, 0xffffffff
je 0x471975
and eax, 0xffff
lea edx, [eax + eax*2]
mov eax, dword [0x85ff50]
mov ecx, dword [eax + 0x34]
mov edx, dword [ecx + edx*4 + 8]
mov eax, dword [0x746ec0]
fld dword [edx + 0x424]
mov ecx, dword [eax + 0x174]
fmul dword [ecx + 0x84]
fsubr dword [0x672afc]
fmulp st(1)
fld st(0)
fmul dword [esi + 0x1c]
fstp dword [ebp + 0xc]
fmul dword [esi + 0x20]
fstp dword [ebp + 0x10]
fld dword [ebp + 0xc]
fcomp dword [0x67316c]
fnstsw ax
test ah, 5
jp 0x47199b
fld dword [0x67316c]
jmp 0x4719b6
fld dword [ebp + 0xc]
fcomp dword [0x673168]
fnstsw ax
test ah, 0x41
jne 0x4719b3
fld dword [0x673168]
jmp 0x4719b6
fld dword [ebp + 0xc]
fstp dword [ebp + 0xc]
fld dword [ebp + 0x10]
fcomp dword [0x673164]
fnstsw ax
test ah, 5
jp 0x4719d1
fld dword [0x673164]
jmp 0x4719ec
fld dword [ebp + 0x10]
fcomp dword [0x673160]
fnstsw ax
test ah, 0x41
jne 0x4719e9
fld dword [0x673160]
jmp 0x4719ec
fld dword [ebp + 0x10]
mov esi, dword [esp + 0x60]
fstp dword [ebp + 0x10]
lea edx, [ebx + 0x2c]
push edx
call fcn.00459a60
add esp, 4
mov dword [ebx + 0x28], eax
jmp 0x471a0c
xor eax, eax
mov dword [ebp + 0xc], eax
mov dword [ebp + 0x10], eax
xor eax, eax
mov dword [esp + 0x49], eax
mov dword [esp + 0x4d], eax
mov dword [esp + 0x51], eax
mov dword [esp + 0x55], eax
mov word [esp + 0x59], ax
mov ax, word [ebx + 8]
and ax, word [ebx + 0xa]
mov byte [esp + 0x48], 0
test ax, ax
je 0x471a68
mov esi, dword [esp + 0x14]
xor ecx, ecx
movzx edx, ax
mov edi, edi
mov eax, 1
shl eax, cl
test edx, eax
je 0x471a62
cmp byte [ecx + esi], 0
jne 0x471a62
mov eax, 1
shl eax, cl
not eax
and word [ebx + 8], ax
and word [ebx + 0xa], ax
inc ecx
cmp ecx, 0x13
jl 0x471a40
mov esi, dword [esp + 0x14]
movzx edi, word [ebx + 8]
lea edx, [esp + 0x48]
xor ecx, ecx
sub esi, edx
jmp 0x471a80
mov eax, 1
shl eax, cl
test edi, eax
jne 0x471a94
lea eax, [esp + ecx + 0x48]
mov dl, byte [esi + eax]
mov byte [eax], dl
inc ecx
cmp ecx, 0x13
jl 0x471a80
mov al, byte [esp + 0x52]
test al, al
mov eax, dword [ebp + 0x18]
mov edi, 0xfffffffe
je 0x471aaf
or eax, 1
jmp 0x471ab1
and eax, edi
mov dword [ebp + 0x18], eax
mov al, byte [esp + 0x48]
test al, al
mov eax, dword [ebp + 0x18]
mov edx, 0xfffffffd
mov esi, 2
je 0x471acd
or eax, esi
jmp 0x471acf
and eax, edx
mov cl, byte [esp + 0x4a]
test cl, cl
mov dword [ebp + 0x18], eax
je 0x471adf
or eax, 0x40
jmp 0x471ae2
and eax, 0xffffffbf
mov dword [ebp + 0x18], eax
mov al, byte [esp + 0x4d]
test al, al
mov eax, dword [ebp + 0x18]
je 0x471af5
or eax, 0x10
jmp 0x471af8
and eax, 0xffffffef
mov dword [ebp + 0x18], eax
mov al, byte [esp + 0x55]
test al, al
mov eax, dword [ebp + 0x18]
je 0x471b0d
or eax, 0x400
jmp 0x471b12
and eax, 0xfffffbff
mov dword [ebp + 0x18], eax
mov al, byte [esp + 0x4f]
test al, al
mov eax, dword [ebp + 0x18]
je 0x471b27
or eax, 0x800
jmp 0x471b2c
and eax, 0xfffff7ff
mov dword [ebp + 0x18], eax
mov al, byte [esp + 0x4e]
test al, al
mov eax, dword [ebp + 0x18]
je 0x471b49
or eax, 0x1000
mov dword [ebp + 0x18], eax
or eax, 0x2000
jmp 0x471b56
and eax, 0xffffefff
mov dword [ebp + 0x18], eax
and eax, 0xffffdfff
mov dword [ebp + 0x18], eax
mov al, byte [esp + 0x56]
test al, al
jne 0x471b78
movzx eax, cl
mov ecx, dword [esp + 0x30]
cmp ax, word [ecx + 0x6c]
jge 0x471b78
mov eax, dword [ebp + 0x18]
and eax, 0xffffbfff
jmp 0x471b80
mov eax, dword [ebp + 0x18]
or eax, 0x4000
mov dword [ebp + 0x18], eax
mov al, byte [esp + 0x4c]
test al, al
mov eax, dword [ebp + 0x18]
je 0x471b95
or eax, 0x80
jmp 0x471b9a
and eax, 0xffffff7f
mov dword [ebp + 0x18], eax
mov al, byte [esp + 0x53]
test al, al
mov eax, dword [ebp + 0x1c]
mov ecx, 4
je 0x471bb1
or eax, ecx
jmp 0x471bb4
and eax, 0xfffffffb
mov dword [ebp + 0x1c], eax
mov al, byte [esp + 0x4b]
test al, al
mov eax, dword [ebp + 0x1c]
je 0x471bc7
or eax, 1
jmp 0x471bc9
and eax, edi
mov dword [ebp + 0x1c], eax
mov al, byte [esp + 0x49]
test al, al
mov eax, dword [ebp + 0x1c]
je 0x471bdb
or eax, esi
jmp 0x471bdd
and eax, edx
mov esi, dword [ebp + 0x18]
mov dword [ebp + 0x1c], eax
mov eax, esi
and eax, 0x800
je 0x471bf4
fld dword [0x672afc]
jmp 0x471bfa
fld dword [0x672af8]
fstp dword [ebp + 8]
test byte [ebx + 9], 2
jne 0x471c0d
mov edx, dword [esp + 0x14]
mov dl, byte [edx + 9]
mov byte [ebp + 0x15], dl
test byte [ebx + 8], cl
pop edi
pop ebx
jne 0x471c1e
mov ecx, dword [esp + 0xc]
mov dl, byte [ecx + 2]
mov byte [ebp + 0x14], dl
cmp word [0x719648], 1
jne 0x471c82
test eax, eax
je 0x471c82
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0x34]
cmp eax, 0xffffffff
je 0x471c82
mov ecx, dword [0x85ff50]
mov ecx, dword [ecx + 0x34]
and eax, 0xffff
lea edx, [eax + eax*2]
mov eax, dword [ecx + edx*4 + 8]
mov dx, word [eax + 0x2f2]
cmp dx, 0xffff
je 0x471c82
movsx edx, dx
mov eax, dword [eax + edx*4 + 0x2f8]
and eax, 0xffff
lea eax, [eax + eax*2]
mov ecx, dword [ecx + eax*4 + 8]
test byte [ecx + 0x22c], 1
je 0x471c82
and esi, 0xfffff7ff
mov dword [ebp + 0x18], esi
fld dword [ebp + 4]
fld dword [ebp]
fld st(1)
fmulp st(2)
fld st(0)
fmul st(1)
faddp st(2)
fstp st(0)
fcom dword [0x672afc]
fnstsw ax
test ah, 0x41
jne 0x471cc4
fsqrt
mov edx, ebp
fdivr dword [0x672afc]
fld st(0)
fmul dword [ebp]
fstp dword [ebp]
fmul dword [ebp + 4]
fstp dword [ebp + 4]
call fcn.00472900
pop esi
pop ebp
add esp, 0x4c
ret
fstp st(0)
mov edx, ebp
call fcn.00472900
pop esi
pop ebp
add esp, 0x4c
ret