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

Disassembly:
push ebx
push esi
push edi
push ebp
sub esp, 0x1b0
or dword [esp + 0x9c], 0xffffffff
or dword [esp + 0xa0], 0xffffffff
cmp byte [0x7091b8], 0
mov dword [esp + 0x10], 0
mov byte [esp + 0x1c], 0
jne 0x53bac1
mov byte [0x7091b8], 1
mov dword [0x7091b4], 0
movzx ebx, byte [0xa10afb]
movzx eax, byte [0xa10afb]
mov byte [esp + 0x28], 0
mov byte [esp + 0x24], 0
imul ebx, ebx, 0x170
push eax
add ebx, 0x94ad28
call fcn.004bc0a0
fld dword [eax]
fstp dword [esp + 0xa8]
fld dword [eax + 4]
lea edx, [esp + 0xcc]
pop ecx
fstp dword [esp + 0xa8]
fld dword [eax + 8]
lea eax, [esp + 0xa4]
push edx
push eax
fstp dword [esp + 0xb4]
call fcn.004dc500
pop ecx
pop ecx
call fcn.004bc120
mov eax, dword [eax + 0x5f4]
mov ebp, dword [eax + 0x20]
cmp ebp, 2
jle 0x53bdcd
cmp dword [0x978810], 0
jne 0x53bb5b
call fcn.006499f0
movzx eax, ax
and eax, 0x1f
jne 0x53bb5b
call fcn.004bc1e0
test eax, eax
je 0x53bb5b
mov byte [esp + 0x24], 1
cmp dword [0x978810], 0
jne 0x53bb71
mov ecx, dword [ebx]
mov eax, dword [ecx + 0x5f4]
mov dl, byte [eax + 0x19]
jmp 0x53bbbc
mov esi, dword [ebx]
mov ebp, dword [esi + 0x5f4]
mov al, byte [ebp + 0x19]
and eax, 0xff
mov dword [esp + 0x90], eax
fild dword [esp + 0x90]
fmul dword [0x694e74]
fnstcw word [esp + 0x30]
mov eax, dword [esp + 0x30]
or byte [esp + 0x31], 0xc
fldcw word [esp + 0x30]
mov dword [esp + 0x30], eax
fistp dword [esp + 0x90]
fldcw word [esp + 0x30]
mov edx, dword [esp + 0x90]
movzx eax, dl
cmp dword [0x94ddcc], eax
jl 0x53bbd2
cmp byte [esp + 0x24], 0
je 0x53bdcd
mov ecx, dword [ebx]
cmp byte [ecx + 0x3ac], 0
jne 0x53bc49
mov edx, dword [ecx + 0x5f4]
movzx eax, byte [edx + 0x1a]
cmp dword [0x978718], eax
jge 0x53bc54
mov ax, word [ebx + 0x128]
and eax, 0xffff
mov dword [esp + 0x90], eax
fild dword [esp + 0x90]
fmul dword [0x686fc8]
fild dword [0xa1029c]
fcompp
fnstsw ax
test ah, 5
je 0x53bc54
mov eax, dword [0xa1029c]
add eax, dword [0x978718]
add eax, dword [0x978734]
add eax, dword [0x978d88]
add eax, dword [0x974be4]
add eax, dword [0xa0d240]
cmp eax, dword [0x686fcc]
jge 0x53bc54
cmp byte [esp + 0x24], 0
je 0x53bdcd
mov byte [esp + 0x1c], 1
call fcn.004bc1e0
test eax, eax
je 0x53bcf8
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 + 0x70]
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 + 0x70]
fsqrt
fstp dword [esp + 0x90]
fld dword [esp + 0x90]
fstp st(1)
fsub dword [0x694dd4]
fadd dword [0x694dd8]
fld dword [0x694dd8]
fcomp st(1)
fnstsw ax
test ah, 0x45
jne 0x53bcd5
fld dword [0x694dd8]
fstp st(1)
fld dword [0x694dd0]
fcomp st(1)
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x53bcef
fld dword [0x694dd0]
fstp st(1)
fst dword [esp + 0x4c]
jmp 0x53cf40
fld dword [0x694dd8]
fstp dword [esp + 0x4c]
fld dword [0x694ddc]
fmul dword [esp + 0x4c]
fstp dword [esp + 0x1c4]
call fcn.004bc1e0
test eax, eax
je 0x53bdb2
call fcn.004bc1e0
fld dword [eax + 0x74]
fstp dword [esp + 0x64]
call fcn.004bc1e0
fld dword [eax + 0x74]
fmul dword [esp + 0x64]
fstp dword [esp + 0x74]
call fcn.004bc1e0
fld dword [eax + 0x70]
fstp dword [esp + 0x60]
call fcn.004bc1e0
fldz
fld dword [eax + 0x70]
fmul dword [esp + 0x60]
fadd dword [esp + 0x74]
fsqrt
fstp dword [esp + 0x90]
fld dword [esp + 0x90]
fstp st(1)
fsub dword [0x694dd4]
fadd dword [0x694dd8]
fld dword [0x694dd8]
fcomp st(1)
fnstsw ax
test ah, 0x45
jne 0x53bd8f
fld dword [0x694dd8]
fstp st(1)
fld dword [0x694dd0]
fcomp st(1)
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x53bda9
fld dword [0x694dd0]
fstp st(1)
fst dword [esp + 0x50]
jmp 0x53cf47
fld dword [0x694dd8]
fstp dword [esp + 0x50]
fld dword [0x694e78]
fmul dword [esp + 0x50]
fstp dword [esp + 0x1c8]
fldz
fld dword [0x975340]
fsqrt
fstp dword [esp + 0x90]
fld dword [esp + 0x90]
fstp st(1)
fld dword [0x694e7c]
fmul st(1)
fadd dword [0x694dd8]
fstp dword [esp + 0x38]
fstp st(0)
call fcn.0044fe30
test al, al
je 0x53be4a
call fcn.004bc120
test eax, eax
je 0x53be4a
cmp byte [eax + 0x3ac], 0
je 0x53be4a
mov edx, dword [eax + 0x3a8]
test edx, edx
je 0x53be4a
movsx eax, word [edx + 0x5c]
cmp eax, 0x96
je 0x53be40
cmp eax, 0xa8
je 0x53be40
cmp eax, 0xbc
je 0x53be40
cmp eax, 0xd8
jne 0x53be4a
fld dword [0x694dd8]
fstp dword [esp + 0x38]
call fcn.00429fc0
test al, al
je 0x53be5d
fld dword [0x694dd8]
fstp dword [esp + 0x38]
cmp dword [0x978810], 0
jne 0x53be70
mov esi, dword [0x694dc8]
jmp 0x53be76
mov esi, dword [0x694dcc]
fld dword [0x6dba00]
fstp dword [esp + 0x3c]
call fcn.00429fc0
test al, al
fldz
je 0x53be95
fld dword [0x694dd8]
fstp dword [esp + 0x3c]
movzx ebp, word [esp + 0xc8]
movzx eax, word [esp + 0xf4]
add ebp, eax
mov dword [esp + 0x90], ebp
fild dword [esp + 0x90]
fmul dword [ebx + 0x12c]
fmul dword [0x694dc0]
fmul dword [esp + 0x3c]
fmul dword [esp + 0x38]
mov dword [esp + 0x90], esi
fstp st(1)
fild dword [esp + 0x90]
fcomp st(1)
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x53bef5
mov dword [esp + 0x90], esi
fild dword [esp + 0x90]
fstp st(1)
fld st(0)
fnstcw word [esp + 0x30]
mov eax, dword [esp + 0x30]
or byte [esp + 0x31], 0xc
fldcw word [esp + 0x30]
mov dword [esp + 0x30], eax
fistp dword [esp + 0x90]
fldcw word [esp + 0x30]
mov eax, dword [esp + 0x90]
cmp dword [0xa1069c], eax
jl 0x53bf31
cmp byte [esp + 0x1c], 0
je 0x53cf77
fstp st(0)
call fcn.006499f0
and eax, 0xffff
mov dword [esp + 0x90], eax
fild dword [esp + 0x90]
fmul dword [0x694de4]
fmul dword [0x694e80]
fnstcw word [esp + 0x30]
mov eax, dword [esp + 0x30]
or byte [esp + 0x31], 0xc
fldcw word [esp + 0x30]
mov dword [esp + 0x30], eax
fistp dword [esp + 0x90]
fldcw word [esp + 0x30]
mov eax, dword [esp + 0x90]
cmp ax, word [esp + 0x108]
jb 0x53bf8f
cmp byte [esp + 0x1c], 0
je 0x53bfb0
mov dword [esp + 0x20], 6
call fcn.006499f0
mov dword [esp + 0x18], 0
jmp 0x53c1c7
xor ebp, ebp
cmp ax, word [esp + ebp*2 + 0xf6]
jae 0x53bfe0
mov dword [esp + 0x20], ebp
add dword [esp + 0x20], 7
cmp dword [esp + 0x20], 0xb
jne 0x53bfd3
mov byte [esp + 0x28], 1
jmp 0x53bfe6
mov byte [esp + 0x28], 0
jmp 0x53bfe6
inc ebp
cmp ebp, 9
jl 0x53bfb2
cmp ebp, 9
je 0x53bff6
cmp byte [esp + 0x28], 0
je 0x53c1c7
cmp byte [esp + 0x28], 0
jne 0x53c090
call fcn.006499f0
and eax, 0xffff
mov dword [esp + 0x90], eax
fild dword [esp + 0x90]
fmul dword [0x694de4]
fmul dword [0x694dd8]
fadd dword [0x694e04]
fcomp dword [0x694e84]
fnstsw ax
test ah, 0x45
jne 0x53c090
lea eax, [esp + 0xa0]
lea ecx, [esp + 0x9c]
push eax
push ecx
movzx eax, word [esp + 0x112]
push eax
call fcn.0053ae90
add esp, 0xc
cmp dword [esp + 0x9c], 0xffffffff
je 0x53c06d
cmp dword [esp + 0xa0], 0xffffffff
jne 0x53c078
add esp, 0x1b0
pop ebp
pop edi
pop esi
pop ebx
ret
mov eax, dword [esp + 0x9c]
mov edx, dword [eax*4 + 0x92d4c8]
mov eax, dword [edx + 0x34]
jmp 0x53c1c3
cmp byte [esp + 0x28], 0
je 0x53c0b0
add dword [esp + 0x20], 0xfffffff9
push dword [esp + 0x20]
call fcn.004eed20
mov dword [esp + 0x1c], eax
pop ecx
jmp 0x53c1a3
fld dword [0x975340]
fcomp dword [0x694dd4]
fnstsw ax
movzx ebx, word [esp + 0x10a]
test ah, 0x45
jne 0x53c140
xor ebp, ebp
shl ebx, 4
mov al, 1
jmp 0x53c135
call fcn.006499f0
and eax, 0xffff
inc ebp
mov dword [esp + 0x90], eax
fild dword [esp + 0x90]
fmul dword [0x694de4]
fmul dword [0x694dfc]
fnstcw word [esp + 0x30]
mov eax, dword [esp + 0x30]
or byte [esp + 0x31], 0xc
fldcw word [esp + 0x30]
mov dword [esp + 0x30], eax
fistp dword [esp + 0x90]
fldcw word [esp + 0x30]
mov eax, dword [esp + 0x90]
mov dword [0x7091d0], eax
add eax, ebx
mov edi, dword [eax*4 + 0x7d4120]
push edi
call fcn.0053a6f0
pop ecx
test al, al
je 0x53c19f
cmp ebp, 8
jl 0x53c0d4
jmp 0x53c19f
call fcn.006499f0
and eax, 0xffff
mov dword [esp + 0x90], eax
fild dword [esp + 0x90]
fmul dword [0x694de4]
fmul dword [0x694dfc]
fnstcw word [esp + 0x30]
mov eax, dword [esp + 0x30]
or byte [esp + 0x31], 0xc
fldcw word [esp + 0x30]
mov dword [esp + 0x30], eax
mov eax, ebx
fistp dword [esp + 0x90]
fldcw word [esp + 0x30]
shl eax, 4
mov edi, dword [esp + 0x90]
add eax, edi
mov dword [0x7091d0], edi
mov edi, dword [eax*4 + 0x7d4120]
mov dword [esp + 0x18], edi
cmp dword [esp + 0x18], 0xffffffff
jne 0x53c1b5
add esp, 0x1b0
pop ebp
pop edi
pop esi
pop ebx
ret
mov eax, dword [esp + 0x18]
mov ecx, dword [eax*4 + 0x92d4c8]
mov eax, dword [ecx + 0x34]
mov dword [esp + 0x20], eax
cmp byte [esp + 0x1c], 0
jne 0x53c1e0
cmp dword [0x694dc4], 0
jle 0x53c1e0
mov eax, dword [0x694dc4]
mov dword [esp + 0x20], eax
cmp dword [esp + 0x20], 7
jl 0x53c250
cmp dword [esp + 0x20], 0xf
jg 0x53c250
cmp byte [esp + 0x28], 0
jne 0x53c250
call fcn.006499f0
and eax, 0xffff
mov dword [esp + 0x90], eax
fild dword [esp + 0x90]
fmul dword [0x694de4]
fmul dword [0x694e00]
fnstcw word [esp + 0x30]
mov eax, dword [esp + 0x30]
or byte [esp + 0x31], 0xc
fldcw word [esp + 0x30]
mov dword [esp + 0x30], eax
fistp dword [esp + 0x90]
fldcw word [esp + 0x30]
mov eax, dword [esp + 0x90]
mov dword [esp + 0x14], eax
add dword [esp + 0x14], 3
jmp 0x53c258
mov dword [esp + 0x14], 1
fldz
fldz
fld dword [esp + 0x1c4]
fstp st(2)
fld dword [esp + 0x1c8]
cmp dword [esp + 0x20], 7
fstp st(1)
jl 0x53c291
cmp dword [esp + 0x20], 0xf
jg 0x53c291
cmp byte [esp + 0x28], 0
jne 0x53c291
fld dword [0x694e88]
faddp st(2)
fadd dword [0x694e88]
mov eax, dword [esp + 0xc]
lea edx, [esp + 0xc4]
xor eax, dword [esp + 0xc]
lea esi, [esp + 0xbc]
mov dword [esp + 0xc], eax
lea eax, [esp + 0xc0]
push 0
push edx
push eax
lea eax, [esp + 0xbc]
push esi
push eax
mov ecx, 0x9b6e5c
push dword [esp + 0x1e4]
push dword [esp + 0x1e4]
push eax
xor ebx, ebx
fst dword [esp]
push eax
fld st(1)
fstp dword [esp]
fcompp
push dword [esp + 0xcc]
push dword [esp + 0xcc]
call fcn.00437b10
test al, al
jne 0x53c2ff
mov dword [esp + 0xc], 1
cmp byte [esp + 0xc], 0
jne 0x53c30b
mov ebx, 1
test bl, bl
je 0x53cf32
mov eax, dword [esp + 0xc0]
lea eax, [eax + eax*4]
mov dl, byte [eax*4 + 0x9b6e6e]
mov eax, dword [esp + 0xbc]
lea eax, [eax + eax*4]
and dl, 0xf
mov bl, byte [eax*4 + 0x9b6e6e]
and bl, 0xf
cmp bl, dl
jb 0x53c341
mov bl, dl
call fcn.006499f0
movzx edi, ax
movzx eax, bl
and edi, 0xf
cmp edi, eax
jg 0x53cf32
call fcn.006499f0
lea ecx, [esp + 0xb0]
lea ebp, [esp + 0xb4]
mov edx, dword [esp + 0xc0]
push ebp
push ecx
push eax
mov eax, dword [esp + 0xc8]
lea edx, [edx + edx*4]
lea eax, [eax + eax*4]
lea edx, [edx*4]
lea eax, [eax*4]
add edx, 0x9b6e5c
add eax, 0x9b6e5c
push edx
push eax
call fcn.00435140
add esp, 0x14
cmp dword [0x978810], 4
jne 0x53c414
mov eax, dword [esp + 0x20]
add eax, 0xfffffffc
cmp eax, 1
jbe 0x53c3c0
cmp dword [esp + 0x20], 0x12
jne 0x53c414
call fcn.006499f0
and eax, 0xffff
mov dword [esp + 0x90], eax
fild dword [esp + 0x90]
fmul dword [0x694de4]
fmul dword [0x694dd8]
fadd dword [0x694e04]
fcomp dword [0x694df0]
fnstsw ax
test ah, 0x45
jne 0x53c414
movzx esi, word [esp + 0x10a]
lea eax, [esp + 0xb0]
push esi
push eax
call fcn.00538e90
pop ecx
pop ecx
jmp 0x53cf32
cmp dword [esp + 0x20], 7
jl 0x53c4a1
cmp dword [esp + 0x20], 0xf
jg 0x53c4a1
cmp byte [esp + 0x28], 0
jne 0x53c4a1
call fcn.006499f0
and eax, 0xffff
mov dword [esp + 0x90], eax
fild dword [esp + 0x90]
fmul dword [0x694de4]
fmul dword [0x694dd8]
fadd dword [0x694e04]
fcomp dword [0x694e08]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x53c484
lea eax, [esp + 0xb0]
push eax
push dword [esp + 0x18]
push dword [esp + 0x28]
call fcn.00539fc0
add esp, 0xc
jmp 0x53cf32
lea eax, [esp + 0xb0]
push eax
push dword [esp + 0x18]
push dword [esp + 0x28]
call fcn.005397f0
add esp, 0xc
jmp 0x53cf32
cmp dword [esp + 0x9c], 0
jl 0x53c4f0
cmp dword [esp + 0xa0], 0
jl 0x53c4f0
mov eax, dword [esp + 0xa0]
push dword [esp + 0xb8]
push dword [esp + 0xb8]
push dword [esp + 0xb8]
push eax
mov eax, dword [esp + 0xac]
push 5
push eax
push 4
call fcn.005388f0
add esp, 0x1c
jmp 0x53cf32
cmp dword [esp + 0x14], 0
mov dword [esp + 4], 0
jle 0x53cf32
mov eax, dword [esp + 0x18]
mov dword [esp + 0x2c], eax
mov dword [esp + 8], eax
nop
cmp dword [esp + 0x20], 6
jne 0x53c600
cmp dword [esp + 0x18], 0
jne 0x53c540
cmp byte [0x94ddec], 1
je 0x53c620
add esp, 0x1b0
pop ebp
pop edi
pop esi
pop ebx
ret
cmp dword [esp + 0x18], 1
jne 0x53c577
cmp byte [0x94de14], 1
jne 0x53c56c
push 0x19
call fcn.005d5710
mov eax, dword [eax + 0x54]
pop ecx
lea eax, [eax + eax*4]
cmp byte [eax*4 + 0x94ddd8], 1
je 0x53c620
add esp, 0x1b0
pop ebp
pop edi
pop esi
pop ebx
ret
cmp dword [esp + 0x18], 2
jne 0x53c5b0
cmp byte [0x94de00], 1
jne 0x53c5a3
push 0x17
call fcn.005d5710
mov eax, dword [eax + 0x54]
pop ecx
lea eax, [eax + eax*4]
cmp byte [eax*4 + 0x94ddd8], 1
je 0x53c620
add esp, 0x1b0
pop ebp
pop edi
pop esi
pop ebx
ret
cmp dword [esp + 0x18], 4
jne 0x53c620
cmp byte [0x94de28], 1
jne 0x53c5f0
push 0x19
call fcn.005d5710
mov eax, dword [eax + 0x54]
pop ecx
lea eax, [eax + eax*4]
cmp byte [eax*4 + 0x94ddd8], 1
jne 0x53c5f0
push 0xc
call fcn.005d5710
mov eax, dword [eax + 0x54]
pop ecx
lea eax, [eax + eax*4]
cmp byte [eax*4 + 0x94ddd8], 1
je 0x53c620
add esp, 0x1b0
pop ebp
pop edi
pop esi
pop ebx
ret
mov eax, dword [esp + 8]
mov ecx, dword [eax*4 + 0x92d4c8]
mov ebp, dword [ecx]
call dword [ebp + 0x14]
test eax, eax
jne 0x53c620
add esp, 0x1b0
pop ebp
pop edi
pop esi
pop ebx
ret
fld dword [esp + 0xb8]
fadd dword [0x694e8c]
mov eax, dword [esp + 4]
cmp eax, dword [esp + 0x14]
fstp dword [esp + 0xb8]
jge 0x53c75d
call fcn.006499f0
cmp dword [esp + 0x10], 0
je 0x53c75d
call fcn.006499f0
mov ecx, dword [esp + 4]
and eax, 0xffff
mov dword [esp + 0x90], ecx
mov ecx, dword [esp + 4]
fild dword [esp + 0x90]
mov dword [esp + 0x90], ecx
fmul dword [0x694e90]
fstp dword [esp + 0x88]
fild dword [esp + 0x90]
mov dword [esp + 0x90], eax
fadd dword [0x694dd8]
fmul dword [0x694e90]
fsub dword [esp + 0x88]
fstp dword [esp + 0x8c]
fild dword [esp + 0x90]
fmul dword [0x694de4]
fmul dword [esp + 0x8c]
fadd dword [esp + 0x88]
fstp dword [esp + 0x78]
mov eax, dword [esp + 0x78]
mov dword [esp + 0x40], eax
call fcn.006499f0
and eax, 0xffff
mov dword [esp + 0x90], eax
fild dword [esp + 0x90]
fmul dword [0x694de4]
fmul dword [esp + 0x8c]
fadd dword [esp + 0x88]
fstp dword [esp + 0x7c]
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x44], eax
call fcn.006499f0
movzx eax, ax
and eax, 1
je 0x53c724
fld dword [esp + 0x78]
fchs
fstp dword [esp + 0x40]
call fcn.006499f0
movzx eax, ax
and eax, 1
je 0x53c73b
fld dword [esp + 0x7c]
fchs
fstp dword [esp + 0x44]
mov eax, dword [esp + 0x10]
fld dword [esp + 0x40]
add eax, 0x34
fadd dword [eax]
fstp dword [esp + 0xb0]
fld dword [esp + 0x44]
fadd dword [eax + 4]
fstp dword [esp + 0xb4]
lea eax, [esp + 0xb0]
push 0
push 0xffffffffffffffff
push dword [0x694e94]
push eax
call fcn.0052fbd0
add esp, 0x10
test al, al
je 0x53cf10
mov eax, dword [esp + 4]
inc eax
cmp eax, dword [esp + 0x14]
jge 0x53c7fd
fld dword [0x694e40]
fadd dword [esp + 0xb8]
lea eax, [esp + 0x10f]
push eax
push eax
fstp dword [esp]
push dword [esp + 0xbc]
push dword [esp + 0xbc]
call fcn.004d53a0
fadd dword [0x694e8c]
add esp, 0x10
cmp byte [esp + 0x10f], 0
fstp dword [esp + 0x34]
jne 0x53c7d8
add esp, 0x1b0
pop ebp
pop edi
pop esi
pop ebx
ret
fldz
fld dword [esp + 0xb8]
fst st(1)
fcomp dword [esp + 0x34]
fnstsw ax
test ah, 0x45
je 0x53c7f4
fld dword [esp + 0x34]
fstp st(1)
fst dword [esp + 0xb8]
fstp st(0)
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0xb4]
mov dword [esp + 0x1a4], eax
mov eax, dword [esp + 0xb8]
lea edx, [esp + 0x1a4]
mov dword [esp + 0x1ac], eax
lea eax, [esp + 0x1a4]
mov bl, 1
push 0x7e4ea8
push 1
push edx
push eax
mov dword [esp + 0x1b8], ecx
call fcn.00647160
fldz
fldz
fld dword [esp + 0x1b8]
fstp st(2)
add esp, 0x10
fld st(1)
fadd dword [0x694e40]
fcomp dword [0x978534]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x53c874
xor al, al
jmp 0x53c935
fld st(1)
fsub dword [0x694e40]
fcomp dword [0xa10678]
fnstsw ax
test ah, 0x45
jne 0x53c890
xor al, al
jmp 0x53c935
fld st(1)
fmul dword [0x7e4f44]
fld dword [esp + 0x1a4]
fmul dword [0x7e4f40]
faddp st(1)
fcomp dword [0x694e40]
fnstsw ax
test ah, 0x45
jne 0x53c8b8
xor al, al
jmp 0x53c935
fld st(1)
fmul dword [0x7e4f50]
fld dword [esp + 0x1a4]
fmul dword [0x7e4f4c]
faddp st(1)
fcomp dword [0x694e40]
fnstsw ax
test ah, 0x45
jne 0x53c8e0
xor al, al
jmp 0x53c935
fld dword [esp + 0x1ac]
fst st(1)
fmul dword [0x7e4f60]
fld st(2)
fmul dword [0x7e4f5c]
faddp st(1)
fcomp dword [0x694e40]
fnstsw ax
test ah, 0x45
jne 0x53c910
xor al, al
jmp 0x53c935
fld st(0)
fmul dword [0x7e4f6c]
fld st(2)
fmul dword [0x7e4f68]
faddp st(1)
fcomp dword [0x694e40]
fnstsw ax
test ah, 0x45
jne 0x53c933
xor al, al
jmp 0x53c935
mov al, 1
test al, al
je 0x53cf57
fld dword [esp + 0xb0]
fsub dword [esp + 0xa4]
fstp st(1)
fld dword [esp + 0xb4]
fsub dword [esp + 0xa8]
fstp st(2)
fld st(1)
fmul st(0)
fld st(1)
fmul st(0)
faddp st(1)
fsqrt
fstp dword [esp + 0x90]
mov eax, dword [esp + 0x90]
fcompp
mov dword [esp + 0x80], eax
call fcn.004bc1e0
test eax, eax
je 0x53ca25
call fcn.004bc1e0
fld dword [eax + 0x74]
fstp dword [esp + 0x6c]
call fcn.004bc1e0
fld dword [eax + 0x74]
fmul dword [esp + 0x6c]
fstp dword [esp + 0x84]
call fcn.004bc1e0
fld dword [eax + 0x70]
fstp dword [esp + 0x68]
call fcn.004bc1e0
fldz
fld dword [eax + 0x70]
fmul dword [esp + 0x68]
fadd dword [esp + 0x84]
fsqrt
fstp dword [esp + 0x90]
fld dword [esp + 0x90]
fstp st(1)
fsub dword [0x694dd4]
fadd dword [0x694dd8]
fld dword [0x694dd8]
fcomp st(1)
fnstsw ax
test ah, 0x45
jne 0x53ca02
fld dword [0x694dd8]
fstp st(1)
fld dword [0x694dd0]
fcomp st(1)
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x53ca1c
fld dword [0x694dd0]
fstp st(1)
fst dword [esp + 0x54]
jmp 0x53cf50
fld dword [0x694dd8]
fstp dword [esp + 0x54]
fld dword [0x694ddc]
fmul dword [esp + 0x54]
fcomp dword [esp + 0x80]
fnstsw ax
test ah, 0x45
jne 0x53cf60
xor bl, bl
fldz
mov eax, dword [esp + 8]
mov eax, dword [eax*4 + 0x92d4c8]
mov edx, dword [eax + 0x38]
cmp edx, 0x25
jne 0x53cf67
fld dword [esp + 0xb0]
fadd dword [0x694e04]
lea eax, [esp + 0x17c]
mov dword [esp + 0x178], 0
lea esi, [esp + 0x178]
fstp dword [esp + 0x16c]
fld dword [esp + 0xb4]
fadd dword [0x694e04]
push 0
push 0
fstp dword [esp + 0x178]
fld dword [esp + 0xc0]
fst st(1)
fadd dword [0x694e40]
push 0
push 0
fstp dword [esp + 0x184]
fld st(0)
fsub dword [0x694e40]
push 0
push 0
push 1
push esi
push eax
push eax
fstp dword [esp]
lea eax, [esp + 0x194]
push eax
fstp st(0)
call fcn.004d8b00
add esp, 0x2c
cmp dword [esp + 0x178], 0
je 0x53cb20
mov al, byte [esp + 0x19e]
cmp al, 1
jne 0x53cb04
mov al, 1
jmp 0x53cb12
cmp al, 5
jne 0x53cb10
mov al, 1
jmp 0x53cb12
xor al, al
test al, al
jne 0x53cb24
xor bl, bl
jmp 0x53cb26
xor bl, bl
jmp 0x53cb26
mov bl, 1
test bl, bl
je 0x53cf01
lea eax, [esp + 0xb0]
push 0
push eax
push dword [esp + 0x20]
push dword [esp + 0x2c]
call fcn.0053b600
add esp, 0x10
cmp byte [esp + 0x24], 0
mov ebp, eax
je 0x53cb61
cmp dword [ebp + 0x3d4], 6
jne 0x53cb61
mov byte [ebp + 0x60c], 1
push dword [esp + 0x2c]
xor bl, bl
call fcn.0053a6f0
test al, al
pop ecx
fldz
je 0x53cf70
fld dword [esp + 0xb0]
fadd dword [0x694e04]
lea eax, [esp + 0x110]
mov dword [esp + 0x138], 0
lea ecx, [esp + 0x138]
fstp dword [esp + 0x154]
fld dword [esp + 0xb4]
fadd dword [0x694e04]
push 0
push 0
fstp dword [esp + 0x160]
fld dword [esp + 0xc0]
fst st(1)
fadd dword [0x694e40]
push 0
push 0
fstp dword [esp + 0x16c]
fld st(0)
fsub dword [0x694e40]
push 0
push 0
push 1
push ecx
push eax
push eax
fstp dword [esp]
lea eax, [esp + 0x17c]
push eax
fstp st(0)
call fcn.004d8b00
add esp, 0x2c
cmp dword [esp + 0x138], 0
je 0x53cc9d
mov al, byte [esp + 0x132]
cmp al, 0x22
je 0x53cc1d
cmp al, 0x12
jne 0x53cc9d
cmp byte [0xa10b6b], 0xa
jb 0x53cc9d
cmp byte [0xa10b6b], 0x12
ja 0x53cc9d
fld dword [0x694e04]
fcomp dword [0x975340]
fnstsw ax
and ah, 0x44
cmp ah, 0x40
jne 0x53cc9d
mov eax, dword [0x7091c0]
mov edi, dword [0x7091bc]
mov dword [esp + 0x140], eax
mov dword [esp + 0x13c], edi
lea eax, [esp + 0x13c]
mov bl, 1
push eax
lea eax, [esp + 0xb4]
push 2
push dword [0x694e00]
push eax
call fcn.0052fbd0
add esp, 0x10
test al, al
je 0x53cc9d
xor eax, eax
mov esi, dword [esp + eax*4 + 0x13c]
test esi, esi
je 0x53cc97
cmp esi, ebp
je 0x53cc97
xor bl, bl
inc eax
cmp eax, 2
jl 0x53cc86
test bl, bl
je 0x53ce30
call fcn.006499f0
and eax, 0xffff
mov dword [esp + 0x90], eax
fild dword [esp + 0x90]
fmul dword [0x694de4]
fmul dword [0x694dd8]
fadd dword [0x694e04]
fmul dword [0x694dec]
fstp dword [esp + 0x48]
fld dword [esp + 0x48]
fstp dword [ebp + 0x378]
fld dword [esp + 0x48]
fstp dword [ebp + 0x374]
call fcn.006499f0
cmp ax, 0x3fff
jae 0x53cd00
mov al, 1
jmp 0x53cd02
xor al, al
test al, al
je 0x53cd06
mov ecx, ebp
push 0
push 0x1c
call fcn.004f28a0
lea eax, [ebp + 0x34]
lea edi, [esp + 0x144]
lea esi, [eax]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea eax, [esp + 0x144]
lea edx, [esp + 0x150]
push dword [0x694e88]
push 0
push edx
push eax
call fcn.005bcd00
add esp, 0x10
test al, al
je 0x53ce83
fld dword [0x694e98]
fadd dword [esp + 0x150]
lea eax, [esp + 0x144]
push 0xb
push eax
fstp dword [esp + 0x154]
call fcn.005bb570
test eax, eax
pop ecx
pop ecx
je 0x53cd7f
add eax, 4
mov ecx, eax
push dword [esp + 0x48]
call fcn.004bba80
call fcn.006499f0
movzx eax, ax
and eax, 3
jne 0x53ce83
call fcn.006499f0
mov esi, eax
call fcn.006499f0
and esi, 0xffff
and eax, 0xffff
mov dword [esp + 0x90], esi
fild dword [esp + 0x90]
mov dword [esp + 0x90], eax
push 6
fmul dword [0x694de4]
fmul dword [0x694de8]
fadd dword [0x694e9c]
fadd dword [esp + 0x148]
fstp dword [esp + 0x164]
fild dword [esp + 0x94]
lea eax, [esp + 0x164]
push eax
fmul dword [0x694de4]
fmul dword [0x694de8]
fadd dword [0x694e9c]
fadd dword [esp + 0x150]
fstp dword [esp + 0x16c]
fld dword [esp + 0x154]
fadd dword [0x694e04]
fstp dword [esp + 0x170]
call fcn.005bb570
pop ecx
pop ecx
jmp 0x53ce83
call fcn.006499f0
and eax, 0xffff
mov ecx, ebp
mov dword [esp + 0x90], eax
fild dword [esp + 0x90]
fmul dword [0x694de4]
fmul dword [0x694de0]
fnstcw word [esp + 0x30]
mov eax, dword [esp + 0x30]
or byte [esp + 0x31], 0xc
fldcw word [esp + 0x30]
mov dword [esp + 0x30], eax
fistp dword [esp + 0x90]
fldcw word [esp + 0x30]
mov eax, dword [esp + 0x90]
push eax
call fcn.004facc0
cmp dword [esp + 4], 0
je 0x53ced3
mov ecx, ebp
push dword [esp + 0x10]
call fcn.004f07d0
cmp dword [ebp + 0x244], 0xb
jne 0x53cea5
mov ecx, ebp
call fcn.004f7920
mov dword [ebp + 0x244], 0x25
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x244], 0xb
jne 0x53cec3
mov ecx, eax
call fcn.004f7920
mov eax, dword [esp + 0x10]
mov dword [eax + 0x244], 0x25
jmp 0x53ced7
mov dword [esp + 0x10], ebp
mov eax, dword [ebp + 0x4c]
push 0
push eax
call fcn.00581500
mov eax, dword [esp + 0xc]
pop ecx
inc eax
pop ecx
cmp eax, dword [esp + 0x14]
jg 0x53cef6
cmp dword [esp + 0x14], 1
jg 0x53cf20
add esp, 0x1b0
pop ebp
pop edi
pop esi
pop ebx
ret
add esp, 0x1b0
pop ebp
pop edi
pop esi
pop ebx
ret
add esp, 0x1b0
pop ebp
pop edi
pop esi
pop ebx
ret
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, dword [esp + 0x14]
jl 0x53c510
add esp, 0x1b0
pop ebp
pop edi
pop esi
pop ebx
ret
fstp st(0)
jmp 0x53bd02
fstp st(0)
jmp 0x53bdbc
fstp st(0)
jmp 0x53ca2f
fstp st(0)
jmp 0x53ca4f
fldz
jmp 0x53ca4f
fstp st(0)
jmp 0x53cb26
fstp st(0)
jmp 0x53cc9d
fstp st(0)
jmp 0x53cf32