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

Disassembly:
mov eax, dword [0x97f2ac]
push ebx
push esi
push edi
push ebp
mov si, word [0xa0d898]
sub esp, 0xa0
mov dword [esp + 0x24], eax
mov eax, dword [0x97f25c]
and esi, 0x1f
mov dword [esp + 0x1c], eax
mov eax, dword [0x94dbe0]
mov dword [esp + 4], eax
movzx eax, byte [0xa10afb]
push eax
call fcn.004bc0a0
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 0x53da0b
mov eax, dword [esp + 4]
mov ebx, dword [eax + 4]
mov eax, dword [esp + 0x10]
movzx eax, byte [ebx + eax]
and eax, 0x80
je 0x53d750
xor edi, edi
jmp 0x53d75a
mov eax, dword [esp + 4]
mov edi, dword [eax]
add edi, dword [esp + 0x20]
test edi, edi
je 0x53d9ff
mov ecx, edi
call fcn.004e3e20
test al, al
fldz
fldz
fldz
fldz
je 0x53e330
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 0x53d8b2
movsx ebx, word [edi + 0x5c]
movzx eax, word [0x68e894]
cmp eax, ebx
je 0x53d819
movzx eax, word [0x68e9c0]
cmp eax, ebx
jne 0x53d850
fcom dword [0x694eac]
fnstsw ax
test ah, 0x45
jne 0x53e340
fcompp
fcompp
push edi
call fcn.004db310
test edi, edi
pop ecx
je 0x53d9ff
mov ecx, edi
mov ebp, dword [ecx]
push 1
call dword [ebp + 8]
jmp 0x53d9ff
fcom dword [0x694eb0]
fnstsw ax
test ah, 0x45
je 0x53e320
fcom dword [0x694eb4]
fnstsw ax
test ah, 0x45
jne 0x53e317
fcompp
fcompp
mov ecx, edi
call fcn.004885d0
test al, al
je 0x53d895
mov eax, dword [edi + 0x180]
mov edx, dword [0x974b2c]
cmp edx, eax
jbe 0x53d9ff
push edi
call fcn.004db310
test edi, edi
pop ecx
je 0x53d9ff
mov ecx, edi
mov esi, dword [ecx]
push 1
call dword [esi + 8]
jmp 0x53d9ff
fcom dword [0x694eb8]
fnstsw ax
test ah, 0x45
jne 0x53e350
fld st(3)
fcomp dword [0x694eb8]
fnstsw ax
test ah, 0x45
jne 0x53e360
cmp cl, 4
je 0x53e370
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 + 0x92d4c8]
fcompp
fcompp
mov ebp, dword [eax + 0x1c]
lea eax, [esp + 0xb4]
push 0
push dword [ebp + 0xc]
push eax
call fcn.004d6370
add esp, 0x2c
cmp word [esp + 0x92], 0
je 0x53d948
xor al, al
jmp 0x53d94a
mov al, 1
test al, al
je 0x53d9ff
push 0x68
call fcn.004877b0
mov esi, eax
pop ecx
test esi, esi
je 0x53d96a
mov ecx, esi
push edi
call fcn.004e05d0
mov esi, eax
lea eax, [edi + 0x120]
lea ecx, [esi + 4]
push eax
call fcn.004df8c0
lea ecx, [esi + 4]
call fcn.004df8f0
mov ecx, esi
call fcn.00489360
movsx edx, word [edi + 0x5c]
mov eax, dword [edx*4 + 0x92d4c8]
mov ebp, eax
mov dword [esp + 0xc], eax
mov cl, byte [ebp + 0x19]
mov al, cl
cmp al, 1
je 0x53d9b0
cmp cl, 3
je 0x53d9b0
xor bl, bl
jmp 0x53d9c9
movzx eax, word [ebp + 0x42]
mov bl, 1
mov edx, eax
and edx, 0x2000
jne 0x53d9c9
and eax, 0x4000
jne 0x53d9c9
xor bl, bl
test bl, bl
je 0x53d9e4
mov eax, dword [esp + 0xc]
movzx eax, word [eax + 0x42]
and eax, 0x4000
jne 0x53d9e4
mov al, byte [esi + 0x52]
and al, 0xfb
mov byte [esi + 0x52], al
push edi
call fcn.004db310
test edi, edi
pop ecx
je 0x53d9f8
mov ecx, edi
mov ebx, dword [ecx]
push 1
call dword [ebx + 8]
push esi
call fcn.004db3f0
pop ecx
add dword [esp + 0x20], 0x1a0
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, dword [esp + 0x28]
jl 0x53d732
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 0x53db08
mov eax, dword [esp + 0x1c]
mov esi, dword [eax + 4]
movzx eax, byte [esi + ebp]
fldz
fldz
and eax, 0x80
fldz
je 0x53da74
xor ecx, ecx
jmp 0x53da7c
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
add ecx, edi
test ecx, ecx
je 0x53e380
mov al, byte [ecx + 0x5f]
movzx ebx, al
cmp ebx, dword [0x978810]
je 0x53da96
cmp al, 0xd
jne 0x53daa0
mov al, 1
jmp 0x53daa2
xor al, al
test al, al
je 0x53e390
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 0x53e3a0
fcompp
push ecx
fstp st(0)
call fcn.0053d340
pop ecx
add edi, 0x68
inc ebp
cmp ebp, dword [esp + 0x18]
jl 0x53da58
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx + 8]
mov dword [esp + 8], eax
sub dword [esp + 8], 1
jb 0x53e30c
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 0x53db60
xor ebx, ebx
jmp 0x53db6a
mov eax, dword [esp + 0x24]
mov ebx, dword [eax]
add ebx, dword [esp + 0x14]
test ebx, ebx
je 0x53e2f9
mov ecx, ebx
call fcn.004f4930
test al, al
jne 0x53e2f9
mov ecx, ebx
call fcn.004ffef0
test al, al
je 0x53e2f9
cmp byte [ebx + 0x3ac], 0
jne 0x53e2f9
mov edi, dword [0x974b2c]
sub edi, dword [ebx + 0x55c]
cmp dword [ebx + 0x244], 0x37
jne 0x53dbdb
cmp edi, 0x7530
jg 0x53dbcb
call fcn.00429fc0
test al, al
je 0x53dbdb
cmp edi, 0x3a98
jle 0x53dbdb
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 0x53dc10
mov eax, dword [ebx + 0x4c]
push eax
call fcn.005814f0
test eax, eax
pop ecx
jne 0x53dc10
push ebx
call fcn.004db310
test ebx, ebx
pop ecx
je 0x53e2f9
push 1
jmp 0x53e2f2
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 0x53dc63
cmp eax, 0xf
jg 0x53dc63
fld dword [esp + 0x34]
fsub dword [0x694e88]
jmp 0x53dc7f
mov al, byte [ebx + 0x156]
shr al, 6
and al, 1
je 0x53dc83
cmp dword [ebx + 0x3b8], 0
je 0x53dc83
fld dword [0x694e04]
fstp dword [esp + 0x34]
fcompp
call fcn.004bc1e0
test eax, eax
je 0x53dd20
call fcn.004bc1e0
fld dword [eax + 0x74]
fstp dword [esp + 0x4c]
call fcn.004bc1e0
fld dword [eax + 0x74]
fmul dword [esp + 0x4c]
fstp dword [esp + 0x60]
call fcn.004bc1e0
fld dword [eax + 0x70]
fstp dword [esp + 0x48]
call fcn.004bc1e0
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 0x53dcfb
fld dword [0x694dd8]
fstp st(1)
fld dword [0x694dd0]
fcomp st(1)
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x53dd15
fld dword [0x694dd0]
fstp st(1)
fst dword [esp + 0x3c]
jmp 0x53e3b0
fld dword [0x694dd8]
fstp dword [esp + 0x3c]
fld dword [0x694ebc]
fmul dword [0x7e477c]
fmul dword [esp + 0x3c]
fcomp dword [esp + 0x34]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x53dd51
mov byte [esp], 1
jmp 0x53df80
mov al, byte [ebx + 0x153]
shr al, 2
and al, 1
jne 0x53de31
call fcn.004bc1e0
test eax, eax
je 0x53de00
call fcn.004bc1e0
fld dword [eax + 0x74]
fstp dword [esp + 0x54]
call fcn.004bc1e0
fld dword [eax + 0x74]
fmul dword [esp + 0x54]
fstp dword [esp + 0x64]
call fcn.004bc1e0
fld dword [eax + 0x70]
fstp dword [esp + 0x50]
call fcn.004bc1e0
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 0x53ddd8
fld dword [0x694dd8]
fstp st(1)
fld dword [0x694dd0]
fcomp st(1)
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x53ddf2
fld dword [0x694dd0]
fstp st(1)
fst dword [esp + 0x40]
jmp 0x53e3b7
fld dword [0x694dd8]
fstp dword [esp + 0x40]
fld dword [0x694eb0]
fmul dword [esp + 0x40]
fmul dword [0x7e477c]
fcomp dword [esp + 0x34]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x53de31
mov byte [esp], 1
jmp 0x53df80
call fcn.004bc1e0
test eax, eax
je 0x53ded0
call fcn.004bc1e0
fld dword [eax + 0x74]
fstp dword [esp + 0x5c]
call fcn.004bc1e0
fld dword [eax + 0x74]
fmul dword [esp + 0x5c]
fstp dword [esp + 0x68]
call fcn.004bc1e0
fld dword [eax + 0x70]
fstp dword [esp + 0x58]
call fcn.004bc1e0
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 0x53dea7
fld dword [0x694dd8]
fstp st(1)
fld dword [0x694dd0]
fcomp st(1)
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x53dec1
fld dword [0x694dd0]
fstp st(1)
fst dword [esp + 0x44]
jmp 0x53e3c0
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 0x53df54
mov eax, dword [ebx + 0x35c]
mov edx, dword [0x974b2c]
cmp edx, eax
jbe 0x53df80
mov ecx, ebx
call fcn.004885d0
test al, al
jne 0x53df80
movzx ecx, byte [0x7e46fe]
imul ecx, ecx, 0x1cc
mov ax, word [ecx + 0x7e481c]
cmp ax, 7
je 0x53df80
cmp ax, 0x27
je 0x53df80
cmp ax, 0x2e
je 0x53df80
cmp byte [ecx + 0x7e4818], 0
jne 0x53df80
cmp byte [ecx + 0x7e4819], 0
jne 0x53df80
cmp byte [ecx + 0x7e4817], 0
jne 0x53df80
mov byte [esp], 1
jmp 0x53df80
cmp dword [ebx + 0x3d4], 6
jne 0x53df70
mov eax, dword [0x974b2c]
add eax, 0x2710
jmp 0x53df7a
mov eax, dword [0x974b2c]
add eax, 0xfa0
mov dword [ebx + 0x35c], eax
cmp byte [esp], 0
je 0x53e2f9
cmp dword [ebx + 0x244], 0x37
jne 0x53e2c8
mov al, byte [ebx + 0x152]
shr al, 7
test al, al
jne 0x53e2c8
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.006499f0
movzx eax, ax
and eax, 0xff
mov dword [esp + 0x78], eax
fild dword [esp + 0x78]
fmul dword [0x694ec0]
fstp dword [esp + 0x38]
call fcn.006499f0
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.0x53e002
jmp dword [edi*4 + 0x695064]
fld dword [esp + 0x38]
fcos
fnstsw ax
test eax, 0x400
je 0x53e01f
call fcn.00642920
fcos
fstp dword [esp + 0x78]
fld dword [esp + 0x78]
fstp st(4)
fld dword [esp + 0x38]
fsin
fnstsw ax
test eax, 0x400
je 0x53e03f
call fcn.00642920
fsin
fstp dword [esp + 0x78]
fld dword [esp + 0x78]
fstp st(3)
fld dword [esp + 0x38]
fsin
fnstsw ax
test eax, 0x400
je 0x53e05f
call fcn.00642920
fsin
fstp dword [esp + 0x78]
fld dword [esp + 0x78]
fstp st(2)
fld dword [esp + 0x38]
fcos
fnstsw ax
test eax, 0x400
je 0x53e07f
call fcn.00642920
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 [0x9786e4]
push esi
jmp 0x53e2b9
fld dword [esp + 0x38]
fcos
fnstsw ax
test eax, 0x400
je 0x53e106
call fcn.00642920
fcos
fstp dword [esp + 0x78]
fld dword [esp + 0x78]
fstp st(4)
fld dword [esp + 0x38]
fsin
fnstsw ax
test eax, 0x400
je 0x53e126
call fcn.00642920
fsin
fstp dword [esp + 0x78]
fld dword [esp + 0x78]
fstp st(3)
fld dword [esp + 0x38]
fsin
fnstsw ax
test eax, 0x400
je 0x53e146
call fcn.00642920
fsin
fstp dword [esp + 0x78]
fld dword [esp + 0x78]
fstp st(2)
fld dword [esp + 0x38]
fcos
fnstsw ax
test eax, 0x400
je 0x53e166
call fcn.00642920
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 [0x9786bc]
push edi
jmp 0x53e2b9
fld dword [esp + 0x38]
fcos
fnstsw ax
test eax, 0x400
je 0x53e1ed
call fcn.00642920
fcos
fstp dword [esp + 0x78]
fld dword [esp + 0x78]
fstp st(4)
fld dword [esp + 0x38]
fsin
fnstsw ax
test eax, 0x400
je 0x53e20d
call fcn.00642920
fsin
fstp dword [esp + 0x78]
fld dword [esp + 0x78]
fstp st(3)
fld dword [esp + 0x38]
fsin
fnstsw ax
test eax, 0x400
je 0x53e22d
call fcn.00642920
fsin
fstp dword [esp + 0x78]
fld dword [esp + 0x78]
fstp st(2)
fld dword [esp + 0x38]
fcos
fnstsw ax
test eax, 0x400
je 0x53e24d
call fcn.00642920
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 [0x9786c4]
push edx
fcompp
fcompp
push eax
push 1
call fcn.0056ec50
add esp, 0x38
mov ecx, ebx
call fcn.004885d0
test al, al
je 0x53e2e5
mov al, byte [ebx + 0x152]
and al, 0x7f
or al, 0x80
mov byte [ebx + 0x152], al
jmp 0x53e2f9
push ebx
call fcn.004db310
test ebx, ebx
pop ecx
je 0x53e2f9
push 1
mov ecx, ebx
mov esi, dword [ecx]
call dword [esi + 8]
sub dword [esp + 0x14], 0x6d8
sub dword [esp + 8], 1
jae 0x53db40
add esp, 0xa0
pop ebp
pop edi
pop esi
pop ebx
ret
fcompp
fcompp
jmp 0x53d881
fcompp
fcompp
jmp 0x53d895
fcompp
fcompp
jmp 0x53d9ff
fcompp
fcompp
jmp 0x53d9ff
fcompp
fcompp
jmp 0x53d9ff
fcompp
fcompp
jmp 0x53d9ff
fcompp
fcompp
jmp 0x53d9ff
fcompp
fstp st(0)
jmp 0x53db04
fcompp
fstp st(0)
jmp 0x53db04
fcompp
fstp st(0)
jmp 0x53db04
fstp st(0)
jmp 0x53dd2a
fstp st(0)
jmp 0x53de0a
fstp st(0)
jmp 0x53deda
fcompp
fcompp
jmp 0x53e2c8