Function at 0x528d90
Capabilities:
Contain obfuscated stackstrings

Disassembly:
sub esp, 0x54
mov eax, dword [0x586220]
xor eax, esp
mov dword [esp + 0x50], eax
push ebx
mov ebx, dword [esp + 0x5c]
xor al, al
push ebp
push esi
xor esi, esi
movzx eax, al
test bl, 2
mov ecx, ebx
push edi
mov edi, 1
cmovne eax, edi
and ecx, edi
mov dword [esp + 0x18], ecx
jne 0x528dca
test al, al
je 0x528fa2
lea eax, [esp + 0x20]
xorps xmm0, xmm0
push eax
movdqu xmmword [esp + 0x24], xmm0
call fcn.00529b30
mov dword [esp + 0x14], eax
test eax, eax
jne 0x528dec
mov esi, edi
jmp 0x528fa2
mov edi, eax
mov dword [esp + 0x30], esi
push 7
lea eax, [esp + 0x44]
mov dword [esp + 0x40], esi
push eax
xor ebp, ebp
mov dword [esp + 0x18], esi
mov dword [esp + 0x40], esi
mov dword [esp + 0x48], 0x767d677f
mov dword [esp + 0x4c], 0x32382435
mov dword [esp + 0x50], 0x6c610d6a
mov dword [esp + 0x54], 0x7b607044
mov dword [esp + 0x58], 0x56783b35
mov dword [esp + 0x5c], 0x71773821
mov dword [esp + 0x60], 0x180f6c7b
call fcn.0052d2f0
lea eax, [esp + 0x38]
mov dword [esp + 0x38], esi
push eax
lea eax, [esp + 0x44]
push eax
call fcn.0052c5d0
mov dword [esp + 0x1c], eax
xorps xmm0, xmm0
lea eax, [esp + 0x30]
mov dword [esp + 0x38], esi
push eax
movdqu xmmword [esp + 0x44], xmm0
movdqu xmmword [esp + 0x54], xmm0
call fcn.00529760
mov ecx, dword [esp + 0x30]
xor edx, edx
cmp eax, 1
cmovne ecx, edx
mov dword [esp + 0x30], ecx
call fcn.005296f0
mov edx, eax
mov dword [esp + 0x34], edx
cmp dword [edi], 0
mov eax, 1
cmove ebp, eax
cmp dword [esp + 0x18], 0
je 0x528eb9
push dword [esp + 0x1c]
push edi
call fcn.00528c50
mov edx, dword [esp + 0x34]
test eax, eax
je 0x528eb9
or esi, eax
cmp dword [esp + 0x2c], 0
je 0x528f21
cmp dword [esp + 0x30], 0
je 0x528ee6
mov eax, dword [edi + 0x44]
cmp eax, edx
jne 0x528ed7
mov eax, dword [edi + 0x48]
mov dword [esp + 0x3c], eax
jmp 0x528ee6
mov ecx, dword [esp + 0x10]
cmp eax, dword [esp + 0x30]
cmove ecx, edi
mov dword [esp + 0x10], ecx
cmp dword [edi + 0x44], edx
jne 0x528f21
test ebx, 0x100
je 0x528f21
call fcn.005296f0
cmp dword [edi + 4], 0
mov edx, eax
je 0x528f21
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x528f21
lea eax, [edi + 0xd8]
cmp dword [eax], edx
je 0x528f1b
or esi, 0x2000
add eax, 0x40
dec ecx
jne 0x528f11
add edi, dword [edi]
mov edx, dword [esp + 0x34]
test ebp, ebp
je 0x528e93
cmp dword [esp + 0x30], 0
je 0x528f8c
cmp dword [esp + 0x3c], 0
je 0x528f8c
mov ebp, dword [esp + 0x10]
test ebp, ebp
je 0x528f8c
mov ecx, dword [esp + 0x2c]
mov eax, dword [ebp + 0x24]
cmp eax, dword [ecx + 0x24]
ja 0x528f8c
jb 0x528f5b
mov eax, dword [ebp + 0x20]
cmp eax, dword [ecx + 0x20]
jae 0x528f8c
mov edi, dword [esp + 0x1c]
test edi, edi
je 0x528f8c
push dword [esp + 0x30]
call edi
test eax, eax
je 0x528f7a
mov eax, dword [esp + 0x3c]
cmp dword [esp + 0x30], eax
je 0x528f7a
or esi, 2
push edi
push ebp
call fcn.00528c50
test eax, eax
je 0x528f8c
or eax, 0x8000
or esi, eax
push dword [esp + 0x14]
mov dword [esp + 0x34], 0
call fcn.0052f3c0
mov edi, 1
xor al, al
mov ebp, ebx
and ebp, 4
movzx eax, al
mov ecx, ebx
cmovne eax, edi
and ecx, 8
mov dword [esp + 0x14], ecx
mov ecx, ebx
movzx eax, al
cmovne eax, edi
and ecx, 0x10
mov dword [esp + 0x18], ecx
jne 0x528fd1
test al, al
je 0x5290a1
call fcn.0052e560
mov edi, eax
test edi, edi
je 0x5290a1
mov dword [esp + 0x3c], 0
mov ecx, 1
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x30], ecx
test ebp, ebp
je 0x52902a
lea eax, [esp + 0x3c]
push eax
push 4
lea eax, [esp + 0x3c]
push eax
push 7
push 0xffffffffffffffff
call edi
mov ecx, dword [esp + 0x34]
xor edx, edx
test eax, eax
cmovne ecx, edx
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x30]
cmp dword [esp + 0x14], 0
je 0x529056
lea eax, [esp + 0x3c]
push eax
push 4
lea eax, [esp + 0x40]
push eax
push 0x1e
push 0xffffffffffffffff
call edi
mov ecx, dword [esp + 0x38]
xor edx, edx
test eax, eax
cmovne ecx, edx
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x30]
cmp dword [esp + 0x18], 0
je 0x52907d
lea eax, [esp + 0x3c]
push eax
push 4
lea eax, [esp + 0x38]
push eax
push 0x1f
push 0xffffffffffffffff
call edi
mov ecx, dword [esp + 0x30]
test eax, eax
mov eax, 1
cmovne ecx, eax
cmp dword [esp + 0x34], 0
je 0x52908a
or esi, 0x100
cmp dword [esp + 0x38], 0
je 0x529097
or esi, 0x200
test ecx, ecx
jne 0x5290a1
or esi, 0x400
test bl, 0x20
je 0x5290bb
call fcn.0052d350
test eax, eax
je 0x5290bb
cmp byte [eax + 2], 0
je 0x5290bb
or esi, 0x800
test bl, bl
jns 0x5290db
call fcn.0052d350
test eax, eax
je 0x5290db
mov eax, dword [eax + 0x10]
test eax, eax
je 0x5290db
cmp dword [eax + 0xc], 0
je 0x5290db
or esi, 0x1000
test ebx, 0x200
je 0x5290f2
call fcn.0052f390
test al, al
je 0x5290f2
or esi, 0x40000
test ebx, 0x400
je 0x529102
push ebx
call fcn.00529280
or esi, eax
test ebx, 0x1000
je 0x529119
call fcn.0052f390
test al, al
je 0x529119
or esi, 0x200000
test ebx, 0x2000
je 0x529142
call fcn.0052d410
test eax, eax
je 0x529142
cmp dword [eax + 0xf20], 0
jne 0x52913c
cmp dword [eax + 0xf24], 0
je 0x529142
or esi, 0x400000
test ebx, 0x10000
je 0x529156
call fcn.005291d0
test al, al
je 0x529156
or esi, 8
test ebx, 0x4000
je 0x52916f
push 0
call fcn.00528ce0
test al, al
je 0x52916f
or esi, 0x800000
test ebx, 0x8000
je 0x5291ae
call fcn.0052e820
test eax, eax
je 0x5291ae
push 0
push 0
push 0
push 0
push 0
push 7
call eax
xor eax, 0x756e6971
cmp eax, 0xb56e6a25
je 0x5291ae
cmp eax, 0xb56e6973
je 0x5291ae
cmp eax, 0xb56e6953
je 0x5291ae
or esi, 0x800000
mov ecx, dword [esp + 0x60]
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00535482
add esp, 0x54
ret 4