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

Disassembly:
mov dword [0x8cc488], 0xffffffff
jmp 0x527d0d
fild dword [0xb6fe34]
sub esp, 0x7c
push esi
mov esi, ecx
fcomp dword [0xb6fdc8]
push edi
mov cl, 0xfe
fnstsw ax
test ah, 0x41
je 0x526fe2
and byte [0xc0b184], cl
movzx eax, byte [0xb6f081]
imul eax, eax, 0x238
cmp word [eax + 0xb6f1a8], 4
je 0x527009
and byte [0xc0b184], cl
mov dword [0xb6fe34], 0
mov eax, dword [esi + 0x21c]
test eax, eax
lea edi, [esi + 0x21c]
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
jne 0x527037
mov ecx, dword [0xb6f980]
push edi
mov dword [edi], ecx
call fcn.00571b70
cmp byte [0xc8a860], 1
jne 0x52706a
push 0xffffffffffffffff
call fcn.0056e210
add esp, 4
test eax, eax
je 0x527060
mov eax, dword [eax + 0x58c]
test eax, eax
je 0x527060
cmp word [eax + 0x22], 0x208
je 0x52706a
push 0
call fcn.00742ca0
add esp, 4
mov edx, dword [esi + 0x1c]
mov ecx, dword [esi + 0x18]
inc edx
mov eax, edx
cmp eax, ecx
mov dword [esi + 0x1c], edx
jle 0x527081
mov dword [esi + 0x1c], 1
mov edx, dword [esi + 0x1c]
cmp edx, dword [esi + 0x14]
sete al
mov byte [esi + 3], al
mov al, byte [esi + 2]
test al, al
push ebx
push ebp
jne 0x527779
mov ebp, dword [edi]
mov cl, byte [ebp + 0x36]
and cl, 7
cmp cl, 2
jne 0x52731e
mov eax, dword [ebp + 0x14]
test eax, eax
je 0x5270b7
add eax, 0x30
jmp 0x5270ba
lea eax, [ebp + 4]
mov edx, dword [eax]
mov dword [esp + 0x20], edx
mov ecx, dword [eax + 4]
mov dword [esp + 0x24], ecx
mov edx, dword [eax + 8]
mov dword [esp + 0x28], edx
mov eax, dword [ebp + 0x14]
test eax, eax
jne 0x5270e8
mov ecx, ebp
call fcn.0054f560
mov eax, dword [ebp + 0x14]
push eax
lea ecx, [ebp + 4]
call fcn.0054f1b0
mov ecx, dword [ebp + 0x14]
fld dword [ecx + 0x10]
fcomp dword [0x858b50]
fnstsw ax
test ah, 0x44
jp 0x527134
mov ebp, dword [edi]
mov eax, dword [ebp + 0x14]
test eax, eax
jne 0x527117
mov ecx, ebp
call fcn.0054f560
mov edx, dword [ebp + 0x14]
push edx
lea ecx, [ebp + 4]
call fcn.0054f1b0
mov eax, dword [ebp + 0x14]
fld dword [eax + 0x14]
fcomp dword [0x858b50]
fnstsw ax
test ah, 0x44
jp 0x527134
mov dword [esp + 0x14], 0
jmp 0x527186
mov ebp, dword [edi]
mov eax, dword [ebp + 0x14]
test eax, eax
jne 0x527150
mov ecx, ebp
call fcn.0054f560
mov ecx, dword [ebp + 0x14]
push ecx
lea ecx, [ebp + 4]
call fcn.0054f1b0
mov ebx, dword [ebp + 0x14]
mov ebp, dword [edi]
mov eax, dword [ebp + 0x14]
test eax, eax
jne 0x52716f
mov ecx, ebp
call fcn.0054f560
mov edx, dword [ebp + 0x14]
push edx
lea ecx, [ebp + 4]
call fcn.0054f1b0
mov ebp, dword [ebp + 0x14]
mov eax, dword [ebx + 0x14]
mov ecx, dword [ebp + 0x10]
push eax
push ecx
call fcn.0053cc70
fstp dword [esp + 0x1c]
add esp, 8
mov ebp, dword [edi]
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
mov eax, dword [ebp + 0x14]
test eax, eax
jne 0x5271ba
mov ecx, ebp
call fcn.0054f560
mov edx, dword [ebp + 0x14]
push edx
lea ecx, [ebp + 4]
call fcn.0054f1b0
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 0x10]
mov ebp, dword [edi]
mov dword [esp + 0x2c], ecx
mov eax, dword [ebp + 0x14]
test eax, eax
jne 0x5271e0
mov ecx, ebp
call fcn.0054f560
mov edx, dword [ebp + 0x14]
push edx
lea ecx, [ebp + 4]
call fcn.0054f1b0
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 0x14]
mov dword [esp + 0x30], ecx
lea ecx, [esp + 0x2c]
call fcn.0059c910
fld dword [esp + 0x30]
fmul dword [esp + 0x30]
fld dword [esp + 0x2c]
fmul dword [esp + 0x2c]
faddp st(1)
fsqrt
fcom dword [0x858b50]
fnstsw ax
test ah, 0x44
jnp 0x52722e
fdivr dword [0x858624]
fld dword [esp + 0x2c]
fmul st(1)
fstp dword [esp + 0x2c]
fmul dword [esp + 0x30]
fstp dword [esp + 0x30]
jmp 0x527230
fstp st(0)
mov eax, dword [edi]
fld dword [esp + 0x2c]
fmul dword [eax + 0x44]
fld dword [esp + 0x30]
fmul dword [eax + 0x48]
fld st(0)
fadd st(2)
fcomp dword [0x858b50]
fld st(0)
fmul st(1)
fld st(2)
fmul st(3)
fnstsw ax
faddp st(1)
test ah, 0x41
fsqrt
fstp st(2)
fstp st(0)
jne 0x527282
fmul dword [0x86325c]
fld dword [0x858624]
fcomp st(1)
fnstsw ax
test ah, 5
jp 0x5272a1
fstp st(0)
mov dword [esp + 0x10], 0x3f800000
jmp 0x5272a5
fmul dword [0x863258]
fld dword [0x858b8c]
fcomp st(1)
fnstsw ax
test ah, 5
jp 0x52729f
fstp st(0)
fld dword [0x858b8c]
fchs
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
mov eax, dword [esi + 0x28]
cmp eax, 3
fmul dword [0x863254]
fld dword [esi + 0xd4]
fmul dword [0x863250]
faddp st(1)
fstp dword [esi + 0xd4]
je 0x527793
push 0
call fcn.0053fb70
add esp, 4
mov ecx, eax
call fcn.0053fe70
test al, al
je 0x527312
push 0
call fcn.0053fb70
add esp, 4
mov ecx, eax
call fcn.0053fdd0
test al, al
jne 0x527312
push 0
call fcn.0053fb70
add esp, 4
mov ecx, eax
call fcn.0053fe10
test al, al
je 0x527793
mov byte [0xb6f042], 1
jmp 0x527793
mov edi, dword [edi]
push 0xffffffffffffffff
call fcn.0056e210
add esp, 4
cmp edi, eax
jne 0x52767e
push 0xffffffffffffffff
call fcn.0056e210
mov ecx, dword [eax + 0x14]
add esp, 4
test ecx, ecx
je 0x527348
lea eax, [ecx + 0x30]
jmp 0x52734b
add eax, 4
mov edx, dword [eax]
mov dword [esp + 0x2c], edx
mov ecx, dword [eax + 4]
mov dword [esp + 0x30], ecx
mov edx, dword [eax + 8]
push 0xffffffffffffffff
mov dword [esp + 0x38], edx
call fcn.0056e210
mov ecx, dword [eax + 0x47c]
add esp, 4
call fcn.00601180
test eax, eax
je 0x5273a6
push 0xffffffffffffffff
call fcn.0056e210
mov edi, dword [eax + 0x47c]
add esp, 4
lea eax, [esp + 0x2c]
push eax
push 0xffffffffffffffff
call fcn.0056e210
add esp, 4
push eax
mov ecx, edi
call fcn.00601180
mov ecx, eax
call fcn.0067a390
fld dword [0x8ccc3c]
fsub dword [esp + 0x2c]
fld dword [0x8ccc40]
fsub dword [esp + 0x30]
fld dword [0x8ccc44]
fsub dword [esp + 0x34]
fld st(0)
fmul st(1)
fld st(2)
fmul st(3)
faddp st(1)
fld st(3)
fmul st(4)
faddp st(1)
fcomp dword [0x85eed4]
fstp st(0)
fnstsw ax
fstp st(0)
test ah, 0x41
fstp st(0)
je 0x527621
fld dword [0xb7cb5c]
fcomp dword [0x858cc4]
fnstsw ax
test ah, 5
jnp 0x527621
mov ecx, esi
call fcn.0050a850
test al, al
jne 0x527621
mov al, byte [0xb6f042]
test al, al
jne 0x527621
mov al, byte [0xb6f043]
test al, al
jne 0x527621
push 0xffffffffffffffff
call fcn.0056e210
mov ecx, dword [eax + 0x47c]
add esp, 4
call fcn.00600f30
test eax, eax
je 0x5274b3
cmp word [esi + 0xc], 0x35
jne 0x5274b3
fld dword [0x8cc39c]
fld dword [0xb7cb5c]
call fcn.00822130
fstp dword [esp + 0x18]
fld dword [0x858624]
lea ecx, [esp + 0x2c]
fsub dword [esp + 0x18]
push ecx
push ecx
lea edx, [esp + 0x4c]
fstp dword [esp]
push edx
call fcn.0040fe90
add esp, 0xc
push eax
mov eax, dword [esp + 0x1c]
push 0x8ccc3c
push eax
lea ecx, [esp + 0x44]
push ecx
call fcn.0040fe90
add esp, 0xc
push eax
lea edx, [esp + 0x58]
push edx
call fcn.0040fe30
mov edi, dword [eax]
mov ebp, dword [eax + 4]
mov eax, dword [eax + 8]
add esp, 0xc
jmp 0x52762d
fld dword [0x8cc394]
fld dword [0xb7cb5c]
call fcn.00822130
fsubr dword [0x858624]
fstp dword [esp + 0x18]
fld dword [0x8cc398]
fld dword [0xb7cb5c]
call fcn.00822130
mov ebx, dword [0xb7cb5c]
push ebx
fsubr dword [0x858624]
lea eax, [esp + 0x54]
push 0xb6ec7c
push eax
fstp dword [esp + 0x28]
call fcn.0040fec0
push eax
lea ecx, [esp + 0x54]
push 0x8ccc3c
push ecx
call fcn.0040fe30
fld dword [0x858624]
fsub dword [esp + 0x30]
add esp, 0x18
push eax
push ecx
lea edx, [esp + 0x64]
fstp dword [esp]
push edx
call fcn.0040fe90
mov ecx, dword [esp + 0x24]
add esp, 0xc
push eax
lea eax, [esp + 0x30]
push eax
push ecx
lea edx, [esp + 0x74]
push edx
call fcn.0040fe90
add esp, 0xc
push eax
lea eax, [esp + 0x7c]
push eax
call fcn.0040fe30
mov edi, dword [eax]
mov ebp, dword [eax + 4]
mov ecx, dword [eax + 8]
mov edx, dword [esp + 0x40]
mov dword [esp + 0x44], edi
fld dword [esp + 0x44]
fsub dword [0x8ccc3c]
mov dword [esp + 0x48], ebp
add esp, 0xc
push 0xb6ec7c
fstp dword [esp + 0x48]
push ecx
fld dword [esp + 0x44]
lea eax, [esp + 0x7c]
fsub dword [0x8ccc40]
mov dword [esp + 0x48], ecx
mov dword [esp + 0x48], edx
fstp dword [esp + 0x50]
fld dword [esp + 0x3c]
fsub dword [0x8ccc44]
fstp dword [esp + 0x54]
fld dword [0x858624]
fsub dword [esp + 0x24]
fstp dword [esp]
push eax
call fcn.0040fe90
add esp, 0xc
push eax
push ebx
push 0x3f800000
call fcn.00420800
mov edx, dword [esp + 0x28]
fstp dword [esp + 4]
add esp, 4
lea ecx, [esp + 0x4c]
push ecx
push edx
lea eax, [esp + 0x78]
push eax
call fcn.0040fe90
add esp, 0xc
push eax
lea ecx, [esp + 0x68]
push ecx
call fcn.004119d0
add esp, 0xc
push eax
lea edx, [esp + 0x88]
push edx
call fcn.0040fe30
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x58], 0
mov ebx, dword [esp + 0x58]
add esp, 0xc
jmp 0x527651
mov edi, dword [esp + 0x2c]
mov ebp, dword [esp + 0x30]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x38], 0
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x3c], 0
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x40], 0
mov ebx, dword [esp + 0x40]
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], ebp
mov dword [0x8ccc3c], edi
mov dword [0x8ccc40], ebp
mov dword [0x8ccc44], eax
mov dword [0xb6ec7c], ecx
mov dword [0xb6ec80], edx
mov dword [0xb6ec84], ebx
jmp 0x52769d
mov eax, dword [edi + 0x14]
test eax, eax
je 0x52768a
add eax, 0x30
jmp 0x52768d
lea eax, [edi + 4]
mov ecx, dword [eax]
mov dword [esp + 0x20], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x24], edx
mov eax, dword [eax + 8]
mov ebp, dword [esi + 0x21c]
lea edi, [esi + 0x21c]
mov dword [esp + 0x28], eax
mov eax, dword [ebp + 0x14]
test eax, eax
jne 0x5276c7
mov ecx, ebp
call fcn.0054f560
mov ecx, dword [ebp + 0x14]
push ecx
lea ecx, [ebp + 4]
call fcn.0054f1b0
mov edx, dword [ebp + 0x14]
fld dword [edx + 0x10]
fcomp dword [0x858b50]
fnstsw ax
test ah, 0x44
jp 0x527713
mov ebp, dword [edi]
mov eax, dword [ebp + 0x14]
test eax, eax
jne 0x5276f6
mov ecx, ebp
call fcn.0054f560
mov eax, dword [ebp + 0x14]
push eax
lea ecx, [ebp + 4]
call fcn.0054f1b0
mov ecx, dword [ebp + 0x14]
fld dword [ecx + 0x14]
fcomp dword [0x858b50]
fnstsw ax
test ah, 0x44
jp 0x527713
mov dword [esp + 0x14], 0
jmp 0x527765
mov ebp, dword [edi]
mov eax, dword [ebp + 0x14]
test eax, eax
jne 0x52772f
mov ecx, ebp
call fcn.0054f560
mov edx, dword [ebp + 0x14]
push edx
lea ecx, [ebp + 4]
call fcn.0054f1b0
mov ebx, dword [ebp + 0x14]
mov ebp, dword [edi]
mov eax, dword [ebp + 0x14]
test eax, eax
jne 0x52774e
mov ecx, ebp
call fcn.0054f560
mov eax, dword [ebp + 0x14]
push eax
lea ecx, [ebp + 4]
call fcn.0054f1b0
mov ebp, dword [ebp + 0x14]
mov ecx, dword [ebx + 0x14]
mov edx, dword [ebp + 0x10]
push ecx
push edx
call fcn.0053cc70
fstp dword [esp + 0x1c]
add esp, 8
mov dword [esp + 0x10], 0
mov dword [esi + 0xd4], 0
jmp 0x527793
lea eax, [esi + 0x154]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], edx
mov dword [esp + 0x28], eax
mov ecx, dword [0x8cc384]
mov dword [esi + 0x28], ecx
movzx edx, byte [0xb6f081]
imul edx, edx, 0x238
add edx, 0xb6f19c
cmp edx, esi
mov dword [0x8cc384], 3
jne 0x52792f
mov dl, byte [0xb6f080]
mov ax, word [esi + 0xc]
test dl, dl
sete bl
cmp ax, 0x12
je 0x5277ec
cmp ax, 0x10
je 0x5277ec
cmp ax, 0x16
je 0x5277ec
cmp ax, 3
jne 0x5278c8
mov ecx, dword [edi]
mov dl, byte [ecx + 0x36]
and dl, 7
cmp dl, 2
jne 0x5278c8
test ecx, ecx
je 0x52781b
call fcn.006d1080
cmp eax, 3
je 0x527817
mov ecx, dword [edi]
call fcn.006d1080
cmp eax, 5
jne 0x52781b
mov bl, 1
jmp 0x52781d
xor bl, bl
push 0
call fcn.0053fb70
add esp, 4
mov ecx, eax
call fcn.0053fe70
test al, al
je 0x527851
mov byte [0xb6f080], 0
mov byte [0xb6f077], 0
mov byte [0xb6f062], 0
mov eax, dword [esi + 0x28]
test eax, eax
jmp 0x5278f9
push 0
call fcn.0053fb70
add esp, 4
mov ecx, eax
call fcn.0053fdd0
test al, al
je 0x527883
test bl, bl
jne 0x527883
mov byte [0xb6f080], bl
mov byte [0xb6f077], bl
mov byte [0xb6f062], bl
mov eax, 1
jmp 0x5278ba
push 0
call fcn.0053fb70
add esp, 4
mov ecx, eax
call fcn.0053fe10
test al, al
je 0x5278b5
test bl, bl
jne 0x5278b5
mov byte [0xb6f080], bl
mov byte [0xb6f077], bl
mov byte [0xb6f062], bl
mov eax, 2
jmp 0x5278ba
mov eax, 3
cmp dword [esi + 0x28], eax
je 0x52792a
mov byte [0xb6f052], 1
jmp 0x52792a
cmp ax, 4
jne 0x52790e
mov ecx, dword [edi]
mov dl, byte [ecx + 0x36]
and dl, 7
cmp dl, 3
jne 0x52790e
push 0
call fcn.0053fb70
add esp, 4
mov ecx, eax
call fcn.0053fec0
test al, al
je 0x527914
mov eax, dword [esi + 0x28]
test eax, eax
je 0x527902
test bl, bl
je 0x527902
mov byte [0xb6f052], 1
mov dword [0x8cc384], 0
jmp 0x52792f
cmp ax, 0x35
jne 0x52792f
mov ecx, dword [esi + 0x28]
mov eax, 3
cmp ecx, eax
je 0x52792a
mov dword [0x8ccb84], 0x3f800000
mov dword [0x8cc384], eax
mov al, byte [0xb6f052]
test al, al
je 0x527949
mov dword [0x8ccb84], 0x3f800000
mov byte [0xb6f999], 1
mov ax, word [esi + 0xc]
cmp ax, 3
je 0x527972
cmp ax, 0x12
je 0x527972
cmp ax, 0x16
je 0x527972
cmp ax, 0x10
je 0x527972
cmp ax, 0x31
je 0x527972
mov byte [0x8d5109], 0
mov byte [0xb6ec20], 0
movsx eax, word [esi + 0xc]
add eax, 0xfffffffd
cmp eax, 0x3e
ja case.0x527990.5
movzx eax, byte [eax + 0x527f4c]
jmp dword [eax*4 + 0x527ed4]
mov ecx, dword [esp + 0x10]
mov edx, dword [esi + 0xd4]
mov eax, dword [esp + 0x14]
push 0
push ecx
push edx
push eax
lea ecx, [esp + 0x30]
push ecx
mov ecx, esi
call fcn.005245b0
jmp case.0x527990.33
mov al, byte [0xb6ec2e]
test al, al
je 0x5279ef
mov al, byte [0x8ccf00]
test al, al
jne 0x5279ef
mov edx, dword [esp + 0x10]
mov eax, dword [esi + 0xd4]
mov ecx, dword [esp + 0x14]
push edx
push eax
push ecx
lea edx, [esp + 0x2c]
push edx
mov ecx, esi
call fcn.0050f970
jmp case.0x527990.33
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 0xd4]
mov edx, dword [esp + 0x14]
push 0
push eax
push ecx
push edx
lea eax, [esp + 0x30]
push eax
mov ecx, esi
call fcn.00522d40
jmp case.0x527990.33
mov edx, dword [esp + 0x10]
mov eax, dword [esi + 0xd4]
mov ecx, dword [esp + 0x14]
push 0
push edx
push eax
push ecx
lea edx, [esp + 0x30]
push edx
mov ecx, esi
call fcn.00511b50
jmp case.0x527990.33
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 0xd4]
mov edx, dword [esp + 0x14]
push 1
push eax
push ecx
push edx
lea eax, [esp + 0x30]
push eax
mov ecx, esi
call fcn.00511b50
jmp case.0x527990.33
mov ecx, dword [esp + 0x10]
mov edx, dword [esi + 0xd4]
mov eax, dword [esp + 0x14]
push ecx
push edx
push eax
lea ecx, [esp + 0x2c]
push ecx
mov ecx, esi
call fcn.005105c0
jmp case.0x527990.33
mov edx, dword [esp + 0x10]
mov eax, dword [esi + 0xd4]
mov ecx, dword [esp + 0x14]
push edx
push eax
push ecx
lea edx, [esp + 0x2c]
push edx
mov ecx, esi
call fcn.00521500
jmp case.0x527990.33
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 0xd4]
mov edx, dword [esp + 0x14]
push eax
push ecx
push edx
lea eax, [esp + 0x2c]
push eax
mov ecx, esi
call fcn.00512110
jmp case.0x527990.33
mov ecx, dword [esp + 0x10]
mov edx, dword [esi + 0xd4]
mov eax, dword [esp + 0x14]
push ecx
push edx
push eax
lea ecx, [esp + 0x2c]
push ecx
mov ecx, esi
call fcn.0051d470
jmp case.0x527990.33
mov edx, dword [esp + 0x10]
mov eax, dword [esi + 0xd4]
mov ecx, dword [esp + 0x14]
push edx
push eax
push ecx
lea edx, [esp + 0x2c]
push edx
mov ecx, esi
call fcn.00517500
jmp case.0x527990.33
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 0xd4]
mov edx, dword [esp + 0x14]
push eax
push ecx
push edx
lea eax, [esp + 0x2c]
push eax
mov ecx, esi
call fcn.00517ea0
jmp case.0x527990.33
mov ecx, dword [esp + 0x10]
mov edx, dword [esi + 0xd4]
mov eax, dword [esp + 0x14]
push ecx
push edx
push eax
lea ecx, [esp + 0x2c]
push ecx
mov ecx, esi
call fcn.005b25f0
jmp case.0x527990.33
mov ecx, esi
call fcn.00519250
mov byte [0xb6f04e], 0
mov byte [0xb6f050], 0
jmp case.0x527990.33
mov ecx, esi
call fcn.00525e50
jmp case.0x527990.33
mov ecx, esi
call fcn.00519810
jmp case.0x527990.33
mov ecx, esi
call fcn.00513510
jmp case.0x527990.33
mov ecx, esi
call fcn.00513be0
jmp case.0x527990.33
mov edx, dword [esp + 0x10]
mov eax, dword [esi + 0xd4]
mov ecx, dword [esp + 0x14]
push edx
push eax
push ecx
lea edx, [esp + 0x2c]
push edx
mov ecx, esi
call fcn.0050f3f0
jmp case.0x527990.33
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 0xd4]
mov edx, dword [esp + 0x14]
push eax
push ecx
push edx
lea eax, [esp + 0x2c]
push eax
mov ecx, esi
call fcn.0050eb70
jmp case.0x527990.33
mov ecx, esi
call fcn.00518500
jmp case.0x527990.33
mov ecx, esi
call fcn.00512b10
jmp case.0x527990.33
push 0
mov ecx, esi
call fcn.0051a740
jmp case.0x527990.33
push 0
mov ecx, esi
call fcn.0051b120
jmp case.0x527990.33
push 0
mov ecx, esi
call fcn.0051b850
jmp case.0x527990.33
push 0
mov ecx, esi
call fcn.0051c250
jmp case.0x527990.33
mov byte [0xb6f059], 0
jmp case.0x527990.33
push 0
mov ecx, esi
call fcn.0051c760
jmp case.0x527990.33
push 0
mov ecx, esi
call fcn.0051cc30
jmp case.0x527990.33
push 0
mov ecx, esi
call fcn.0051d100
jmp case.0x527990.33
mov dword [esp + 0x38], 0
mov edx, dword [esp + 0x38]
lea ecx, [esi + 0x19c]
mov dword [ecx], edx
mov dword [esp + 0x3c], 0
mov eax, dword [esp + 0x3c]
mov dword [ecx + 4], eax
mov dword [esp + 0x40], 0
mov edx, dword [esp + 0x40]
mov dword [ecx + 8], edx
mov dword [esp + 0x38], 0
mov ecx, dword [esp + 0x38]
lea eax, [esi + 0x190]
mov dword [eax], ecx
mov dword [esp + 0x3c], 0x3f800000
mov edx, dword [esp + 0x3c]
mov dword [eax + 4], edx
mov dword [esp + 0x40], 0
mov ecx, dword [esp + 0x40]
mov dword [eax + 8], ecx
mov dword [esp + 0x38], 0
mov eax, dword [esp + 0x38]
lea edx, [esi + 0x1b4]
mov dword [edx], eax
mov dword [esp + 0x3c], 0
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x40], 0x3f800000
mov eax, dword [esp + 0x40]
mov dword [edx + 4], ecx
mov dword [edx + 8], eax
mov ax, word [esi + 0xc]
cmp ax, 0x38
jl 0x527d03
cmp ax, 0x40
jle 0x527d0d
nop
nop
nop
nop
nop
jmp 0x401c8e
fld dword [esi + 0x19c]
movsx ecx, word [esi + 0xc]
fsub dword [esi + 0x148]
lea edi, [esi + 0x19c]
lea ebp, [esi + 0x148]
mov dword [0x8cc388], ecx
fstp dword [esp + 0x2c]
mov eax, dword [esp + 0x2c]
fld dword [edi + 4]
lea ebx, [esi + 0xa0]
fsub dword [ebp + 4]
fstp dword [esp + 0x30]
fld dword [edi + 8]
mov edx, dword [esp + 0x30]
fsub dword [ebp + 8]
push edx
push eax
fstp dword [esp + 0x3c]
call fcn.0053cc70
fstp dword [ebx]
fld dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
fmul dword [esp + 0x38]
add esp, 8
fld dword [esp + 0x2c]
push ecx
fmul dword [esp + 0x30]
push ecx
faddp st(1)
fsqrt
fstp dword [esp]
call fcn.0053cc70
fstp dword [esi + 0xa4]
mov al, byte [0xb6f080]
add esp, 8
test al, al
jne 0x527db4
lea edx, [esi + 0xb4]
push edx
push ebx
lea eax, [esi + 0xa4]
push eax
lea eax, [esi + 0x1b4]
push eax
push ebp
push edi
mov ecx, esi
call fcn.00509df0
mov edx, edi
mov eax, dword [edx]
lea ecx, [esi + 0x1a8]
mov dword [ecx], eax
mov eax, dword [edx + 4]
mov edx, dword [edx + 8]
mov dword [ecx + 4], eax
mov byte [esi + 9], 0
mov byte [esi + 8], 0
mov byte [esi + 7], 0
mov dword [ecx + 8], edx
movzx eax, byte [0xb6f081]
imul eax, eax, 0x238
add eax, 0xb6f19c
cmp eax, esi
pop ebp
pop ebx
jne 0x527e26
mov eax, dword [0x8cc384]
sub eax, 0
je 0x527e16
dec eax
je 0x527e0b
dec eax
jne 0x527e1d
push 1
mov ecx, esi
call fcn.00520e40
jmp 0x527e1d
push 0
mov ecx, esi
call fcn.00520e40
jmp 0x527e1d
mov ecx, esi
call fcn.00520690
mov ecx, dword [0x8cc384]
mov dword [esi + 0x28], ecx
mov al, byte [0xb6fcdd]
test al, al
je 0x527e42
mov edx, dword [0xb6fce0]
mov dword [esi + 0xb4], edx
mov byte [0xb6fcdd], 0
mov al, byte [0xb6fd14]
test al, al
je 0x527e6e
mov ecx, dword [0xb6fd08]
mov eax, edi
mov dword [eax], ecx
mov edx, dword [0xb6fd0c]
mov dword [eax + 4], edx
mov ecx, dword [0xb6fd10]
mov dword [eax + 8], ecx
mov byte [0xb6fd14], 0
mov al, byte [0xb6fcb4]
test al, al
je 0x527ecc
fld dword [0xb6fca8]
lea ecx, [esi + 0x190]
fsub dword [edi]
mov edx, ecx
fstp dword [esp + 0x30]
mov eax, dword [esp + 0x30]
fld dword [0xb6fcac]
fsub dword [edi + 4]
fstp dword [esp + 0x34]
fld dword [0xb6fcb0]
fsub dword [edi + 8]
mov dword [edx], eax
mov eax, dword [esp + 0x34]
mov dword [edx + 4], eax
fstp dword [esp + 0x38]
mov eax, dword [esp + 0x38]
mov dword [edx + 8], eax
call fcn.0059c910
mov ecx, esi
call fcn.00509ce0
mov byte [0xb6fcb4], 0
pop edi
pop esi
add esp, 0x7c
ret