Function at 0x525480
Capabilities:
Packed with generic packer

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 8
cmp byte [edi + 0xec], 0
push ebx
push esi
jne 0x525722
mov eax, dword [edi + 0x28]
cmp eax, 1
je 0x525722
cmp eax, 2
je 0x525722
cmp eax, 3
je 0x525722
cmp dword [edi + 0xb4], 0
jg 0x525722
cmp dword [edi + 0xb0], 0
jg 0x525722
cmp eax, 0x14
jl 0x525722
cmp eax, 0x1c
jg 0x525722
cmp dword [edi + 0x64], 8
je 0x525722
cmp eax, 0x15
fld dword [0x67959c]
fstp dword [esp + 0xc]
jl 0x525519
cmp eax, 0x1a
jg 0x525519
add eax, 0xffffffeb
mov dword [esp + 0xc], eax
fild dword [esp + 0xc]
fmul qword [0x679338]
fadd qword [0x679368]
jmp 0x525531
cmp eax, 0x1b
jne 0x525526
fld dword [0x6795bc]
jmp 0x525531
cmp eax, 0x1c
jne 0x525535
fld dword [0x67998c]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
mov esi, dword [edi + 0x68]
fadd qword [0x6792d0]
push 0xb
sub esp, 8
mov ebx, 0x50
fstp dword [esp + 0x18]
mov eax, esi
fld dword [esp + 0x18]
xor ecx, ecx
fstp dword [esp + 4]
mov edx, ebx
fld dword [0x679988]
fstp dword [esp]
call fcn.00511bf0
fstp dword [esp + 0x18]
add esp, 0xc
fld dword [esp + 0xc]
fst dword [edi + 0x84]
fld qword [0x679330]
fdiv st(1), st(0)
fsubrp st(1)
call fcn.006397d0
test eax, eax
jg 0x525594
xor eax, eax
jmp 0x52559e
cmp eax, 3
jl 0x52559e
mov eax, 3
cmp esi, 7
mov dword [edi + 0x48], eax
jne 0x5255d0
mov eax, dword [edi]
fldz
mov ecx, dword [eax + 0x820]
mov eax, dword [edi + 0x118]
mov edx, dword [ecx + 8]
and eax, 0xffff
lea eax, [eax + eax*4]
shl eax, 5
add eax, dword [edx]
fstp dword [eax + 4]
mov dword [eax + 0x10], 3
mov eax, dword [edi + 0x6c]
cmp eax, 0xfffffffe
je 0x5255ef
cmp eax, 0xfffffffd
je 0x5255ef
cmp dword [edi + 0x68], 5
jne 0x5255ef
mov eax, dword [edi]
mov esi, 0x1a
call fcn.00453630
mov eax, dword [edi + 0x64]
cmp eax, 4
jne 0x525600
mov dword [edi + 0x64], 0
jmp 0x52561e
cmp eax, 5
jne 0x525615
mov byte [edi + 0xbe], 0
mov dword [edi + 0x64], 0
jmp 0x525630
cmp byte [edi + 0xbe], 0
je 0x525630
fld dword [edi + 0x84]
fadd qword [0x679318]
fstp dword [edi + 0x84]
cmp dword [edi + 0x28], 0x1b
jne 0x5256af
cmp dword [edi + 0x68], 0x46
jne 0x5256af
push 2
push edi
call fcn.0052e780
mov ebx, eax
test ebx, ebx
je 0x5256aa
cmp dword [ebx + 0x24], 0x17
jne 0x5256aa
mov eax, dword [edi]
mov esi, 0x30
call fcn.00453630
mov eax, dword [ebx + 0xc]
mov edx, dword [ebx + 8]
mov ecx, dword [edi + 0x20]
sub eax, 0x14
mov dword [esp + 0xc], eax
fild dword [esp + 0xc]
add edx, 0x3c
sub esp, 8
mov dword [esp + 0x14], edx
mov edx, dword [edi]
fstp dword [esp + 4]
fild dword [esp + 0x14]
add ecx, 1
lea eax, [esi - 0x13]
fstp dword [esp]
call fcn.00453c80
push 0
push edi
mov dword [edi + 0xd8], 0
call fcn.00525350
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ebx, 0x50
cmp dword [edi + 0x68], 0
jne 0x525722
mov eax, edi
call fcn.0052ae40
test al, al
je 0x5256cc
push 2
push edi
call fcn.0052e780
test eax, eax
jne 0x5256e3
mov eax, edi
mov dword [edi + 0x28], 0x14
call fcn.00524a70
mov dword [edi + 0x68], ebx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, 0x15
cmp dword [edi + 0x28], ecx
jne 0x525717
mov ecx, dword [edi + 8]
jmp 0x85a000
fldz
mov dword [edi + 0x28], ecx
fstp dword [edi + 0x34]
mov dword [edi + 0x68], ebx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret