Function at 0x529ef0
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x28
mov eax, dword [ebp + 8]
mov dword [ebp - 0x1c], esp
mov dword [ebp - 0x10], 0xffffffff
lea esi, [ebp - 0x18]
mov dword [ebp - 0x14], 0x52b1b0
mov edx, dword fs:[0]
mov dword [ebp - 0x18], edx
mov dword fs:[0], esi
mov dword [ecx], eax
mov dword [ebp - 0x2c], ecx
mov dword [ecx + 4], 0
mov dword [ebp - 0x10], 0
push 0x38
call fcn.0071993d
add esp, 4
mov ecx, eax
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp - 0x2c]
mov dword [eax + 4], ecx
mov dword [ecx + 0x10], 0x7d463c
lea esi, [edx + 8]
mov dword [ecx + 0x28], 0
mov dword [ecx + 0x2c], 0
mov eax, dword [edx + 8]
cmp dword [edx + 0x1c], 0x10
cmovae esi, eax
cmp byte [0x889be4], 0
cmovne esi, eax
mov eax, esi
mov edx, dword [edx + 0x18]
cmp edx, 0xf
nop
mov dword [ebp - 0x30], edx
ja 0x529ffe
mov edx, eax
movzx eax, byte [eax]
mov byte [ecx + 0x18], al
movzx eax, byte [edx + 1]
mov byte [ecx + 0x19], al
movzx eax, byte [edx + 2]
mov byte [ecx + 0x1a], al
movzx eax, byte [edx + 3]
mov byte [ecx + 0x1b], al
movzx eax, byte [edx + 4]
mov byte [ecx + 0x1c], al
movzx eax, byte [edx + 5]
mov byte [ecx + 0x1d], al
movzx eax, byte [edx + 6]
mov byte [ecx + 0x1e], al
movzx eax, byte [edx + 7]
mov byte [ecx + 0x1f], al
movzx eax, byte [edx + 8]
mov byte [ecx + 0x20], al
movzx eax, byte [edx + 9]
mov byte [ecx + 0x21], al
movzx eax, byte [edx + 0xa]
mov byte [ecx + 0x22], al
movzx eax, byte [edx + 0xb]
mov byte [ecx + 0x23], al
movzx eax, byte [edx + 0xc]
mov byte [ecx + 0x24], al
movzx eax, byte [edx + 0xd]
mov byte [ecx + 0x25], al
movzx eax, byte [edx + 0xe]
mov byte [ecx + 0x26], al
movzx eax, byte [edx + 0xf]
mov byte [ecx + 0x27], al
mov edx, 0xf
jmp 0x52a150
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x20], ecx
mov eax, edx
or eax, 0xf
test edx, edx
mov ecx, 0x7fffffff
cmovns ecx, eax
cmp ecx, 0xfff
mov dword [ebp - 0x24], ecx
jb 0x52a03e
lea eax, [ecx + 0x24]
mov dword [ebp - 0x10], 1
push eax
call fcn.0071993d
add esp, 4
mov ecx, eax
add eax, 0x23
and eax, 0xffffffe0
mov dword [eax - 4], ecx
jmp 0x52a051
lea eax, [ecx + 1]
mov dword [ebp - 0x10], 1
push eax
call fcn.0071993d
add esp, 4
mov ecx, dword [ebp - 0x20]
mov dword [ecx + 0x18], eax
mov ecx, dword [ebp - 0x30]
cmp ecx, 0xffffffff
je 0x52a14a
inc ecx
xor edx, edx
cmp ecx, 8
jb 0x52a0e6
mov esi, eax
sub esi, dword [ebp - 0x28]
cmp esi, 0x20
jb 0x52a0e6
xor edx, edx
cmp ecx, 0x20
jb 0x52a0b7
mov edx, ecx
and edx, 0xffffffe0
xor esi, esi
mov edi, dword [ebp - 0x28]
nop word cs:[eax + eax]
nop
movups xmm0, xmmword [edi + esi]
movups xmm1, xmmword [edi + esi + 0x10]
movups xmmword [eax + esi], xmm0
movups xmmword [eax + esi + 0x10], xmm1
add esi, 0x20
cmp edx, esi
jne 0x52a090
cmp ecx, edx
je 0x52a14a
test cl, 0x18
je 0x52a0e6
mov esi, edx
mov edx, ecx
and edx, 0xfffffff8
mov edi, dword [ebp - 0x28]
nop word cs:[eax + eax]
nop
movsd xmm0, qword [edi + esi]
movsd qword [eax + esi], xmm0
add esi, 8
cmp edx, esi
jne 0x52a0d0
cmp ecx, edx
je 0x52a14a
mov esi, dword [ebp - 0x30]
sub esi, edx
mov dword [ebp - 0x34], esi
mov edi, ecx
and edi, 3
je 0x52a10c
mov esi, dword [ebp - 0x28]
nop dword [eax + eax]
nop
movzx ebx, byte [esi + edx]
mov byte [eax + edx], bl
inc edx
dec edi
jne 0x52a100
cmp dword [ebp - 0x34], 3
jb 0x52a14a
mov esi, dword [ebp - 0x28]
nop word cs:[eax + eax]
nop
movzx ebx, byte [esi + edx]
mov byte [eax + edx], bl
movzx ebx, byte [esi + edx + 1]
mov byte [eax + edx + 1], bl
movzx ebx, byte [esi + edx + 2]
mov byte [eax + edx + 2], bl
movzx ebx, byte [esi + edx + 3]
mov byte [eax + edx + 3], bl
add edx, 4
cmp ecx, edx
jne 0x52a120
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x24]
nop
mov eax, dword [ebp - 0x30]
mov dword [ecx + 0x28], eax
mov dword [ecx + 0x2c], edx
mov dword [ecx + 0x14], 0x751360
mov eax, dword [ebp + 0x10]
movsd xmm0, qword [eax + 0x20]
mov edx, dword [ebp + 0xc]
movsd qword [ecx + 0x30], xmm0
mov eax, dword [ebp - 0x2c]
mov ecx, dword [eax + 4]
mov dword [ecx], edx
mov ecx, dword [eax + 4]
mov dword [ecx + 4], edx
mov ecx, dword [eax + 4]
mov dword [ecx + 8], edx
mov ecx, dword [eax + 4]
mov byte [ecx + 0xc], 0
mov ecx, dword [eax + 4]
mov byte [ecx + 0xd], 0
mov ecx, dword [ebp - 0x18]
mov dword fs:[0], ecx
add esp, 0x28
pop esi
pop edi
pop ebx
pop ebp
ret 0xc