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

Disassembly:
sub esp, 0x150
lea eax, [esp + 0x40]
lea edx, [esp + 0x78]
push ebp
mov ebp, ecx
push 0xf
push dword [ebp + 0x3a0]
lea ecx, [ebp + 0x3a4]
push eax
call fcn.00546fd0
mov edx, dword [ebp + 0x3a0]
cmp edx, 0x36
jae 0x52e209
mov eax, 0x36
lea ecx, [esp + 0x44]
sub eax, edx
add ecx, edx
push eax
push 0
push ecx
call sub.msvcrt.dll_memset
add esp, 0xc
xorps xmm0, xmm0
xor ecx, ecx
movups xmmword [esp + 4], xmm0
movups xmmword [esp + 0x14], xmm0
movups xmmword [esp + 0x24], xmm0
movups xmmword [esp + 0x34], xmm0
movzx eax, byte [esp + ecx + 0x44]
inc dword [esp + eax*4 + 4]
movzx eax, byte [esp + ecx + 0x45]
inc dword [esp + eax*4 + 4]
movzx eax, byte [esp + ecx + 0x46]
inc dword [esp + eax*4 + 4]
movzx eax, byte [esp + ecx + 0x47]
inc dword [esp + eax*4 + 4]
movzx eax, byte [esp + ecx + 0x48]
inc dword [esp + eax*4 + 4]
movzx eax, byte [esp + ecx + 0x49]
add ecx, 6
inc dword [esp + eax*4 + 4]
cmp ecx, 0x36
jb 0x52e222
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
lea ecx, [eax + ecx*2]
mov eax, dword [esp + 0x10]
lea ecx, [eax + ecx*2]
mov eax, dword [esp + 0x14]
lea ecx, [eax + ecx*2]
mov eax, dword [esp + 0x18]
lea ecx, [eax + ecx*2]
mov eax, dword [esp + 0x1c]
lea ecx, [eax + ecx*2]
mov eax, dword [esp + 0x20]
lea ecx, [eax + ecx*2]
mov eax, dword [esp + 0x24]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x28]
mov dword [ebp], edx
mov ecx, edx
mov dword [ebp + 0x24], edx
mov dword [esp + 0x28], edx
add edx, eax
lea ecx, [eax + ecx*2]
mov eax, ecx
add ecx, ecx
shl eax, 6
mov dword [ebp + 4], eax
mov eax, ecx
sub eax, edx
mov dword [ebp + 0x28], eax
mov eax, dword [esp + 0x2c]
add ecx, eax
mov dword [esp + 0x2c], edx
add edx, eax
mov eax, ecx
add ecx, ecx
shl eax, 5
mov dword [ebp + 8], eax
mov eax, ecx
sub eax, edx
mov dword [ebp + 0x2c], eax
mov eax, dword [esp + 0x30]
add ecx, eax
mov dword [esp + 0x30], edx
add edx, eax
mov eax, ecx
add ecx, ecx
shl eax, 4
mov dword [ebp + 0xc], eax
mov eax, ecx
sub eax, edx
mov dword [ebp + 0x30], eax
mov eax, dword [esp + 0x34]
add ecx, eax
mov dword [esp + 0x34], edx
add edx, eax
lea eax, [ecx*8]
add ecx, ecx
mov dword [ebp + 0x10], eax
mov eax, ecx
sub eax, edx
mov dword [ebp + 0x34], eax
mov eax, dword [esp + 0x38]
add ecx, eax
mov dword [esp + 0x38], edx
add edx, eax
lea eax, [ecx*4]
add ecx, ecx
mov dword [ebp + 0x14], eax
mov eax, ecx
sub eax, edx
mov dword [ebp + 0x38], eax
mov eax, dword [esp + 0x3c]
add ecx, eax
add ecx, ecx
mov dword [esp + 0x3c], edx
add edx, eax
mov dword [ebp + 0x18], ecx
mov eax, ecx
sub eax, edx
mov dword [ebp + 0x3c], eax
mov eax, dword [esp + 0x40]
add ecx, eax
mov dword [esp + 0x40], edx
mov dword [ebp + 0x1c], ecx
mov dword [ebp + 0x20], 0x8000
cmp ecx, 0x8000
jne 0x52e411
push ebx
push esi
push edi
xor ebx, ebx
mov edi, 1
mov esi, dword [esp + edi*4 + 0x10]
mov ecx, 8
sub ecx, edi
mov eax, ebx
shr eax, cl
shl esi, cl
mov dword [esp + edi*4 + 0x10], eax
lea eax, [ebp + 0x40]
push esi
add eax, ebx
push edi
push eax
call sub.msvcrt.dll_memset
inc edi
add esp, 0xc
add ebx, esi
cmp edi, 8
jbe 0x52e375
xor edx, edx
xor ebx, ebx
movzx edi, byte [esp + ebx + 0x50]
test edi, edi
je 0x52e402
mov esi, dword [esp + edi*4 + 0x10]
lea eax, [esi + 1]
mov dword [esp + edi*4 + 0x10], eax
cmp edi, 8
jb 0x52e3c9
mov word [ebp + esi*2 + 0x140], dx
jmp 0x52e402
mov ecx, 9
lea eax, [ebp + 0x140]
sub ecx, edi
shl esi, cl
add eax, esi
mov esi, 1
shl esi, cl
add esi, eax
cmp edi, 6
jb 0x52e3f0
mov dword [eax], edx
mov dword [esi - 4], edx
jmp 0x52e402
mov dword [eax], edx
mov dword [eax + 4], edx
mov dword [eax + 8], edx
mov dword [eax + 0xc], edx
add eax, 0x10
cmp eax, esi
jne 0x52e3f0
inc ebx
add edx, 0x10001
cmp ebx, 0x36
jb 0x52e3a6
pop edi
pop esi
pop ebx
pop ebp
add esp, 0x150
ret