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

Disassembly:
sub esp, 0x1d0
push ebx
push ebp
mov ebx, ecx
mov ebp, edx
mov dword [esp + 8], ebp
push esi
push edi
cmp ebx, 0xffffffa0
jg 0x5304d3
mov eax, ebx
and ecx, 0xf
sar eax, 4
add ecx, 0x10
mov edi, dword [ebp + eax*2]
rol edi, cl
xor esi, esi
nop
add ebx, 0x10
shr edi, 0x10
mov eax, ebx
mov edx, edi
sar eax, 4
mov ecx, ebx
and ecx, 0xf
add ecx, 0x10
mov edi, dword [ebp + eax*2]
mov eax, edx
shr eax, 0xc
mov byte [esp + esi + 0x60], al
mov eax, edx
shr eax, 8
and al, 0xf
rol edi, cl
mov byte [esp + esi + 0x61], al
mov al, dl
shr al, 4
and dl, 0xf
mov byte [esp + esi + 0x62], al
mov byte [esp + esi + 0x63], dl
add esi, 4
cmp esi, 0x14
jb 0x530050
xorps xmm0, xmm0
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x58], edi
xor ecx, ecx
movups xmmword [esp + 0x14], xmm0
mov dword [esp + 0x54], 0
movups xmmword [esp + 0x24], xmm0
movups xmmword [esp + 0x34], xmm0
movups xmmword [esp + 0x44], xmm0
movzx eax, byte [esp + ecx + 0x60]
inc dword [esp + eax*4 + 0x14]
movzx eax, byte [esp + ecx + 0x61]
inc dword [esp + eax*4 + 0x14]
movzx eax, byte [esp + ecx + 0x62]
inc dword [esp + eax*4 + 0x14]
movzx eax, byte [esp + ecx + 0x63]
inc dword [esp + eax*4 + 0x14]
movzx eax, byte [esp + ecx + 0x64]
add ecx, 5
inc dword [esp + eax*4 + 0x14]
cmp ecx, 0x14
jb 0x5300c0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
lea ecx, [ecx + eax*2]
mov eax, dword [esp + 0x20]
lea ecx, [eax + ecx*2]
mov eax, dword [esp + 0x24]
lea ecx, [eax + ecx*2]
mov eax, dword [esp + 0x28]
lea ecx, [eax + ecx*2]
mov eax, dword [esp + 0x2c]
lea ecx, [eax + ecx*2]
mov eax, dword [esp + 0x30]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x34]
mov ecx, edx
mov dword [esp + 0x74], edx
mov dword [esp + 0xa0], edx
mov dword [esp + 0x34], edx
add edx, eax
lea ecx, [eax + ecx*2]
mov eax, ecx
add ecx, ecx
shl eax, 8
mov dword [esp + 0x78], eax
mov eax, ecx
sub eax, edx
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0x38]
add ecx, eax
mov dword [esp + 0x38], edx
add edx, eax
mov eax, ecx
add ecx, ecx
shl eax, 7
mov dword [esp + 0x7c], eax
mov eax, ecx
sub eax, edx
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x3c]
add ecx, eax
mov dword [esp + 0x3c], edx
add edx, eax
mov eax, ecx
add ecx, ecx
shl eax, 6
mov dword [esp + 0x80], eax
mov eax, ecx
sub eax, edx
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0x40]
add ecx, eax
mov dword [esp + 0x40], edx
add edx, eax
mov eax, ecx
add ecx, ecx
shl eax, 5
mov dword [esp + 0x84], eax
mov eax, ecx
sub eax, edx
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x44]
add ecx, eax
mov dword [esp + 0x44], edx
add edx, eax
mov eax, ecx
add ecx, ecx
shl eax, 4
mov dword [esp + 0x88], eax
mov eax, ecx
sub eax, edx
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0x48]
add ecx, eax
mov dword [esp + 0x48], edx
add edx, eax
lea eax, [ecx*8]
add ecx, ecx
mov dword [esp + 0x8c], eax
mov eax, ecx
sub eax, edx
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x4c]
add ecx, eax
mov dword [esp + 0x4c], edx
add edx, eax
mov dword [esp + 0x9c], 0x10000
lea eax, [ecx*4]
add ecx, ecx
mov dword [esp + 0x90], eax
mov eax, ecx
sub eax, edx
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0x50]
add ecx, eax
add ecx, ecx
mov dword [esp + 0x50], edx
add edx, eax
mov dword [esp + 0x94], ecx
mov eax, ecx
sub eax, edx
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0x54]
add ecx, eax
mov dword [esp + 0x54], edx
mov dword [esp + 0x98], ecx
cmp ecx, 0x10000
jne 0x5304d3
xor edi, edi
mov ebp, 1
mov esi, dword [esp + ebp*4 + 0x14]
mov ecx, 7
sub ecx, ebp
mov eax, edi
shr eax, cl
shl esi, cl
mov dword [esp + ebp*4 + 0x14], eax
lea eax, [esp + 0xc4]
push esi
add eax, edi
push ebp
push eax
call sub.msvcrt.dll_memset
inc ebp
add esp, 0xc
add edi, esi
cmp ebp, 7
jbe 0x530281
mov edi, dword [esp + 0x58]
xor ebx, ebx
xor ebp, ebp
nop word [eax + eax]
movzx edx, byte [esp + ebp + 0x60]
test edx, edx
je 0x53032b
mov esi, dword [esp + edx*4 + 0x14]
lea eax, [esi + 1]
mov dword [esp + edx*4 + 0x14], eax
cmp edx, 7
jb 0x5302e2
mov byte [esp + esi + 0x154], bl
jmp 0x53032b
mov ecx, 7
lea eax, [esp + 0x154]
sub ecx, edx
shl esi, cl
add eax, esi
mov esi, 1
shl esi, cl
add esi, eax
cmp edx, 5
jb 0x530310
movzx ecx, bx
mov word [eax], cx
mov word [esi - 2], cx
jmp 0x53032b
movzx ecx, bx
mov edx, ecx
mov word [eax], cx
mov word [eax + 2], dx
mov word [eax + 4], dx
mov word [eax + 6], dx
add eax, 8
cmp eax, esi
jne 0x530310
inc ebp
add ebx, 0x101
cmp ebp, 0x14
jb 0x5302c0
mov esi, dword [esp + 0x1e4]
mov ebx, dword [esp + 0x5c]
mov eax, edi
shr eax, 0x19
cmp eax, dword [esp + 0x74]
jb 0x530384
shr edi, 0x10
mov edx, 8
cmp edi, dword [esp + 0x78]
jb 0x530368
lea eax, [esp + 0x78]
nop
lea eax, [eax + 4]
inc edx
cmp edi, dword [eax]
jae 0x530360
mov ecx, 0x10
sub ecx, edx
shr edi, cl
sub edi, dword [esp + edx*4 + 0x80]
add ebx, edx
movzx ebp, byte [esp + edi + 0x154]
jmp 0x530396
movzx ebp, byte [esp + eax + 0x154]
movzx eax, byte [esp + eax + 0xc4]
add ebx, eax
jns 0x5304d3
mov edx, dword [esp + 0x10]
mov eax, ebx
sar eax, 4
mov ecx, ebx
and ecx, 0xf
add ecx, 0x10
mov edi, dword [edx + eax*2]
rol edi, cl
cmp ebp, 0x10
ja 0x5303cd
movzx ecx, byte [esi]
sub ecx, ebp
setns al
dec al
and al, 0x11
add al, cl
mov byte [esi], al
inc esi
jmp 0x5304b7
cmp ebp, 0x13
jae 0x53040a
mov ecx, 0x2d
add ebx, 0xfffffff3
sub ecx, ebp
add ebx, ebp
shr edi, cl
mov eax, ebx
mov edx, edi
sar eax, 4
mov edi, dword [esp + 0x10]
mov ecx, ebx
shl ebp, 4
and ecx, 0xf
add ecx, 0x10
add ebp, 0xfffffef4
add ebp, edx
mov edi, dword [edi + eax*2]
rol edi, cl
xor ecx, ecx
jmp 0x53049a
inc ebx
mov ebp, edi
mov eax, ebx
shr ebp, 0x1f
sar eax, 4
mov ecx, ebx
and ecx, 0xf
add ebp, 4
add ecx, 0x10
mov eax, dword [edx + eax*2]
rol eax, cl
mov ecx, eax
shr ecx, 0x19
cmp ecx, dword [esp + 0x74]
jb 0x53045c
shr eax, 0x10
mov edx, 8
cmp eax, dword [esp + 0x78]
jb 0x53044a
lea ecx, [esp + 0x78]
lea ecx, [ecx + 4]
inc edx
cmp eax, dword [ecx]
jae 0x530442
mov ecx, 0x10
sub ecx, edx
shr eax, cl
sub eax, dword [esp + edx*4 + 0x80]
jmp 0x530466
movzx edx, byte [esp + ecx + 0xc4]
mov eax, ecx
mov edi, dword [esp + 0x10]
add ebx, edx
movzx edx, byte [esp + eax + 0x154]
mov ecx, ebx
mov eax, ebx
and ecx, 0xf
sar eax, 4
add ecx, 0x10
mov edi, dword [edi + eax*2]
rol edi, cl
cmp edx, 0x10
ja 0x5304d3
movzx eax, byte [esi]
sub eax, edx
mov ecx, eax
sar ecx, 0x1f
and ecx, 0x11
add ecx, eax
mov eax, dword [esp + 0x1e8]
sub eax, esi
cmp ebp, eax
ja 0x5304d3
lea eax, [esi + ebp]
nop word [eax + eax]
mov byte [esi], cl
inc esi
cmp esi, eax
jne 0x5304b0
cmp esi, dword [esp + 0x1e8]
jne 0x530342
pop edi
pop esi
pop ebp
mov eax, ebx
pop ebx
add esp, 0x1d0
ret 8
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x1d0
ret 8