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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x6296ee
mov eax, dword fs:[0]
push eax
sub esp, 0x2c0
mov eax, dword [0x67e034]
xor eax, esp
mov dword [esp + 0x2b8], eax
push ebx
push esi
push edi
mov eax, dword [0x67e034]
xor eax, esp
push eax
lea eax, [esp + 0x2d0]
mov dword fs:[0], eax
mov dword [esp + 0x44], ecx
mov esi, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x10]
mov dword [esp + 0x58], esi
mov dword [esp + 0x48], edi
mov dword [esp + 0x1c], ebx
test esi, esi
je 0x5247e7
test edi, edi
je 0x5247e7
test ebx, ebx
je 0x5247e7
cmp dword [ebp + 0x14], 0
jg 0x5246f0
mov eax, dword [edi]
push 0xffffffffffffffff
push ecx
push ecx
mov ecx, edi
fldz
fst dword [esp + 4]
fstp dword [esp]
call dword [eax + 0x74]
jmp 0x5247e9
cmp dword [ebp + 0x14], 0x3ff
jl 0x524703
mov eax, dword [ebx]
push 0xffffffffffffffff
push ecx
push ecx
mov ecx, ebx
jmp 0x5246df
mov ecx, esi
call fcn.00460e55
mov eax, dword [eax + 0xa4]
cmp eax, 2
jb 0x52521a
push 4
push ecx
mov ecx, esi
call fcn.00460e55
add esp, 4
call fcn.004d0180
test al, al
je 0x52521a
mov eax, dword [edi]
lea ecx, [esp + 0x2c]
push ecx
mov ecx, edi
call dword [eax + 0x14]
cmp dword [eax], 1
jne 0x52521a
mov eax, dword [edi]
lea ecx, [esp + 0x2c]
push ecx
mov ecx, edi
call dword [eax + 0x14]
cmp dword [eax + 4], 1
jne 0x52521a
test byte [0xfd1e18], 1
jne 0x524783
or dword [0xfd1e18], 1
mov esi, 0xfd1450
call fcn.004c5c33
push 0x62a789
call fcn.005a7da6
pop ecx
lea ecx, [esp + 0x1e4]
call fcn.00492b8b
cmp dword [ebp + 0x14], 0x200
jge 0x524ce2
and dword [esp + 0x2d8], 0
mov eax, dword [edi]
lea ecx, [esp + 0x1c]
push ecx
mov ecx, edi
call dword [eax + 0x1c]
mov eax, dword [eax]
push 0
push 1
push 0x15
mov esi, 0x100
push esi
push eax
lea ecx, [esp + 0x1f8]
mov dword [esp + 0x30], eax
call fcn.00492d02
test al, al
jne 0x52480f
or dword [esp + 0x2d8], 0xffffffff
lea ecx, [esp + 0x1e4]
call fcn.00492c86
xor al, al
mov ecx, dword [esp + 0x2d0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x2b8]
xor ecx, esp
call fcn.005a7b0e
mov esp, ebp
pop ebp
ret 0x10
lea ecx, [esp + 0x1ec]
call fcn.004937d2
test al, al
je 0x5247d3
lea ecx, [esp + 0x1ec]
call fcn.00493913
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 0x14]
imul eax, eax, 0x7f
cdq
and edx, 0x1ff
add eax, edx
mov ebx, eax
sar ebx, 9
mov dword [esp + 0x34], esi
push ebx
mov edx, 0xfd1450
call fcn.004c5d71
xor esi, esi
cmp dword [esp + 0x1c], esi
mov dword [esp + 0x28], eax
jle 0x5248bf
push ebx
mov edx, 0xfd1450
call fcn.004c5d71
test eax, eax
jne 0x52487b
mov eax, dword [esp + 0x14]
mov dword [eax + esi*4], 0x80808080
inc esi
jmp 0x5248b9
mov dword [esp + 0x18], eax
neg dword [esp + 0x18]
jmp 0x5248b3
cmp esi, dword [esp + 0x1c]
jge 0x5248bf
cmp dword [esp + 0x28], 0
jle 0x524898
dec dword [esp + 0x28]
jmp 0x5248b2
mov edx, dword [esp + 0x14]
lea ecx, [eax - 0x80]
and ecx, 0xff
shl ecx, 0x10
or ecx, 0x80008080
mov dword [edx + esi*4], ecx
inc esi
dec eax
cmp eax, dword [esp + 0x18]
jge 0x524885
cmp esi, dword [esp + 0x1c]
jl 0x52485e
lea ecx, [esp + 0x1ec]
call fcn.0049395d
add dword [esp + 0x14], eax
dec dword [esp + 0x34]
jne 0x524847
lea ecx, [esp + 0x1ec]
call fcn.00493864
mov eax, dword [edi]
lea ecx, [esp + 0x2c]
push ecx
mov ecx, edi
call dword [eax + 0x1c]
fild dword [eax]
mov eax, dword [edi]
lea ecx, [esp + 0x38]
push ecx
fstp qword [esp + 0x20]
mov ecx, edi
call dword [eax + 0x24]
fild dword [eax]
mov eax, dword [edi]
lea ecx, [esp + 0x2c]
fdivr qword [esp + 0x1c]
push ecx
mov ecx, edi
fstp dword [esp + 0x18]
call dword [eax + 0x1c]
fild dword [eax + 4]
mov eax, dword [edi]
lea ecx, [esp + 0x38]
push ecx
mov ecx, edi
fstp qword [esp + 0x20]
call dword [eax + 0x24]
fild dword [eax + 4]
lea eax, [esp + 0x2c]
push eax
fdivr qword [esp + 0x20]
lea ecx, [esp + 0x1f0]
fstp dword [esp + 0x1c]
call fcn.004936c2
fild dword [eax]
lea eax, [esp + 0x38]
push eax
lea ecx, [esp + 0x1f0]
fstp qword [esp + 0x20]
call fcn.004936f9
fild dword [eax]
mov eax, dword [edi]
lea ecx, [esp + 0x1c]
push ecx
fdivr qword [esp + 0x20]
mov ecx, edi
fstp dword [esp + 0x30]
call dword [eax + 0x1c]
fild dword [eax + 4]
mov eax, dword [edi]
lea ecx, [esp + 0x1c]
push ecx
fmul qword [0x658148]
mov ecx, edi
fstp dword [esp + 0x3c]
call dword [eax + 0x24]
fild dword [eax]
mov eax, dword [edi]
fld1
lea ecx, [esp + 0x1c]
fdivrp st(1)
push ecx
mov ecx, edi
fchs
fstp dword [esp + 0x44]
call dword [eax + 0x24]
fild dword [eax + 4]
fld1
fld st(0)
fdivrp st(2)
fxch st(1)
fstp dword [esp + 0x28]
fld dword [esp + 0x40]
fsub st(1)
fstp dword [esp + 0x34]
fld dword [esp + 0x34]
fstp dword [esp + 0x104]
fld dword [esp + 0x28]
fsub st(1)
fstp dword [esp + 0x50]
lea eax, [esp + 0xbc]
fld dword [esp + 0x50]
fstp dword [esp + 0x108]
fldz
fst dword [esp + 0x10c]
fst dword [esp + 0x110]
fld dword [esp + 0x18]
fstp dword [esp + 0x114]
fst dword [esp + 0x118]
fld dword [esp + 0x38]
fstp dword [esp + 0x11c]
fld dword [esp + 0x34]
fstp dword [esp + 0x120]
fld dword [esp + 0x28]
fadd st(2)
fstp dword [esp + 0x34]
fld dword [esp + 0x34]
fstp dword [esp + 0x124]
fst dword [esp + 0x128]
fst dword [esp + 0x12c]
fst dword [esp + 0x130]
fst dword [esp + 0x134]
fst dword [esp + 0x138]
fld dword [esp + 0x40]
faddp st(2)
fxch st(1)
fstp dword [esp + 0x40]
fld dword [esp + 0x40]
fstp dword [esp + 0x13c]
fld dword [esp + 0x50]
fstp dword [esp + 0x140]
fst dword [esp + 0x144]
fld dword [esp + 0x14]
fstp dword [esp + 0x148]
fld dword [esp + 0x18]
fstp dword [esp + 0x14c]
fld dword [esp + 0x2c]
fstp dword [esp + 0x150]
fld dword [esp + 0x38]
fstp dword [esp + 0x154]
fld dword [esp + 0x40]
fstp dword [esp + 0x158]
fld dword [esp + 0x34]
fstp dword [esp + 0x15c]
fst dword [esp + 0x160]
fld dword [esp + 0x14]
fstp dword [esp + 0x164]
fst dword [esp + 0x168]
fld dword [esp + 0x2c]
fstp dword [esp + 0x16c]
fstp dword [esp + 0x170]
call fcn.004d374c
push 0
push 1
push 4
push 0x202
push 0x1c
xor ebx, ebx
mov byte [esp + 0x2ec], 1
call fcn.004d3803
lea ecx, [esp + 0xbc]
test al, al
jne 0x524b29
mov byte [esp + 0x2d8], bl
call fcn.004d37b8
jmp 0x5247d3
call fcn.004d38eb
test al, al
jne 0x524b42
mov byte [esp + 0x2d8], bl
lea ecx, [esp + 0xbc]
jmp 0x524b1f
mov edi, dword [esp + 0xe4]
push 0x1c
pop ecx
lea esi, [esp + 0x104]
rep movsd dword es:[edi], dword [esi]
lea esi, [esp + 0xbc]
call fcn.004d392c
mov ebx, dword [esp + 0x58]
xor esi, esi
inc esi
push esi
push esi
xor edi, edi
mov ecx, ebx
call fcn.0045f12f
push esi
push esi
mov edi, esi
mov ecx, ebx
call fcn.0045f12f
mov esi, dword [esp + 0x48]
mov eax, dword [esi]
xor edi, edi
push edi
push edi
mov ecx, esi
call dword [eax + 0x28]
cmp eax, edi
je 0x524b96
lea ecx, [eax + 8]
jmp 0x524b98
xor ecx, ecx
push edi
mov edi, ebx
call fcn.0045f053
push 1
lea ecx, [esp + 0x1f0]
call fcn.0045f053
mov eax, dword [esp + 0x44]
mov edi, dword [eax + 0x10]
mov ecx, ebx
call fcn.0045df70
mov eax, dword [esp + 0x44]
mov edi, dword [eax + 0x40]
mov ecx, ebx
call fcn.0045f923
lea edi, [esp + 0xbc]
mov ecx, ebx
call fcn.0045e0b1
mov eax, dword [esi]
lea ecx, [esp + 0x1c]
push ecx
mov ecx, esi
call dword [eax + 0x1c]
fild dword [eax]
fld1
mov eax, dword [esi]
fdivrp st(1)
lea ecx, [esp + 0x1c]
push ecx
mov ecx, esi
fmul qword [0x657618]
fstp dword [esp + 0x4c]
fld dword [esp + 0x4c]
fst dword [esp + 0x60]
fst dword [esp + 0x64]
fst dword [esp + 0x68]
fstp dword [esp + 0x6c]
fld dword [esp + 0x18]
fstp dword [esp + 0x70]
fld dword [esp + 0x1c]
fstp dword [esp + 0x74]
fldz
fst dword [esp + 0x78]
fst dword [esp + 0x7c]
fst dword [esp + 0x80]
fst dword [esp + 0x84]
fst dword [esp + 0x88]
fstp dword [esp + 0x8c]
call dword [eax + 0x1c]
fld dword [esp + 0x14]
fidiv dword [eax]
lea ecx, [esp + 0x48]
mov eax, dword [esi]
push ecx
mov ecx, esi
fstp dword [esp + 0x90]
fld dword [esp + 0x1c]
fstp qword [esp + 0x20]
call dword [eax + 0x1c]
fild dword [eax + 4]
push 4
lea eax, [esp + 0x60]
push eax
fdivr qword [esp + 0x24]
mov ecx, ebx
fstp dword [esp + 0x98]
fldz
fst dword [esp + 0x9c]
fstp dword [esp + 0xa0]
call fcn.0045f9c2
push 6
pop ecx
push 5
pop edi
mov edx, ebx
call fcn.0045ea82
mov ecx, ebx
call fcn.0045fda4
xor edi, edi
mov ecx, ebx
call fcn.0045df70
mov ecx, ebx
call fcn.0045f923
mov ecx, ebx
call fcn.0045e0b1
push edi
xor ecx, ecx
mov edi, ebx
call fcn.0045f053
push 1
xor ecx, ecx
call fcn.0045f053
mov byte [esp + 0x2d8], 0
jmp 0x5251f3
lea ecx, [esp + 0x2c]
mov dword [esp + 0x2d8], 2
mov eax, dword [ebx]
push ecx
mov ecx, ebx
call dword [eax + 0x1c]
mov eax, dword [eax]
push 0
push 1
push 0x15
mov esi, 0x100
push esi
push eax
lea ecx, [esp + 0x1f8]
mov dword [esp + 0x4c], eax
call fcn.00492d02
test al, al
je 0x5247d3
lea ecx, [esp + 0x1ec]
call fcn.004937d2
test al, al
je 0x5247d3
lea ecx, [esp + 0x1ec]
call fcn.00493913
mov dword [esp + 0x18], eax
mov eax, 0x200
sub eax, dword [ebp + 0x14]
mov dword [esp + 0x2c], esi
imul eax, eax, 0x7f
cdq
and edx, 0x1ff
add eax, edx
mov edi, eax
sar edi, 9
add edi, 0x7f
push edi
mov edx, 0xfd1450
call fcn.004c5d71
xor esi, esi
cmp dword [esp + 0x38], esi
mov dword [esp + 0x28], eax
jle 0x524ddc
push edi
mov edx, 0xfd1450
call fcn.004c5d71
test eax, eax
jne 0x524d98
mov eax, dword [esp + 0x18]
mov dword [eax + esi*4], 0x80808080
inc esi
jmp 0x524dd6
mov dword [esp + 0x14], eax
neg dword [esp + 0x14]
jmp 0x524dd0
cmp esi, dword [esp + 0x38]
jge 0x524ddc
cmp dword [esp + 0x28], 0
jle 0x524db5
dec dword [esp + 0x28]
jmp 0x524dcf
mov edx, dword [esp + 0x18]
lea ecx, [eax - 0x80]
and ecx, 0xff
shl ecx, 0x10
or ecx, 0x80008080
mov dword [edx + esi*4], ecx
inc esi
dec eax
cmp eax, dword [esp + 0x14]
jge 0x524da2
cmp esi, dword [esp + 0x38]
jl 0x524d7b
lea ecx, [esp + 0x1ec]
call fcn.0049395d
add dword [esp + 0x18], eax
dec dword [esp + 0x2c]
jne 0x524d64
lea ecx, [esp + 0x1ec]
call fcn.00493864
mov eax, dword [ebx]
lea ecx, [esp + 0x38]
push ecx
mov ecx, ebx
call dword [eax + 0x1c]
fild dword [eax]
mov eax, dword [ebx]
lea ecx, [esp + 0x50]
push ecx
fstp qword [esp + 0x30]
mov ecx, ebx
call dword [eax + 0x24]
fild dword [eax]
mov eax, dword [ebx]
lea ecx, [esp + 0x38]
fdivr qword [esp + 0x2c]
push ecx
mov ecx, ebx
fstp dword [esp + 0x18]
call dword [eax + 0x1c]
fild dword [eax + 4]
mov eax, dword [ebx]
lea ecx, [esp + 0x50]
push ecx
mov ecx, ebx
fstp qword [esp + 0x30]
call dword [eax + 0x24]
fild dword [eax + 4]
lea eax, [esp + 0x38]
push eax
fdivr qword [esp + 0x30]
lea ecx, [esp + 0x1f0]
fstp dword [esp + 0x1c]
call fcn.004936c2
fild dword [eax]
lea eax, [esp + 0x50]
push eax
lea ecx, [esp + 0x1f0]
fstp qword [esp + 0x30]
call fcn.004936f9
fild dword [eax]
mov eax, dword [ebx]
lea ecx, [esp + 0x2c]
push ecx
fdivr qword [esp + 0x30]
mov ecx, ebx
fstp dword [esp + 0x2c]
call dword [eax + 0x1c]
fild dword [eax + 4]
mov eax, dword [ebx]
lea ecx, [esp + 0x2c]
push ecx
fmul qword [0x658148]
mov ecx, ebx
fstp dword [esp + 0x38]
call dword [eax + 0x24]
fild dword [eax]
mov eax, dword [ebx]
fld1
lea ecx, [esp + 0x2c]
fdivrp st(1)
push ecx
mov ecx, ebx
fchs
fstp dword [esp + 0x54]
call dword [eax + 0x24]
fild dword [eax + 4]
fld1
fld st(0)
fdivrp st(2)
fxch st(1)
fstp dword [esp + 0x38]
fld dword [esp + 0x50]
fsub st(1)
fstp dword [esp + 0x2c]
fld dword [esp + 0x2c]
fstp dword [esp + 0x104]
fld dword [esp + 0x38]
fsub st(1)
fstp dword [esp + 0x40]
lea eax, [esp + 0xbc]
fld dword [esp + 0x40]
fstp dword [esp + 0x108]
fldz
fst dword [esp + 0x10c]
fst dword [esp + 0x110]
fld dword [esp + 0x18]
fstp dword [esp + 0x114]
fst dword [esp + 0x118]
fld dword [esp + 0x34]
fstp dword [esp + 0x11c]
fld dword [esp + 0x2c]
fstp dword [esp + 0x120]
fld dword [esp + 0x38]
fadd st(2)
fstp dword [esp + 0x38]
fld dword [esp + 0x38]
fstp dword [esp + 0x124]
fst dword [esp + 0x128]
fst dword [esp + 0x12c]
fst dword [esp + 0x130]
fst dword [esp + 0x134]
fst dword [esp + 0x138]
fld dword [esp + 0x50]
faddp st(2)
fxch st(1)
fstp dword [esp + 0x2c]
fld dword [esp + 0x2c]
fstp dword [esp + 0x13c]
fld dword [esp + 0x40]
fstp dword [esp + 0x140]
fst dword [esp + 0x144]
fld dword [esp + 0x14]
fstp dword [esp + 0x148]
fld dword [esp + 0x18]
fstp dword [esp + 0x14c]
fld dword [esp + 0x28]
fstp dword [esp + 0x150]
fld dword [esp + 0x34]
fstp dword [esp + 0x154]
fld dword [esp + 0x2c]
fstp dword [esp + 0x158]
fld dword [esp + 0x38]
fstp dword [esp + 0x15c]
fst dword [esp + 0x160]
fld dword [esp + 0x14]
fstp dword [esp + 0x164]
fst dword [esp + 0x168]
fld dword [esp + 0x28]
fstp dword [esp + 0x16c]
fstp dword [esp + 0x170]
call fcn.004d374c
push 0
push 1
push 4
push 0x202
push 0x1c
xor ebx, ebx
mov byte [esp + 0x2ec], 3
call fcn.004d3803
lea ecx, [esp + 0xbc]
test al, al
jne 0x525042
mov byte [esp + 0x2d8], 2
jmp 0x524b1f
call fcn.004d38eb
test al, al
jne 0x525058
mov byte [esp + 0x2d8], 2
jmp 0x524b39
mov edi, dword [esp + 0xe4]
push 0x1c
pop ecx
lea esi, [esp + 0x104]
rep movsd dword es:[edi], dword [esi]
lea esi, [esp + 0xbc]
call fcn.004d392c
mov esi, dword [esp + 0x58]
push 3
push 3
xor edi, edi
mov ecx, esi
call fcn.0045f12f
inc edi
push edi
push edi
mov ecx, esi
call fcn.0045f12f
mov ebx, dword [esp + 0x1c]
mov eax, dword [ebx]
xor edi, edi
push edi
push edi
mov ecx, ebx
call dword [eax + 0x28]
cmp eax, edi
je 0x5250aa
lea ecx, [eax + 8]
jmp 0x5250ac
xor ecx, ecx
push edi
mov edi, esi
call fcn.0045f053
push 1
lea ecx, [esp + 0x1f0]
call fcn.0045f053
mov eax, dword [esp + 0x44]
mov edi, dword [eax + 0x10]
mov ecx, esi
call fcn.0045df70
mov eax, dword [esp + 0x44]
mov edi, dword [eax + 0x40]
mov ecx, esi
call fcn.0045f923
lea edi, [esp + 0xbc]
mov ecx, esi
call fcn.0045e0b1
mov ecx, dword [esp + 0x48]
mov eax, dword [ecx]
lea edx, [esp + 0x1c]
push edx
call dword [eax + 0x1c]
fild dword [eax]
fld1
mov eax, dword [ebx]
fdivrp st(1)
lea ecx, [esp + 0x1c]
push ecx
mov ecx, ebx
fmul qword [0x657618]
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fst dword [esp + 0x60]
fst dword [esp + 0x64]
fst dword [esp + 0x68]
fstp dword [esp + 0x6c]
fld dword [esp + 0x18]
fstp dword [esp + 0x70]
fld dword [esp + 0x1c]
fstp dword [esp + 0x74]
fldz
fst dword [esp + 0x78]
fst dword [esp + 0x7c]
fst dword [esp + 0x80]
fst dword [esp + 0x84]
fst dword [esp + 0x88]
fstp dword [esp + 0x8c]
call dword [eax + 0x1c]
fld dword [esp + 0x14]
fidiv dword [eax]
lea ecx, [esp + 0x48]
mov eax, dword [ebx]
push ecx
mov ecx, ebx
fstp dword [esp + 0x90]
fld dword [esp + 0x1c]
fstp qword [esp + 0x20]
call dword [eax + 0x1c]
fild dword [eax + 4]
push 4
lea eax, [esp + 0x60]
push eax
fdivr qword [esp + 0x24]
mov ecx, esi
fstp dword [esp + 0x98]
fldz
fst dword [esp + 0x9c]
fstp dword [esp + 0xa0]
call fcn.0045f9c2
push 6
pop ecx
push 5
pop edi
mov edx, esi
call fcn.0045ea82
mov ecx, esi
call fcn.0045fda4
xor edi, edi
mov ecx, esi
call fcn.0045df70
mov ecx, esi
call fcn.0045f923
mov ecx, esi
call fcn.0045e0b1
push edi
xor ecx, ecx
mov edi, esi
call fcn.0045f053
push 1
xor ecx, ecx
call fcn.0045f053
mov byte [esp + 0x2d8], 2
lea ecx, [esp + 0xbc]
call fcn.004d37b8
or dword [esp + 0x2d8], 0xffffffff
lea ecx, [esp + 0x1e4]
call fcn.00492c86
mov al, 1
jmp 0x5247e9
lea eax, [esp + 0x9c]
push eax
call fcn.0046bb85
lea ecx, [esp + 0x104]
mov dword [esp + 0x2d8], 4
call fcn.00492b8b
cmp dword [ebp + 0x14], 0x200
lea ecx, [esp + 0x1c]
mov byte [esp + 0x2d8], 5
push ecx
jge 0x525380
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x1c]
push dword [eax + 4]
mov ecx, edi
push dword [eax]
mov eax, dword [edi]
call dword [eax + 0xc]
lea ecx, [esp + 0xa4]
call fcn.0046bc23
test al, al
jne 0x5252a8
lea ecx, [esp + 0x104]
mov byte [esp + 0x2d8], 4
call fcn.00492c86
or dword [esp + 0x2d8], 0xffffffff
lea ecx, [esp + 0x9c]
call fcn.0046bbe3
jmp 0x5247e7
mov eax, dword [edi]
lea ecx, [esp + 0x1c]
push ecx
mov ecx, edi
call dword [eax + 0x1c]
xor ebx, ebx
push ebx
mov esi, eax
mov eax, dword [edi]
push 1
mov ecx, edi
call dword [eax + 0xc]
push eax
push dword [esi + 4]
lea ecx, [esp + 0x114]
push dword [esi]
call fcn.00492d02
test al, al
je 0x52527b
mov eax, dword [edi]
lea ecx, [esp + 0x48]
push ecx
mov ecx, edi
xor esi, esi
mov dword [esp + 0x24], ebx
call dword [eax + 0x1c]
push dword [eax + 4]
push dword [eax]
xor eax, eax
push ebx
push esi
push ebx
push eax
lea eax, [esp + 0xb8]
push eax
mov esi, edi
call fcn.004cfaf0
add esp, 0x1c
test al, al
je 0x52527b
lea ecx, [esp + 0x10c]
call fcn.004983c0
test al, al
je 0x52527b
xor eax, eax
xor edx, edx
push edx
lea edi, [esp + 0x20]
stosb byte es:[edi], al
mov eax, dword [ebp + 0x14]
cdq
xor ecx, ecx
push ecx
sub eax, edx
sar eax, 1
mov ecx, 0x400
sub ecx, eax
push ecx
push dword [esp + 0x28]
lea eax, [esp + 0x11c]
push eax
lea eax, [esp + 0xb4]
call fcn.0052622e
test al, al
je 0x52527b
fldz
push 0xffffffffffffffff
push ecx
push ecx
fst dword [esp + 4]
lea ecx, [esp + 0x110]
fstp dword [esp]
call fcn.004943bd
mov bl, al
jmp 0x525468
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x1c]
push dword [eax + 4]
mov ecx, ebx
push dword [eax]
mov eax, dword [ebx]
call dword [eax + 0xc]
lea ecx, [esp + 0xa4]
call fcn.0046bc23
test al, al
je 0x52527b
mov eax, dword [ebx]
lea ecx, [esp + 0x1c]
push ecx
mov ecx, ebx
call dword [eax + 0x1c]
xor edi, edi
push edi
mov esi, eax
mov eax, dword [ebx]
push 1
mov ecx, ebx
call dword [eax + 0xc]
push eax
push dword [esi + 4]
lea ecx, [esp + 0x114]
push dword [esi]
call fcn.00492d02
test al, al
je 0x52527b
mov eax, dword [ebx]
lea ecx, [esp + 0x48]
push ecx
mov ecx, ebx
xor esi, esi
mov dword [esp + 0x24], edi
call dword [eax + 0x1c]
push dword [eax + 4]
push dword [eax]
xor eax, eax
push edi
push esi
push edi
push eax
lea eax, [esp + 0xb8]
push eax
mov esi, ebx
call fcn.004cfaf0
add esp, 0x1c
test al, al
je 0x52527b
lea ecx, [esp + 0x10c]
call fcn.004983c0
test al, al
je 0x52527b
xor eax, eax
lea edi, [esp + 0x1c]
stosb byte es:[edi], al
mov eax, dword [ebp + 0x14]
add eax, 0xfffffe00
xor edx, edx
push edx
cdq
sub eax, edx
sar eax, 1
xor ecx, ecx
push ecx
add eax, 0x300
push eax
push dword [esp + 0x28]
lea eax, [esp + 0x11c]
push eax
lea eax, [esp + 0xb4]
call fcn.0052622e
test al, al
jne 0x525360
xor bl, bl
lea ecx, [esp + 0x104]
mov byte [esp + 0x2d8], 4
call fcn.00492c86
or dword [esp + 0x2d8], 0xffffffff
lea ecx, [esp + 0x9c]
call fcn.0046bbe3
mov al, bl
jmp 0x5247e9