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

Disassembly:
mov eax, dword [0x97f2b4]
push ebx
push esi
push edi
push ebp
mov si, word [0xa0d8a0]
sub esp, 0xa0
mov dword [esp + 0x24], eax
mov eax, dword [0x97f264]
and esi, 0x1f
mov dword [esp + 0x1c], eax
mov eax, dword [0x94dbe8]
mov dword [esp + 4], eax
movzx eax, byte [0xa10b03]
push eax
call fcn.004bc0c0
fld dword [eax]
fstp dword [esp + 0x70]
fld dword [eax + 4]
fstp dword [esp + 0x74]
fld dword [eax + 8]
mov eax, dword [esp + 8]
pop ecx
fstp dword [esp + 0x74]
mov ebp, dword [eax + 8]
movsx eax, si
mov dword [esp + 0x30], eax
imul eax, ebp
cdq
and edx, 0x1f
add eax, edx
sar eax, 5
mov dword [esp + 0x20], eax
mov dword [esp + 0x10], eax
imul eax, eax, 0x1a0
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x2c], eax
inc dword [esp + 0x2c]
mov eax, dword [esp + 0x2c]
imul eax, ebp
cdq
and edx, 0x1f
add eax, edx
sar eax, 5
mov dword [esp + 0x28], eax
jmp 0x53da2b
mov eax, dword [esp + 4]
mov ebx, dword [eax + 4]
mov eax, dword [esp + 0x10]
movzx eax, byte [ebx + eax]
and eax, 0x80
je 0x53d770
xor edi, edi
jmp 0x53d77a
mov eax, dword [esp + 4]
mov edi, dword [eax]
add edi, dword [esp + 0x20]
test edi, edi
je 0x53da1f
mov ecx, edi
call fcn.004e3e40
test al, al
fldz
fldz
fldz
fldz
je 0x53e350
lea eax, [edi + 0x34]
fld dword [eax + 8]
fsub dword [esp + 0x74]
fstp st(2)
fld dword [eax + 4]
fsub dword [esp + 0x70]
fstp st(3)
fld dword [eax]
fsub dword [esp + 0x6c]
fstp st(4)
fld st(2)
fmul st(0)
fld st(4)
fmul st(0)
faddp st(1)
fld st(2)
fmul st(0)
faddp st(1)
fsqrt
fstp dword [esp + 0x78]
fld dword [esp + 0x78]
lea edx, [edi + 0x150]
mov eax, edx
fstp st(1)
fld dword [eax + 8]
fsub dword [esp + 0x74]
fstp st(2)
fld dword [eax + 4]
fsub dword [esp + 0x70]
fstp st(3)
fld dword [eax]
fsub dword [esp + 0x6c]
fstp st(4)
fld st(2)
fmul st(0)
fld st(4)
fmul st(0)
faddp st(1)
fld st(2)
fmul st(0)
faddp st(1)
fsqrt
fstp dword [esp + 0x78]
fld dword [esp + 0x78]
mov cl, byte [edi + 0x16c]
cmp cl, 3
fstp st(4)
jne 0x53d8d2
movsx ebx, word [edi + 0x5c]
movzx eax, word [0x68e894]
cmp eax, ebx
je 0x53d839
movzx eax, word [0x68e9c0]
cmp eax, ebx
jne 0x53d870
fcom dword [0x694eac]
fnstsw ax
test ah, 0x45
jne 0x53e360
fcompp
fcompp
push edi
call fcn.004db330
test edi, edi
pop ecx
je 0x53da1f
mov ecx, edi
mov ebp, dword [ecx]
push 1
call dword [ebp + 8]
jmp 0x53da1f
fcom dword [0x694eb0]
fnstsw ax
test ah, 0x45
je 0x53e340
fcom dword [0x694eb4]
fnstsw ax
test ah, 0x45
jne 0x53e337
fcompp
fcompp
mov ecx, edi
call fcn.004885d0
test al, al
je 0x53d8b5
mov eax, dword [edi + 0x180]
mov edx, dword [0x974b34]
cmp edx, eax
jbe 0x53da1f
push edi
call fcn.004db330
test edi, edi
pop ecx
je 0x53da1f
mov ecx, edi
mov esi, dword [ecx]
push 1
call dword [esi + 8]
jmp 0x53da1f
fcom dword [0x694eb8]
fnstsw ax
test ah, 0x45
jne 0x53e370
fld st(3)
fcomp dword [0x694eb8]
fnstsw ax
test ah, 0x45
jne 0x53e380
cmp cl, 4
je 0x53e390
fld dword [edx]
fstp dword [esp + 0x94]
fld dword [edx + 4]
fstp dword [esp + 0x98]
fld dword [edx + 8]
fstp dword [esp + 0x9c]
movsx ebx, word [edi + 0x5c]
lea eax, [esp + 0x92]
push 0
push 0
push 1
push 1
push 0
push 0
push 2
push eax
mov eax, dword [ebx*4 + 0x92d4d0]
fcompp
fcompp
mov ebp, dword [eax + 0x1c]
lea eax, [esp + 0xb4]
push 0
push dword [ebp + 0xc]
push eax
call fcn.004d6390
add esp, 0x2c
cmp word [esp + 0x92], 0
je 0x53d968
xor al, al
jmp 0x53d96a
mov al, 1
test al, al
je 0x53da1f
push 0x68
call fcn.004877b0
mov esi, eax
pop ecx
test esi, esi
je 0x53d98a
mov ecx, esi
push edi
call fcn.004e05f0
mov esi, eax
lea eax, [edi + 0x120]
lea ecx, [esi + 4]
push eax
call fcn.004df8e0
lea ecx, [esi + 4]
call fcn.004df910
mov ecx, esi
call fcn.00489360
movsx edx, word [edi + 0x5c]
mov eax, dword [edx*4 + 0x92d4d0]
mov ebp, eax
mov dword [esp + 0xc], eax
mov cl, byte [ebp + 0x19]
mov al, cl
cmp al, 1
je 0x53d9d0
cmp cl, 3
je 0x53d9d0
xor bl, bl
jmp 0x53d9e9
movzx eax, word [ebp + 0x42]
mov bl, 1
mov edx, eax
and edx, 0x2000
jne 0x53d9e9
and eax, 0x4000
jne 0x53d9e9
xor bl, bl
test bl, bl
je 0x53da04
mov eax, dword [esp + 0xc]
movzx eax, word [eax + 0x42]
and eax, 0x4000
jne 0x53da04
mov al, byte [esi + 0x52]
and al, 0xfb
mov byte [esi + 0x52], al
push edi
call fcn.004db330
test edi, edi
pop ecx
je 0x53da18
mov ecx, edi
mov ebx, dword [ecx]
push 1
call dword [ebx + 8]
push esi
call fcn.004db410
pop ecx
add dword [esp + 0x20], 0x1a0
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, dword [esp + 0x28]
jl 0x53d752
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 8]
mov eax, dword [esp + 0x30]
imul eax, ecx
cdq
mov dword [esp + 0x30], eax
and edx, 0x1f
add eax, edx
sar eax, 5
mov ebp, eax
mov eax, dword [esp + 0x2c]
imul eax, ecx
mov edi, ebp
imul edi, edi, 0x68
cdq
mov dword [esp + 0x2c], eax
and edx, 0x1f
add eax, edx
sar eax, 5
mov dword [esp + 0x18], eax
jmp 0x53db28
mov eax, dword [esp + 0x1c]
mov esi, dword [eax + 4]
movzx eax, byte [esi + ebp]
fldz
fldz
and eax, 0x80
fldz
je 0x53da94
xor ecx, ecx
jmp 0x53da9c
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
add ecx, edi
test ecx, ecx
je 0x53e3a0
mov al, byte [ecx + 0x5f]
movzx ebx, al
cmp ebx, dword [0x978818]
je 0x53dab6
cmp al, 0xd
jne 0x53dac0
mov al, 1
jmp 0x53dac2
xor al, al
test al, al
je 0x53e3b0
lea eax, [ecx + 0x34]
fld dword [eax + 8]
fsub dword [esp + 0x74]
fstp st(1)
fld dword [eax + 4]
fsub dword [esp + 0x70]
fstp st(2)
fld dword [eax]
fsub dword [esp + 0x6c]
fstp st(3)
fld st(1)
fmul st(0)
fld st(3)
fmul st(0)
faddp st(1)
fld st(1)
fmul st(0)
faddp st(1)
fsqrt
fstp dword [esp + 0x78]
fld dword [esp + 0x78]
fstp st(3)
fld st(2)
fcomp dword [0x694eb8]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x53e3c0
fcompp
push ecx
fstp st(0)
call fcn.0053d360
pop ecx
add edi, 0x68
inc ebp
cmp ebp, dword [esp + 0x18]
jl 0x53da78
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx + 8]
mov dword [esp + 8], eax
sub dword [esp + 8], 1
jb 0x53e32c
mov eax, dword [esp + 8]
mov dword [esp + 0x14], eax
imul eax, eax, 0x6d8
mov dword [esp + 0x14], eax
lea eax, [eax]
mov eax, dword [esp + 0x24]
mov edx, dword [eax + 4]
mov eax, dword [esp + 8]
movzx eax, byte [edx + eax]
and eax, 0x80
je 0x53db80
xor ebx, ebx
jmp 0x53db8a
mov eax, dword [esp + 0x24]
mov ebx, dword [eax]
add ebx, dword [esp + 0x14]
test ebx, ebx
je 0x53e319
mov ecx, ebx
call fcn.004f4950
test al, al
jne 0x53e319
mov ecx, ebx
call fcn.004fff10
test al, al
je 0x53e319
cmp byte [ebx + 0x3ac], 0
jne 0x53e319
mov edi, dword [0x974b34]
sub edi, dword [ebx + 0x55c]
cmp dword [ebx + 0x244], 0x37
jne 0x53dbfb
cmp edi, 0x7530
jg 0x53dbeb
call fcn.00429fc0
test al, al
je 0x53dbfb
cmp edi, 0x3a98
jle 0x53dbfb
mov al, byte [ebx + 0x152]
and al, 0x7f
or al, 0x80
mov byte [ebx + 0x152], al
mov al, byte [ebx + 0x152]
shr al, 7
test al, al
je 0x53dc30
mov eax, dword [ebx + 0x4c]
push eax
call fcn.00581510
test eax, eax
pop ecx
jne 0x53dc30
push ebx
call fcn.004db330
test ebx, ebx
pop ecx
je 0x53e319
push 1
jmp 0x53e312
lea ebp, [ebx + 0x34]
fldz
fldz
fld dword [ebp]
fsub dword [esp + 0x6c]
fstp st(2)
fld dword [ebp + 4]
fsub dword [esp + 0x70]
fst st(1)
fmul st(0)
fld st(2)
fmul st(0)
faddp st(1)
fsqrt
fstp dword [esp + 0x78]
fld dword [esp + 0x78]
fstp st(2)
mov byte [esp], 0
fld st(1)
fstp dword [esp + 0x34]
mov eax, dword [ebx + 0x3d4]
cmp eax, 7
jl 0x53dc83
cmp eax, 0xf
jg 0x53dc83
fld dword [esp + 0x34]
fsub dword [0x694e88]
jmp 0x53dc9f
mov al, byte [ebx + 0x156]
shr al, 6
and al, 1
je 0x53dca3
cmp dword [ebx + 0x3b8], 0
je 0x53dca3
fld dword [0x694e04]
fstp dword [esp + 0x34]
fcompp
call fcn.004bc200
test eax, eax
je 0x53dd40
call fcn.004bc200
fld dword [eax + 0x74]
fstp dword [esp + 0x4c]
call fcn.004bc200
fld dword [eax + 0x74]
fmul dword [esp + 0x4c]
fstp dword [esp + 0x60]
call fcn.004bc200
fld dword [eax + 0x70]
fstp dword [esp + 0x48]
call fcn.004bc200
fldz
fld dword [eax + 0x70]
fmul dword [esp + 0x48]
fadd dword [esp + 0x60]
fsqrt
fstp dword [esp + 0x78]
fld dword [esp + 0x78]
fstp st(1)
fsub dword [0x694dd4]
fadd dword [0x694dd8]
fld dword [0x694dd8]
fcomp st(1)
fnstsw ax
test ah, 0x45
jne 0x53dd1b
fld dword [0x694dd8]
fstp st(1)
fld dword [0x694dd0]
fcomp st(1)
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x53dd35
fld dword [0x694dd0]
fstp st(1)
fst dword [esp + 0x3c]
jmp 0x53e3d0
fld dword [0x694dd8]
fstp dword [esp + 0x3c]
fld dword [0x694ebc]
fmul dword [0x7e4784]
fmul dword [esp + 0x3c]
fcomp dword [esp + 0x34]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x53dd71
mov byte [esp], 1
jmp 0x53dfa0
mov al, byte [ebx + 0x153]
shr al, 2
and al, 1
jne 0x53de51
call fcn.004bc200
test eax, eax
je 0x53de20
call fcn.004bc200
fld dword [eax + 0x74]
fstp dword [esp + 0x54]
call fcn.004bc200
fld dword [eax + 0x74]
fmul dword [esp + 0x54]
fstp dword [esp + 0x64]
call fcn.004bc200
fld dword [eax + 0x70]
fstp dword [esp + 0x50]
call fcn.004bc200
fldz
fld dword [eax + 0x70]
fmul dword [esp + 0x50]
fadd dword [esp + 0x64]
fsqrt
fstp dword [esp + 0x78]
fld dword [esp + 0x78]
fstp st(1)
fsub dword [0x694dd4]
fadd dword [0x694dd8]
fld dword [0x694dd8]
fcomp st(1)
fnstsw ax
test ah, 0x45
jne 0x53ddf8
fld dword [0x694dd8]
fstp st(1)
fld dword [0x694dd0]
fcomp st(1)
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x53de12
fld dword [0x694dd0]
fstp st(1)
fst dword [esp + 0x40]
jmp 0x53e3d7
fld dword [0x694dd8]
fstp dword [esp + 0x40]
fld dword [0x694eb0]
fmul dword [esp + 0x40]
fmul dword [0x7e4784]
fcomp dword [esp + 0x34]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x53de51
mov byte [esp], 1
jmp 0x53dfa0
call fcn.004bc200
test eax, eax
je 0x53def0
call fcn.004bc200
fld dword [eax + 0x74]
fstp dword [esp + 0x5c]
call fcn.004bc200
fld dword [eax + 0x74]
fmul dword [esp + 0x5c]
fstp dword [esp + 0x68]
call fcn.004bc200
fld dword [eax + 0x70]
fstp dword [esp + 0x58]
call fcn.004bc200
fldz
fld dword [eax + 0x70]
fmul dword [esp + 0x58]
fadd dword [esp + 0x68]
fsqrt
fstp dword [esp + 0x78]
fld dword [esp + 0x78]
fstp st(1)
fsub dword [0x694dd4]
fadd dword [0x694dd8]
fld dword [0x694dd8]
fcomp st(1)
fnstsw ax
test ah, 0x45
jne 0x53dec7
fld dword [0x694dd8]
fstp st(1)
fld dword [0x694dd0]
fcomp st(1)
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x53dee1
fld dword [0x694dd0]
fstp st(1)
fst dword [esp + 0x44]
jmp 0x53e3e0
fld dword [0x694dd8]
fstp dword [esp + 0x44]
fld dword [0x694eb4]
fmul dword [esp + 0x44]
fcomp dword [esp + 0x34]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x53df74
mov eax, dword [ebx + 0x35c]
mov edx, dword [0x974b34]
cmp edx, eax
jbe 0x53dfa0
mov ecx, ebx
call fcn.004885d0
test al, al
jne 0x53dfa0
movzx ecx, byte [0x7e4706]
imul ecx, ecx, 0x1cc
mov ax, word [ecx + 0x7e4824]
cmp ax, 7
je 0x53dfa0
cmp ax, 0x27
je 0x53dfa0
cmp ax, 0x2e
je 0x53dfa0
cmp byte [ecx + 0x7e4820], 0
jne 0x53dfa0
cmp byte [ecx + 0x7e4821], 0
jne 0x53dfa0
cmp byte [ecx + 0x7e481f], 0
jne 0x53dfa0
mov byte [esp], 1
jmp 0x53dfa0
cmp dword [ebx + 0x3d4], 6
jne 0x53df90
mov eax, dword [0x974b34]
add eax, 0x2710
jmp 0x53df9a
mov eax, dword [0x974b34]
add eax, 0xfa0
mov dword [ebx + 0x35c], eax
cmp byte [esp], 0
je 0x53e319
cmp dword [ebx + 0x244], 0x37
jne 0x53e2e8
mov al, byte [ebx + 0x152]
shr al, 7
test al, al
jne 0x53e2e8
lea esi, [ebp]
lea edi, [esp + 0x84]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.00649a40
movzx eax, ax
and eax, 0xff
mov dword [esp + 0x78], eax
fild dword [esp + 0x78]
fmul dword [0x694ec0]
fstp dword [esp + 0x38]
call fcn.00649a40
movzx edi, ax
mov eax, 0x55555556
fldz
mov edx, edi
mov ecx, edx
imul edx
shr ecx, 0x1f
fldz
fldz
fldz
add ecx, edx
imul ecx, ecx, 3
sub edi, ecx
cmp edi, 2
ja case.default.0x53e022
jmp dword [edi*4 + 0x695064]
fld dword [esp + 0x38]
fcos
fnstsw ax
test eax, 0x400
je 0x53e03f
call fcn.00642970
fcos
fstp dword [esp + 0x78]
fld dword [esp + 0x78]
fstp st(4)
fld dword [esp + 0x38]
fsin
fnstsw ax
test eax, 0x400
je 0x53e05f
call fcn.00642970
fsin
fstp dword [esp + 0x78]
fld dword [esp + 0x78]
fstp st(3)
fld dword [esp + 0x38]
fsin
fnstsw ax
test eax, 0x400
je 0x53e07f
call fcn.00642970
fsin
fstp dword [esp + 0x78]
fld dword [esp + 0x78]
fstp st(2)
fld dword [esp + 0x38]
fcos
fnstsw ax
test eax, 0x400
je 0x53e09f
call fcn.00642970
fcos
fstp dword [esp + 0x78]
fld dword [esp + 0x78]
fstp st(1)
fld dword [0x694ec4]
push dword [0x694dd8]
push 0x9c40
push dword [0x694de8]
push 0xff
push 0xff
push 0xff
push 0xff
push eax
fmul st(4)
fstp dword [esp]
push eax
fld dword [0x694ec8]
fmul st(3)
fstp dword [esp]
push eax
fld dword [0x694ec8]
fmul st(2)
fstp dword [esp]
fld dword [0x694ec8]
push eax
fmul st(1)
fstp dword [esp]
lea esi, [esp + 0xb0]
mov eax, dword [0x9786ec]
push esi
jmp 0x53e2d9
fld dword [esp + 0x38]
fcos
fnstsw ax
test eax, 0x400
je 0x53e126
call fcn.00642970
fcos
fstp dword [esp + 0x78]
fld dword [esp + 0x78]
fstp st(4)
fld dword [esp + 0x38]
fsin
fnstsw ax
test eax, 0x400
je 0x53e146
call fcn.00642970
fsin
fstp dword [esp + 0x78]
fld dword [esp + 0x78]
fstp st(3)
fld dword [esp + 0x38]
fsin
fnstsw ax
test eax, 0x400
je 0x53e166
call fcn.00642970
fsin
fstp dword [esp + 0x78]
fld dword [esp + 0x78]
fstp st(2)
fld dword [esp + 0x38]
fcos
fnstsw ax
test eax, 0x400
je 0x53e186
call fcn.00642970
fcos
fstp dword [esp + 0x78]
fld dword [esp + 0x78]
fstp st(1)
fld dword [0x694ec4]
push dword [0x694dd8]
push 0x9c40
push dword [0x694de8]
push 0xff
push 0xff
push 0xff
push 0xff
push eax
fmul st(4)
fstp dword [esp]
push eax
fld dword [0x694ec8]
fmul st(3)
fstp dword [esp]
push eax
fld dword [0x694ec8]
fmul st(2)
fstp dword [esp]
fld dword [0x694ec8]
push eax
fmul st(1)
fstp dword [esp]
lea edi, [esp + 0xb0]
mov eax, dword [0x9786c4]
push edi
jmp 0x53e2d9
fld dword [esp + 0x38]
fcos
fnstsw ax
test eax, 0x400
je 0x53e20d
call fcn.00642970
fcos
fstp dword [esp + 0x78]
fld dword [esp + 0x78]
fstp st(4)
fld dword [esp + 0x38]
fsin
fnstsw ax
test eax, 0x400
je 0x53e22d
call fcn.00642970
fsin
fstp dword [esp + 0x78]
fld dword [esp + 0x78]
fstp st(3)
fld dword [esp + 0x38]
fsin
fnstsw ax
test eax, 0x400
je 0x53e24d
call fcn.00642970
fsin
fstp dword [esp + 0x78]
fld dword [esp + 0x78]
fstp st(2)
fld dword [esp + 0x38]
fcos
fnstsw ax
test eax, 0x400
je 0x53e26d
call fcn.00642970
fcos
fstp dword [esp + 0x78]
fld dword [esp + 0x78]
fstp st(1)
fld dword [0x694ec4]
push dword [0x694dd8]
push 0x9c40
push dword [0x694de8]
push 0xff
push 0xff
push 0xff
push 0xff
push eax
fmul st(4)
fstp dword [esp]
push eax
fld dword [0x694ec8]
fmul st(3)
fstp dword [esp]
push eax
fld dword [0x694ec8]
fmul st(2)
fstp dword [esp]
fld dword [0x694ec8]
push eax
fmul st(1)
fstp dword [esp]
lea edx, [esp + 0xb0]
mov eax, dword [0x9786cc]
push edx
fcompp
fcompp
push eax
push 1
call fcn.0056ec70
add esp, 0x38
mov ecx, ebx
call fcn.004885d0
test al, al
je 0x53e305
mov al, byte [ebx + 0x152]
and al, 0x7f
or al, 0x80
mov byte [ebx + 0x152], al
jmp 0x53e319
push ebx
call fcn.004db330
test ebx, ebx
pop ecx
je 0x53e319
push 1
mov ecx, ebx
mov esi, dword [ecx]
call dword [esi + 8]
sub dword [esp + 0x14], 0x6d8
sub dword [esp + 8], 1
jae 0x53db60
add esp, 0xa0
pop ebp
pop edi
pop esi
pop ebx
ret
fcompp
fcompp
jmp 0x53d8a1
fcompp
fcompp
jmp 0x53d8b5
fcompp
fcompp
jmp 0x53da1f
fcompp
fcompp
jmp 0x53da1f
fcompp
fcompp
jmp 0x53da1f
fcompp
fcompp
jmp 0x53da1f
fcompp
fcompp
jmp 0x53da1f
fcompp
fstp st(0)
jmp 0x53db24
fcompp
fstp st(0)
jmp 0x53db24
fcompp
fstp st(0)
jmp 0x53db24
fstp st(0)
jmp 0x53dd4a
fstp st(0)
jmp 0x53de2a
fstp st(0)
jmp 0x53defa
fcompp
fcompp
jmp 0x53e2e8