Function at 0x473ef0
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 0x473f08
or eax, 0xffffffff
jmp 0x473f15
mov edx, dword [0x8154d8]
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 0x4748f5
mov esi, dword [0x64c2c4]
movsx ecx, cx
mov edx, ecx
shl edx, 6
and eax, 0xffff
push ebx
lea ebx, [edx + esi + 0x10]
mov edx, dword [0x8154e0]
push edi
mov edi, dword [edx + 0x34]
shl eax, 9
add eax, edi
mov edx, eax
movsx edi, word [edx + 2]
mov eax, dword [0x6e21a0]
imul edi, edi, 0x34
mov eax, dword [eax + 0x114]
add edi, 0x6ad3d0
cmp word [0x6b46e8], 0
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x30], eax
mov dword [esp + 0x44], edi
je 0x473faf
mov eax, dword [edi + 0x20]
push eax
call fcn.00473eb0
fstp dword [edi + 0x20]
mov eax, dword [edi + 0x24]
push eax
call fcn.00473eb0
fstp dword [edi + 0x24]
add esp, 8
mov eax, dword [edx + 0x34]
cmp eax, 0xffffffff
mov dword [esp + 0x20], 0
mov dword [esp + 0x28], 0
je 0x4740a8
fld dword [ecx*4 + 0x68ccb0]
mov edx, dword [0x7fb2d0]
fmul dword [0x612398]
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 [0x61222c]
fstp dword [esp + 0x20]
fld dword [ecx*4 + 0x68ccb4]
fmul dword [0x612398]
fmul dword [0x61222c]
fstp dword [esp + 0x28]
je 0x4740a8
mov si, word [esi + 0x2f0]
cmp si, 0xffff
je 0x4740a8
and eax, 0xffff
lea ecx, [eax + eax*2]
mov edx, dword [edx + ecx*4 + 8]
mov eax, dword [edx]
mov ecx, dword [0x816d04]
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 [0x612220]
add ecx, eax
fnstsw ax
test ah, 0x41
jne 0x47407f
fld dword [ecx + 0x7c]
fmul dword [0x612398]
fmul dword [0x61222c]
fstp dword [esp + 0x20]
fld dword [ecx + 0x80]
fcomp dword [0x612220]
fnstsw ax
test ah, 0x41
jne 0x4740a8
fld dword [ecx + 0x80]
fmul dword [0x612398]
fmul dword [0x61222c]
fstp dword [esp + 0x28]
mov eax, dword [edi + 0x20]
mov dword [ebp], eax
mov ecx, dword [edi + 0x24]
mov dword [ebp + 4], ecx
fld dword [edi + 0x2c]
fabs
fstp dword [esp + 0x14]
fld dword [edi + 0x28]
fabs
fstp dword [esp + 0x10]
fld dword [0x612224]
fld dword [esp + 0x14]
fcomp dword [0x61230c]
fnstsw ax
test ah, 0x41
jne 0x474135
fld dword [esp + 0x10]
fcomp dword [0x61230c]
fnstsw ax
test ah, 0x41
jne 0x474135
fstp st(0)
fld dword [esp + 0x14]
fcomp dword [esp + 0x10]
fnstsw ax
test ah, 0x41
jne 0x474113
fld dword [esp + 0x10]
fdiv dword [esp + 0x14]
fstp dword [esp + 0x10]
fld dword [0x612224]
jmp 0x474123
fld dword [esp + 0x14]
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 [edi + 0x28]
fcom dword [0x612308]
fnstsw ax
test ah, 5
jp 0x474153
fstp st(0)
mov dword [esp + 0x14], 0xbf800000
jmp 0x474170
fcom dword [0x612224]
fnstsw ax
test ah, 0x41
jne 0x47416c
fstp st(0)
mov dword [esp + 0x14], 0x3f800000
jmp 0x474170
fstp dword [esp + 0x14]
fmul dword [edi + 0x2c]
fcom dword [0x612308]
fnstsw ax
test ah, 5
jp 0x47418c
fstp st(0)
mov dword [esp + 0x10], 0xbf800000
jmp 0x4741a9
fcom dword [0x612224]
fnstsw ax
test ah, 0x41
jne 0x4741a5
fstp st(0)
mov dword [esp + 0x10], 0x3f800000
jmp 0x4741a9
fstp dword [esp + 0x10]
mov edx, dword [0x64c2c4]
test byte [edx + 0xc], 1
jne 0x474647
mov eax, dword [0x68cca8]
mov cl, byte [eax + 2]
test cl, cl
jne 0x474647
mov al, byte [edi + 0x30]
test al, al
je 0x474542
mov dl, byte [edi + 0xb]
test dl, dl
mov bl, byte [0x68ccbb]
je 0x4741f4
test bl, bl
je 0x4741f4
mov cl, byte [0x68ccbc]
xor eax, eax
test cl, cl
sete al
jmp 0x4741fd
mov cl, byte [0x68ccbc]
movzx eax, cl
inc eax
test dl, dl
mov dword [esp + 0x34], eax
fild dword [esp + 0x34]
fstp dword [esp + 0x3c]
je 0x47421b
test bl, bl
je 0x47421b
xor ebx, ebx
test cl, cl
sete bl
jmp 0x47421e
movzx ebx, cl
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x14]
mov edi, dword [eax + 0x78]
xor esi, esi
mov si, word [eax + 0x74]
push ecx
push esi
call fcn.00473df0
mov edx, dword [esp + 0x18]
inc ebx
mov dword [esp + 0x3c], ebx
fild dword [esp + 0x3c]
push edx
push esi
fmulp st(1)
fmul dword [esp + 0x30]
fstp dword [esp + 0x44]
call fcn.00473df0
fmul dword [esp + 0x4c]
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0x34]
mov esi, dword [esp + 0x28]
fmul dword [esp + 0x38]
add esp, 0x10
cmp eax, 0xffffffff
fstp dword [esp + 0x38]
je 0x4742a0
xor ecx, ecx
mov cx, word [esi + 0x24]
cmp cx, 0xffff
je 0x4742a0
push ecx
call fcn.00569430
fdivr dword [0x612224]
add esp, 4
fld dword [esp + 0x34]
fmul st(1)
fstp dword [esp + 0x34]
fmul dword [esp + 0x38]
fstp dword [esp + 0x38]
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx + 0x34]
cmp eax, 0xffffffff
je 0x4742ef
and eax, 0xffff
lea edx, [eax + eax*2]
mov eax, dword [0x7fb2d0]
mov ecx, dword [eax + 0x34]
mov edx, dword [ecx + edx*4 + 8]
mov eax, dword [0x6e21a0]
fld dword [edx + 0x424]
mov ecx, dword [eax + 0x174]
fmul dword [ecx + 0x84]
fsubr dword [0x612224]
fld dword [esp + 0x34]
fmul st(1)
fstp dword [esp + 0x34]
fmul dword [esp + 0x38]
fstp dword [esp + 0x38]
fld dword [esp + 0x14]
mov ebx, dword [esp + 0x30]
fabs
fst qword [esp + 0x28]
fld dword [ebx + 0x48]
fxch st(1)
fcompp
fnstsw ax
test ah, 1
jne 0x474364
fld dword [esi + 0x34]
fdiv dword [ebx + 0x40]
fcom dword [0x612220]
fnstsw ax
test ah, 5
jp 0x474328
fstp st(0)
fld dword [0x612220]
jmp 0x47433d
fcom dword [0x612224]
fnstsw ax
test ah, 0x41
jne 0x47433d
fstp st(0)
fld dword [0x612224]
fld dword [ebx + 0x44]
fsub dword [0x612224]
fmul st(1)
fadd dword [0x612224]
fmul dword [esp + 0x34]
fstp dword [esp + 0x34]
fstp st(0)
fld dword [esp + 0x64]
fadd dword [esi + 0x34]
fstp dword [esi + 0x34]
jmp 0x47436b
mov dword [esi + 0x34], 0
lea edx, [esp + 0x3c]
push edx
lea eax, [esp + 0x24]
push eax
mov eax, dword [esp + 0x68]
lea edi, [esi + 0x30]
lea ecx, [esi + 0x2c]
push edi
push ecx
call fcn.0045a290
mov dword [esi + 0x28], eax
mov al, byte [0x68ccb9]
add esp, 0x10
test al, al
je 0x47451b
fld dword [edi]
fcomp dword [0x612220]
fnstsw ax
test ah, 0x41
jne 0x47451b
fld qword [esp + 0x28]
fcomp qword [0x612338]
fnstsw ax
test ah, 0x41
je 0x4743f8
fld dword [esp + 0x10]
fabs
fcomp qword [0x612338]
fnstsw ax
test ah, 0x41
je 0x4743f8
fld dword [ebp]
fabs
fcomp qword [0x612338]
fnstsw ax
test ah, 0x41
je 0x4743f8
fld dword [ebp + 4]
fabs
fcomp qword [0x612338]
fnstsw ax
test ah, 0x41
jne 0x47451b
call fcn.00473b20
fld dword [ebx]
fcomp dword [0x612220]
fnstsw ax
test ah, 5
jp 0x474414
fld dword [0x612220]
jmp 0x47442d
fld dword [ebx]
fcomp dword [0x612224]
fnstsw ax
test ah, 0x41
jne 0x47442b
fld dword [0x612224]
jmp 0x47442d
fld dword [ebx]
fmul dword [edi]
fsubr dword [0x612224]
fstp dword [esp + 0x28]
fld dword [ebx + 4]
fcomp dword [0x612220]
fnstsw ax
test ah, 5
jp 0x474451
fld dword [0x612220]
jmp 0x47446c
fld dword [ebx + 4]
fcomp dword [0x612224]
fnstsw ax
test ah, 0x41
jne 0x474469
fld dword [0x612224]
jmp 0x47446c
fld dword [ebx + 4]
mov edx, dword [0x64b9e8]
fmul dword [edi]
mov al, byte [edx + 2]
test al, al
fstp dword [esp + 0x60]
je 0x474485
fmul dword [0x61221c]
fld dword [esp + 0x3c]
fmul st(1)
fstp dword [esp + 0x3c]
fmul dword [esp + 0x40]
fld dword [esp + 0x3c]
fcomp dword [0x6128a0]
fnstsw ax
test ah, 5
jp 0x4744ae
mov dword [esp + 0x3c], 0xbdd67750
jmp 0x4744c7
fld dword [esp + 0x3c]
fcomp dword [0x61289c]
fnstsw ax
test ah, 0x41
jne 0x4744c7
mov dword [esp + 0x3c], 0x3dd67750
fcom dword [0x612898]
fnstsw ax
test ah, 5
jp 0x4744de
fstp st(0)
fld dword [0x612898]
jmp 0x4744f3
fcom dword [0x5f3bd0]
fnstsw ax
test ah, 0x41
jne 0x4744f3
fstp st(0)
fld dword [0x5f3bd0]
fld dword [esp + 0x3c]
fmul dword [esp + 0x60]
fld dword [esp + 0x28]
fmul dword [esp + 0x34]
faddp st(1)
fstp dword [esp + 0x34]
fmul dword [esp + 0x60]
fld dword [esp + 0x28]
fmul dword [esp + 0x38]
faddp st(1)
fstp dword [esp + 0x38]
fld dword [esp + 0x64]
mov edi, dword [esp + 0x44]
fmul dword [0x612228]
mov ebx, dword [esp + 0x18]
fld dword [esp + 0x34]
fmul st(1)
fstp dword [ebp + 0xc]
fmul dword [esp + 0x38]
fstp dword [ebp + 0x10]
jmp 0x47464f
mov eax, dword [edi + 0x20]
fld dword [0x612224]
mov esi, dword [esp + 0x1c]
mov dword [ebp], eax
mov ecx, dword [edi + 0x24]
mov dword [ebp + 4], ecx
mov eax, dword [esi + 0x34]
cmp eax, 0xffffffff
je 0x47457d
xor ecx, ecx
mov cx, word [ebx + 0x24]
cmp cx, 0xffff
je 0x47457d
push ecx
fstp st(0)
call fcn.00569430
fdivr dword [0x612224]
add esp, 4
mov eax, dword [esi + 0x34]
cmp eax, 0xffffffff
je 0x4745b8
and eax, 0xffff
lea edx, [eax + eax*2]
mov eax, dword [0x7fb2d0]
mov ecx, dword [eax + 0x34]
mov edx, dword [ecx + edx*4 + 8]
mov eax, dword [0x6e21a0]
fld dword [edx + 0x424]
mov ecx, dword [eax + 0x174]
fmul dword [ecx + 0x84]
fsubr dword [0x612224]
fmulp st(1)
fld st(0)
fmul dword [edi + 0x28]
fstp dword [ebp + 0xc]
fmul dword [edi + 0x2c]
fstp dword [ebp + 0x10]
fld dword [ebp + 0xc]
fcomp dword [0x612894]
fnstsw ax
test ah, 5
jp 0x4745de
fld dword [0x612894]
jmp 0x4745f9
fld dword [ebp + 0xc]
fcomp dword [0x612890]
fnstsw ax
test ah, 0x41
jne 0x4745f6
fld dword [0x612890]
jmp 0x4745f9
fld dword [ebp + 0xc]
fstp dword [ebp + 0xc]
fld dword [ebp + 0x10]
fcomp dword [0x61288c]
fnstsw ax
test ah, 5
jp 0x474614
fld dword [0x61288c]
jmp 0x47462f
fld dword [ebp + 0x10]
fcomp dword [0x612888]
fnstsw ax
test ah, 0x41
jne 0x47462c
fld dword [0x612888]
jmp 0x47462f
fld dword [ebp + 0x10]
mov esi, dword [esp + 0x60]
fstp dword [ebp + 0x10]
lea edx, [ebx + 0x2c]
push edx
call fcn.0045a490
add esp, 4
mov dword [ebx + 0x28], eax
jmp 0x47464f
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 0x4746a8
xor ecx, ecx
movzx edx, ax
lea ecx, [ecx]
mov eax, 1
shl eax, cl
test edx, eax
je 0x4746a2
cmp byte [ecx + edi], 0
jne 0x4746a2
mov eax, 1
shl eax, cl
not eax
and word [ebx + 8], ax
and word [ebx + 0xa], ax
inc ecx
cmp ecx, 0x13
jl 0x474680
movzx edx, word [ebx + 8]
mov esi, edi
lea eax, [esp + 0x48]
xor ecx, ecx
sub esi, eax
mov eax, 1
shl eax, cl
test edx, eax
jne 0x4746ce
lea eax, [esp + ecx + 0x48]
mov bl, byte [esi + eax]
mov byte [eax], bl
mov ebx, dword [esp + 0x18]
inc ecx
cmp ecx, 0x13
jl 0x4746b6
mov al, byte [esp + 0x52]
test al, al
mov eax, dword [ebp + 0x18]
je 0x4746e4
or eax, 1
jmp 0x4746e7
and eax, 0xfffffffe
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 0x474703
or eax, esi
jmp 0x474705
and eax, edx
mov cl, byte [esp + 0x4a]
test cl, cl
mov dword [ebp + 0x18], eax
je 0x474715
or eax, 0x40
jmp 0x474718
and eax, 0xffffffbf
mov dword [ebp + 0x18], eax
mov al, byte [esp + 0x4d]
test al, al
mov eax, dword [ebp + 0x18]
je 0x47472b
or eax, 0x10
jmp 0x47472e
and eax, 0xffffffef
mov dword [ebp + 0x18], eax
mov al, byte [esp + 0x55]
test al, al
mov eax, dword [ebp + 0x18]
je 0x474743
or eax, 0x400
jmp 0x474748
and eax, 0xfffffbff
mov dword [ebp + 0x18], eax
mov al, byte [esp + 0x4f]
test al, al
mov eax, dword [ebp + 0x18]
je 0x47475d
or eax, 0x800
jmp 0x474762
and eax, 0xfffff7ff
mov dword [ebp + 0x18], eax
mov al, byte [esp + 0x4e]
test al, al
mov eax, dword [ebp + 0x18]
je 0x47477f
or eax, 0x1000
mov dword [ebp + 0x18], eax
or eax, 0x2000
jmp 0x47478c
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 0x4747ae
mov eax, dword [esp + 0x30]
movzx ecx, cl
cmp cx, word [eax + 0x6c]
jge 0x4747ae
mov eax, dword [ebp + 0x18]
and eax, 0xffffbfff
jmp 0x4747b6
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 0x4747cb
or eax, 0x80
jmp 0x4747d0
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 0x4747e7
or eax, ecx
jmp 0x4747ea
and eax, 0xfffffffb
mov dword [ebp + 0x1c], eax
mov al, byte [esp + 0x4b]
test al, al
mov eax, dword [ebp + 0x1c]
je 0x4747fd
or eax, 1
jmp 0x474800
and eax, 0xfffffffe
mov dword [ebp + 0x1c], eax
mov al, byte [esp + 0x49]
test al, al
mov eax, dword [ebp + 0x1c]
je 0x474812
or eax, esi
jmp 0x474814
and eax, edx
mov esi, dword [ebp + 0x18]
mov dword [ebp + 0x1c], eax
mov eax, esi
and eax, 0x800
je 0x47482b
fld dword [0x612224]
jmp 0x474831
fld dword [0x612220]
fstp dword [ebp + 8]
test byte [ebx + 9], 2
jne 0x474840
mov dl, byte [edi + 9]
mov byte [ebp + 0x15], dl
test byte [ebx + 8], cl
jne 0x47484b
mov cl, byte [edi + 2]
mov byte [ebp + 0x14], cl
cmp word [0x6b46e8], 1
pop edi
pop ebx
jne 0x4748b1
test eax, eax
je 0x4748b1
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0x34]
cmp eax, 0xffffffff
je 0x4748b1
mov ecx, dword [0x7fb2d0]
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 0x4748b1
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 0x4748b1
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 [0x612224]
fnstsw ax
test ah, 0x41
jne 0x4748f3
fsqrt
mov edx, ebp
fdivr dword [0x612224]
fld st(0)
fmul dword [ebp]
fstp dword [ebp]
fmul dword [ebp + 4]
fstp dword [ebp + 4]
call fcn.004755b0
pop esi
pop ebp
add esp, 0x4c
ret
fstp st(0)
mov edx, ebp
call fcn.004755b0
pop esi
pop ebp
add esp, 0x4c
ret