Function at 0x53baa0
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 0x53bae1
mov byte [0x7091b8], 1
mov dword [0x7091b4], 0
movzx ebx, byte [0xa10b03]
movzx eax, byte [0xa10b03]
mov byte [esp + 0x28], 0
mov byte [esp + 0x24], 0
imul ebx, ebx, 0x170
push eax
add ebx, 0x94ad30
call fcn.004bc0c0
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.004dc520
pop ecx
pop ecx
call fcn.004bc140
mov eax, dword [eax + 0x5f4]
mov ebp, dword [eax + 0x20]
cmp ebp, 2
jle 0x53bded
cmp dword [0x978818], 0
jne 0x53bb7b
call fcn.00649a40
movzx eax, ax
and eax, 0x1f
jne 0x53bb7b
call fcn.004bc200
test eax, eax
je 0x53bb7b
mov byte [esp + 0x24], 1
cmp dword [0x978818], 0
jne 0x53bb91
mov ecx, dword [ebx]
mov eax, dword [ecx + 0x5f4]
mov dl, byte [eax + 0x19]
jmp 0x53bbdc
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 [0x94ddd4], eax
jl 0x53bbf2
cmp byte [esp + 0x24], 0
je 0x53bded
mov ecx, dword [ebx]
cmp byte [ecx + 0x3ac], 0
jne 0x53bc69
mov edx, dword [ecx + 0x5f4]
movzx eax, byte [edx + 0x1a]
cmp dword [0x978720], eax
jge 0x53bc74
mov ax, word [ebx + 0x128]
and eax, 0xffff
mov dword [esp + 0x90], eax
fild dword [esp + 0x90]
fmul dword [0x686fc8]
fild dword [0xa102a4]
fcompp
fnstsw ax
test ah, 5
je 0x53bc74
mov eax, dword [0xa102a4]
add eax, dword [0x978720]
add eax, dword [0x97873c]
add eax, dword [0x978d90]
add eax, dword [0x974bec]
add eax, dword [0xa0d248]
cmp eax, dword [0x686fcc]
jge 0x53bc74
cmp byte [esp + 0x24], 0
je 0x53bded
mov byte [esp + 0x1c], 1
call fcn.004bc200
test eax, eax
je 0x53bd18
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 + 0x70]
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 + 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 0x53bcf5
fld dword [0x694dd8]
fstp st(1)
fld dword [0x694dd0]
fcomp st(1)
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x53bd0f
fld dword [0x694dd0]
fstp st(1)
fst dword [esp + 0x4c]
jmp 0x53cf60
fld dword [0x694dd8]
fstp dword [esp + 0x4c]
fld dword [0x694ddc]
fmul dword [esp + 0x4c]
fstp dword [esp + 0x1c4]
call fcn.004bc200
test eax, eax
je 0x53bdd2
call fcn.004bc200
fld dword [eax + 0x74]
fstp dword [esp + 0x64]
call fcn.004bc200
fld dword [eax + 0x74]
fmul dword [esp + 0x64]
fstp dword [esp + 0x74]
call fcn.004bc200
fld dword [eax + 0x70]
fstp dword [esp + 0x60]
call fcn.004bc200
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 0x53bdaf
fld dword [0x694dd8]
fstp st(1)
fld dword [0x694dd0]
fcomp st(1)
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x53bdc9
fld dword [0x694dd0]
fstp st(1)
fst dword [esp + 0x50]
jmp 0x53cf67
fld dword [0x694dd8]
fstp dword [esp + 0x50]
fld dword [0x694e78]
fmul dword [esp + 0x50]
fstp dword [esp + 0x1c8]
fldz
fld dword [0x975348]
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 0x53be6a
call fcn.004bc140
test eax, eax
je 0x53be6a
cmp byte [eax + 0x3ac], 0
je 0x53be6a
mov edx, dword [eax + 0x3a8]
test edx, edx
je 0x53be6a
movsx eax, word [edx + 0x5c]
cmp eax, 0x96
je 0x53be60
cmp eax, 0xa8
je 0x53be60
cmp eax, 0xbc
je 0x53be60
cmp eax, 0xd8
jne 0x53be6a
fld dword [0x694dd8]
fstp dword [esp + 0x38]
call fcn.00429fc0
test al, al
je 0x53be7d
fld dword [0x694dd8]
fstp dword [esp + 0x38]
cmp dword [0x978818], 0
jne 0x53be90
mov esi, dword [0x694dc8]
jmp 0x53be96
mov esi, dword [0x694dcc]
fld dword [0x6db9f0]
fstp dword [esp + 0x3c]
call fcn.00429fc0
test al, al
fldz
je 0x53beb5
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 0x53bf15
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 [0xa106a4], eax
jl 0x53bf51
cmp byte [esp + 0x1c], 0
je 0x53cf97
fstp st(0)
call fcn.00649a40
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 0x53bfaf
cmp byte [esp + 0x1c], 0
je 0x53bfd0
mov dword [esp + 0x20], 6
call fcn.00649a40
mov dword [esp + 0x18], 0
jmp 0x53c1e7
xor ebp, ebp
cmp ax, word [esp + ebp*2 + 0xf6]
jae 0x53c000
mov dword [esp + 0x20], ebp
add dword [esp + 0x20], 7
cmp dword [esp + 0x20], 0xb
jne 0x53bff3
mov byte [esp + 0x28], 1
jmp 0x53c006
mov byte [esp + 0x28], 0
jmp 0x53c006
inc ebp
cmp ebp, 9
jl 0x53bfd2
cmp ebp, 9
je 0x53c016
cmp byte [esp + 0x28], 0
je 0x53c1e7
cmp byte [esp + 0x28], 0
jne 0x53c0b0
call fcn.00649a40
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 0x53c0b0
lea eax, [esp + 0xa0]
lea ecx, [esp + 0x9c]
push eax
push ecx
movzx eax, word [esp + 0x112]
push eax
call fcn.0053aeb0
add esp, 0xc
cmp dword [esp + 0x9c], 0xffffffff
je 0x53c08d
cmp dword [esp + 0xa0], 0xffffffff
jne 0x53c098
add esp, 0x1b0
pop ebp
pop edi
pop esi
pop ebx
ret
mov eax, dword [esp + 0x9c]
mov edx, dword [eax*4 + 0x92d4d0]
mov eax, dword [edx + 0x34]
jmp 0x53c1e3
cmp byte [esp + 0x28], 0
je 0x53c0d0
add dword [esp + 0x20], 0xfffffff9
push dword [esp + 0x20]
call fcn.004eed40
mov dword [esp + 0x1c], eax
pop ecx
jmp 0x53c1c3
fld dword [0x975348]
fcomp dword [0x694dd4]
fnstsw ax
movzx ebx, word [esp + 0x10a]
test ah, 0x45
jne 0x53c160
xor ebp, ebp
shl ebx, 4
mov al, 1
jmp 0x53c155
call fcn.00649a40
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 + 0x7d4128]
push edi
call fcn.0053a710
pop ecx
test al, al
je 0x53c1bf
cmp ebp, 8
jl 0x53c0f4
jmp 0x53c1bf
call fcn.00649a40
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 + 0x7d4128]
mov dword [esp + 0x18], edi
cmp dword [esp + 0x18], 0xffffffff
jne 0x53c1d5
add esp, 0x1b0
pop ebp
pop edi
pop esi
pop ebx
ret
mov eax, dword [esp + 0x18]
mov ecx, dword [eax*4 + 0x92d4d0]
mov eax, dword [ecx + 0x34]
mov dword [esp + 0x20], eax
cmp byte [esp + 0x1c], 0
jne 0x53c200
cmp dword [0x694dc4], 0
jle 0x53c200
mov eax, dword [0x694dc4]
mov dword [esp + 0x20], eax
cmp dword [esp + 0x20], 7
jl 0x53c270
cmp dword [esp + 0x20], 0xf
jg 0x53c270
cmp byte [esp + 0x28], 0
jne 0x53c270
call fcn.00649a40
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 0x53c278
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 0x53c2b1
cmp dword [esp + 0x20], 0xf
jg 0x53c2b1
cmp byte [esp + 0x28], 0
jne 0x53c2b1
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, 0x9b6e64
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 0x53c31f
mov dword [esp + 0xc], 1
cmp byte [esp + 0xc], 0
jne 0x53c32b
mov ebx, 1
test bl, bl
je 0x53cf52
mov eax, dword [esp + 0xc0]
lea eax, [eax + eax*4]
mov dl, byte [eax*4 + 0x9b6e76]
mov eax, dword [esp + 0xbc]
lea eax, [eax + eax*4]
and dl, 0xf
mov bl, byte [eax*4 + 0x9b6e76]
and bl, 0xf
cmp bl, dl
jb 0x53c361
mov bl, dl
call fcn.00649a40
movzx edi, ax
movzx eax, bl
and edi, 0xf
cmp edi, eax
jg 0x53cf52
call fcn.00649a40
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, 0x9b6e64
add eax, 0x9b6e64
push edx
push eax
call fcn.00435140
add esp, 0x14
cmp dword [0x978818], 4
jne 0x53c434
mov eax, dword [esp + 0x20]
add eax, 0xfffffffc
cmp eax, 1
jbe 0x53c3e0
cmp dword [esp + 0x20], 0x12
jne 0x53c434
call fcn.00649a40
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 0x53c434
movzx esi, word [esp + 0x10a]
lea eax, [esp + 0xb0]
push esi
push eax
call fcn.00538eb0
pop ecx
pop ecx
jmp 0x53cf52
cmp dword [esp + 0x20], 7
jl 0x53c4c1
cmp dword [esp + 0x20], 0xf
jg 0x53c4c1
cmp byte [esp + 0x28], 0
jne 0x53c4c1
call fcn.00649a40
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 0x53c4a4
lea eax, [esp + 0xb0]
push eax
push dword [esp + 0x18]
push dword [esp + 0x28]
call fcn.00539fe0
add esp, 0xc
jmp 0x53cf52
lea eax, [esp + 0xb0]
push eax
push dword [esp + 0x18]
push dword [esp + 0x28]
call fcn.00539810
add esp, 0xc
jmp 0x53cf52
cmp dword [esp + 0x9c], 0
jl 0x53c510
cmp dword [esp + 0xa0], 0
jl 0x53c510
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.00538910
add esp, 0x1c
jmp 0x53cf52
cmp dword [esp + 0x14], 0
mov dword [esp + 4], 0
jle 0x53cf52
mov eax, dword [esp + 0x18]
mov dword [esp + 0x2c], eax
mov dword [esp + 8], eax
nop
cmp dword [esp + 0x20], 6
jne 0x53c620
cmp dword [esp + 0x18], 0
jne 0x53c560
cmp byte [0x94ddf4], 1
je 0x53c640
add esp, 0x1b0
pop ebp
pop edi
pop esi
pop ebx
ret
cmp dword [esp + 0x18], 1
jne 0x53c597
cmp byte [0x94de1c], 1
jne 0x53c58c
push 0x19
call fcn.005d5730
mov eax, dword [eax + 0x54]
pop ecx
lea eax, [eax + eax*4]
cmp byte [eax*4 + 0x94dde0], 1
je 0x53c640
add esp, 0x1b0
pop ebp
pop edi
pop esi
pop ebx
ret
cmp dword [esp + 0x18], 2
jne 0x53c5d0
cmp byte [0x94de08], 1
jne 0x53c5c3
push 0x17
call fcn.005d5730
mov eax, dword [eax + 0x54]
pop ecx
lea eax, [eax + eax*4]
cmp byte [eax*4 + 0x94dde0], 1
je 0x53c640
add esp, 0x1b0
pop ebp
pop edi
pop esi
pop ebx
ret
cmp dword [esp + 0x18], 4
jne 0x53c640
cmp byte [0x94de30], 1
jne 0x53c610
push 0x19
call fcn.005d5730
mov eax, dword [eax + 0x54]
pop ecx
lea eax, [eax + eax*4]
cmp byte [eax*4 + 0x94dde0], 1
jne 0x53c610
push 0xc
call fcn.005d5730
mov eax, dword [eax + 0x54]
pop ecx
lea eax, [eax + eax*4]
cmp byte [eax*4 + 0x94dde0], 1
je 0x53c640
add esp, 0x1b0
pop ebp
pop edi
pop esi
pop ebx
ret
mov eax, dword [esp + 8]
mov ecx, dword [eax*4 + 0x92d4d0]
mov ebp, dword [ecx]
call dword [ebp + 0x14]
test eax, eax
jne 0x53c640
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 0x53c77d
call fcn.00649a40
cmp dword [esp + 0x10], 0
je 0x53c77d
call fcn.00649a40
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.00649a40
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.00649a40
movzx eax, ax
and eax, 1
je 0x53c744
fld dword [esp + 0x78]
fchs
fstp dword [esp + 0x40]
call fcn.00649a40
movzx eax, ax
and eax, 1
je 0x53c75b
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.0052fbf0
add esp, 0x10
test al, al
je 0x53cf30
mov eax, dword [esp + 4]
inc eax
cmp eax, dword [esp + 0x14]
jge 0x53c81d
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.004d53c0
fadd dword [0x694e8c]
add esp, 0x10
cmp byte [esp + 0x10f], 0
fstp dword [esp + 0x34]
jne 0x53c7f8
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 0x53c814
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 0x7e4eb0
push 1
push edx
push eax
mov dword [esp + 0x1b8], ecx
call fcn.006471b0
fldz
fldz
fld dword [esp + 0x1b8]
fstp st(2)
add esp, 0x10
fld st(1)
fadd dword [0x694e40]
fcomp dword [0x97853c]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x53c894
xor al, al
jmp 0x53c955
fld st(1)
fsub dword [0x694e40]
fcomp dword [0xa10680]
fnstsw ax
test ah, 0x45
jne 0x53c8b0
xor al, al
jmp 0x53c955
fld st(1)
fmul dword [0x7e4f4c]
fld dword [esp + 0x1a4]
fmul dword [0x7e4f48]
faddp st(1)
fcomp dword [0x694e40]
fnstsw ax
test ah, 0x45
jne 0x53c8d8
xor al, al
jmp 0x53c955
fld st(1)
fmul dword [0x7e4f58]
fld dword [esp + 0x1a4]
fmul dword [0x7e4f54]
faddp st(1)
fcomp dword [0x694e40]
fnstsw ax
test ah, 0x45
jne 0x53c900
xor al, al
jmp 0x53c955
fld dword [esp + 0x1ac]
fst st(1)
fmul dword [0x7e4f68]
fld st(2)
fmul dword [0x7e4f64]
faddp st(1)
fcomp dword [0x694e40]
fnstsw ax
test ah, 0x45
jne 0x53c930
xor al, al
jmp 0x53c955
fld st(0)
fmul dword [0x7e4f74]
fld st(2)
fmul dword [0x7e4f70]
faddp st(1)
fcomp dword [0x694e40]
fnstsw ax
test ah, 0x45
jne 0x53c953
xor al, al
jmp 0x53c955
mov al, 1
test al, al
je 0x53cf77
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.004bc200
test eax, eax
je 0x53ca45
call fcn.004bc200
fld dword [eax + 0x74]
fstp dword [esp + 0x6c]
call fcn.004bc200
fld dword [eax + 0x74]
fmul dword [esp + 0x6c]
fstp dword [esp + 0x84]
call fcn.004bc200
fld dword [eax + 0x70]
fstp dword [esp + 0x68]
call fcn.004bc200
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 0x53ca22
fld dword [0x694dd8]
fstp st(1)
fld dword [0x694dd0]
fcomp st(1)
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x53ca3c
fld dword [0x694dd0]
fstp st(1)
fst dword [esp + 0x54]
jmp 0x53cf70
fld dword [0x694dd8]
fstp dword [esp + 0x54]
fld dword [0x694ddc]
fmul dword [esp + 0x54]
fcomp dword [esp + 0x80]
fnstsw ax
test ah, 0x45
jne 0x53cf80
xor bl, bl
fldz
mov eax, dword [esp + 8]
mov eax, dword [eax*4 + 0x92d4d0]
mov edx, dword [eax + 0x38]
cmp edx, 0x25
jne 0x53cf87
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.004d8b20
add esp, 0x2c
cmp dword [esp + 0x178], 0
je 0x53cb40
mov al, byte [esp + 0x19e]
cmp al, 1
jne 0x53cb24
mov al, 1
jmp 0x53cb32
cmp al, 5
jne 0x53cb30
mov al, 1
jmp 0x53cb32
xor al, al
test al, al
jne 0x53cb44
xor bl, bl
jmp 0x53cb46
xor bl, bl
jmp 0x53cb46
mov bl, 1
test bl, bl
je 0x53cf21
lea eax, [esp + 0xb0]
push 0
push eax
push dword [esp + 0x20]
push dword [esp + 0x2c]
call fcn.0053b620
add esp, 0x10
cmp byte [esp + 0x24], 0
mov ebp, eax
je 0x53cb81
cmp dword [ebp + 0x3d4], 6
jne 0x53cb81
mov byte [ebp + 0x60c], 1
push dword [esp + 0x2c]
xor bl, bl
call fcn.0053a710
test al, al
pop ecx
fldz
je 0x53cf90
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.004d8b20
add esp, 0x2c
cmp dword [esp + 0x138], 0
je 0x53ccbd
mov al, byte [esp + 0x132]
cmp al, 0x22
je 0x53cc3d
cmp al, 0x12
jne 0x53ccbd
cmp byte [0xa10b74], 0xa
jb 0x53ccbd
cmp byte [0xa10b74], 0x12
ja 0x53ccbd
fld dword [0x694e04]
fcomp dword [0x975348]
fnstsw ax
and ah, 0x44
cmp ah, 0x40
jne 0x53ccbd
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.0052fbf0
add esp, 0x10
test al, al
je 0x53ccbd
xor eax, eax
mov esi, dword [esp + eax*4 + 0x13c]
test esi, esi
je 0x53ccb7
cmp esi, ebp
je 0x53ccb7
xor bl, bl
inc eax
cmp eax, 2
jl 0x53cca6
test bl, bl
je 0x53ce50
call fcn.00649a40
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.00649a40
cmp ax, 0x3fff
jae 0x53cd20
mov al, 1
jmp 0x53cd22
xor al, al
test al, al
je 0x53cd26
mov ecx, ebp
push 0
push 0x1c
call fcn.004f28c0
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.005bcd20
add esp, 0x10
test al, al
je 0x53cea3
fld dword [0x694e98]
fadd dword [esp + 0x150]
lea eax, [esp + 0x144]
push 0xb
push eax
fstp dword [esp + 0x154]
call fcn.005bb590
test eax, eax
pop ecx
pop ecx
je 0x53cd9f
add eax, 4
mov ecx, eax
push dword [esp + 0x48]
call fcn.004bbaa0
call fcn.00649a40
movzx eax, ax
and eax, 3
jne 0x53cea3
call fcn.00649a40
mov esi, eax
call fcn.00649a40
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.005bb590
pop ecx
pop ecx
jmp 0x53cea3
call fcn.00649a40
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.004face0
cmp dword [esp + 4], 0
je 0x53cef3
mov ecx, ebp
push dword [esp + 0x10]
call fcn.004f07f0
cmp dword [ebp + 0x244], 0xb
jne 0x53cec5
mov ecx, ebp
call fcn.004f7940
mov dword [ebp + 0x244], 0x25
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x244], 0xb
jne 0x53cee3
mov ecx, eax
call fcn.004f7940
mov eax, dword [esp + 0x10]
mov dword [eax + 0x244], 0x25
jmp 0x53cef7
mov dword [esp + 0x10], ebp
mov eax, dword [ebp + 0x4c]
push 0
push eax
call fcn.00581520
mov eax, dword [esp + 0xc]
pop ecx
inc eax
pop ecx
cmp eax, dword [esp + 0x14]
jg 0x53cf16
cmp dword [esp + 0x14], 1
jg 0x53cf40
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 0x53c530
add esp, 0x1b0
pop ebp
pop edi
pop esi
pop ebx
ret
fstp st(0)
jmp 0x53bd22
fstp st(0)
jmp 0x53bddc
fstp st(0)
jmp 0x53ca4f
fstp st(0)
jmp 0x53ca6f
fldz
jmp 0x53ca6f
fstp st(0)
jmp 0x53cb46
fstp st(0)
jmp 0x53ccbd
fstp st(0)
jmp 0x53cf52