Function at 0x53a020
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x100
push ebx
push ebp
mov ebx, edx
xor ebp, ebp
push esi
push edi
mov dword [esp + 0x40], ebx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x54], ebp
mov dword [esp + 0x58], ebp
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x60], ebp
mov dword [esp + 0x64], ebp
mov dword [esp + 0x68], ebp
mov dword [esp + 0x6c], ebp
mov dword [esp + 0x70], ebp
mov dword [esp + 0x74], ebp
mov dword [esp + 0x78], ebp
mov dword [esp + 0x7c], ebp
mov dword [esp + 0x80], ebp
mov dword [esp + 0x84], ebp
mov dword [esp + 0x88], ebp
mov dword [esp + 0x8c], ebp
mov dword [esp + 0x90], ebp
mov eax, dword [ecx]
add ecx, 4
mov edi, dword [esp + eax*4 + 0x54]
lea eax, [esp + eax*4 + 0x54]
inc edi
dec edx
mov dword [eax], edi
jne 0x53a085
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x124]
cmp eax, ebx
jne 0x53a0c1
mov ecx, dword [esp + 0x120]
mov dword [ecx], ebp
mov dword [edx], ebp
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x100
ret 0x20
mov eax, dword [edx]
mov ecx, 1
mov dword [esp + 0x10], eax
cmp dword [esp + ecx*4 + 0x54], ebp
jne 0x53a0d8
inc ecx
cmp ecx, 0xf
jbe 0x53a0cc
cmp eax, ecx
mov dword [esp + 0x14], ecx
jae 0x53a0e6
mov dword [esp + 0x10], ecx
mov eax, ecx
mov esi, 0xf
cmp dword [esp + esi*4 + 0x54], ebp
jne 0x53a0f4
dec esi
jne 0x53a0eb
cmp eax, esi
mov dword [esp + 0x28], esi
jbe 0x53a102
mov dword [esp + 0x10], esi
mov eax, esi
mov dword [edx], eax
mov edx, 1
shl edx, cl
cmp ecx, esi
jae 0x53a11c
sub edx, dword [esp + ecx*4 + 0x54]
js 0x53a137
inc ecx
add edx, edx
cmp ecx, esi
jb 0x53a10f
lea ecx, [esi*4]
mov dword [esp + 0x34], ecx
lea edi, [esp + ecx + 0x54]
mov ecx, dword [esp + ecx + 0x54]
sub edx, ecx
mov dword [esp + 0x50], edx
jns 0x53a149
pop edi
pop esi
pop ebp
mov eax, 0xfffffffd
pop ebx
add esp, 0x100
ret 0x20
add ecx, edx
mov dword [esp + 0x98], ebp
mov dword [edi], ecx
xor ecx, ecx
dec esi
je 0x53a16c
xor edi, edi
add ecx, dword [esp + edi + 0x58]
add edi, 4
dec esi
mov dword [esp + edi + 0x98], ecx
jne 0x53a15b
mov esi, dword [esp + 0x30]
xor edi, edi
mov ecx, dword [esi]
add esi, 4
cmp ecx, ebp
mov dword [esp + 0x1c], esi
je 0x53a1a2
mov esi, dword [esp + ecx*4 + 0x94]
mov ebx, dword [esp + 0x130]
lea ecx, [esp + ecx*4 + 0x94]
mov dword [ebx + esi*4], edi
mov ebx, dword [esp + 0x40]
inc esi
mov dword [ecx], esi
mov esi, dword [esp + 0x1c]
inc edi
cmp edi, ebx
jb 0x53a172
mov ecx, dword [esp + 0x34]
mov esi, dword [esp + 0x28]
mov ebx, eax
xor edi, edi
mov ecx, dword [esp + ecx + 0x94]
mov dword [esp + 0x24], ebp
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x130]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x14]
neg ebx
cmp ecx, esi
mov dword [esp + 0x94], ebp
mov dword [esp + 0x18], 0xffffffff
mov dword [esp + 0xd4], edi
mov dword [esp + 0x30], edi
jg 0x53a493
mov esi, dword [esp + 0x3c]
lea edx, [ecx - 1]
mov dword [esp + 0x48], edx
lea edx, [esp + ecx*4 + 0x54]
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x2c]
mov edx, dword [edx]
test edx, edx
mov dword [esp + 0x20], edx
je 0x53a46a
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x14]
dec ecx
mov dword [esp + 0x20], ecx
lea ecx, [ebx + eax]
cmp edx, ecx
jle 0x53a353
mov dword [esp + 0x44], ecx
mov ecx, ebx
sub ecx, eax
jmp 0x53a244
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x34]
mov ebp, dword [esp + 0x18]
mov edx, dword [esp + 0x28]
inc ebp
add ebx, eax
mov dword [esp + 0x18], ebp
mov ebp, dword [esp + 0x44]
sub edx, ebx
add ecx, eax
add ebp, eax
cmp edx, eax
mov dword [esp + 0x34], ecx
mov dword [esp + 0x44], ebp
jbe 0x53a26b
mov edx, eax
mov ecx, dword [esp + 0x14]
mov ebp, dword [esp + 0x20]
sub ecx, ebx
mov eax, 1
shl eax, cl
lea edi, [ebp + 1]
cmp eax, edi
jbe 0x53a2aa
or edi, 0xffffffff
sub edi, ebp
mov ebp, dword [esp + 0x2c]
add eax, edi
cmp ecx, edx
jae 0x53a2aa
inc ecx
cmp ecx, edx
jae 0x53a2aa
mov edi, dword [ebp + 4]
add ebp, 4
add eax, eax
cmp eax, edi
jbe 0x53a2aa
sub eax, edi
inc ecx
cmp ecx, edx
jb 0x53a297
mov eax, dword [esp + 0x12c]
mov edi, 1
shl edi, cl
mov eax, dword [eax]
lea edx, [eax + edi]
cmp edx, 0x5a0
ja 0x53a4b8
mov ebp, dword [esp + 0x128]
lea ebp, [ebp + eax*8]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x30], ebp
lea eax, [esp + eax*4 + 0xd4]
mov dword [esp + 0x4c], eax
mov dword [eax], ebp
mov eax, dword [esp + 0x12c]
mov dword [eax], edx
mov eax, dword [esp + 0x18]
test eax, eax
je 0x53a336
mov esi, dword [esp + 0x24]
mov byte [esp + 0x38], cl
mov ecx, dword [esp + 0x34]
mov dword [esp + eax*4 + 0x94], esi
mov dl, byte [esp + 0x10]
mov eax, esi
shr eax, cl
mov ecx, dword [esp + 0x4c]
mov esi, ebp
mov byte [esp + 0x39], dl
mov edx, dword [esp + 0x38]
mov ecx, dword [ecx - 4]
sub esi, ecx
sar esi, 3
sub esi, eax
mov dword [ecx + eax*8], edx
mov dword [ecx + eax*8 + 4], esi
jmp 0x53a33f
mov eax, dword [esp + 0x120]
mov dword [eax], ebp
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x14]
cmp eax, ecx
jg 0x53a23c
mov ebp, dword [esp + 0x24]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x130]
mov al, dl
sub al, bl
mov byte [esp + 0x39], al
mov eax, dword [esp + 0x40]
lea ecx, [ecx + eax*4]
mov eax, dword [esp + 0x1c]
cmp eax, ecx
jb 0x53a37c
mov byte [esp + 0x38], 0xc0
jmp 0x53a3c4
mov esi, dword [eax]
mov ecx, dword [esp + 0x114]
cmp esi, ecx
jae 0x53a39d
cmp esi, 0x100
sbb cl, cl
and cl, 0xa0
add cl, 0x60
mov byte [esp + 0x38], cl
jmp 0x53a3bd
sub esi, ecx
mov ecx, dword [esp + 0x11c]
shl esi, 2
mov cl, byte [esi + ecx]
add cl, 0x50
mov byte [esp + 0x38], cl
mov ecx, dword [esp + 0x118]
mov esi, dword [esi + ecx]
add eax, 4
mov dword [esp + 0x1c], eax
mov ecx, edx
mov edx, 1
sub ecx, ebx
mov eax, ebp
shl edx, cl
mov ecx, ebx
shr eax, cl
cmp eax, edi
jae 0x53a3fc
mov ecx, dword [esp + 0x30]
lea ecx, [ecx + eax*8]
mov ebp, dword [esp + 0x38]
mov dword [ecx + 4], esi
mov dword [ecx], ebp
lea ebp, [edx*8]
add eax, edx
add ecx, ebp
cmp eax, edi
jb 0x53a3e0
mov ebp, dword [esp + 0x24]
mov ecx, dword [esp + 0x48]
mov eax, 1
shl eax, cl
test ebp, eax
je 0x53a413
xor ebp, eax
shr eax, 1
test ebp, eax
jne 0x53a40b
mov edx, 1
mov ecx, ebx
shl edx, cl
xor ebp, eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x24], ebp
mov ecx, dword [esp + eax*4 + 0x94]
dec edx
and edx, ebp
cmp edx, ecx
je 0x53a456
mov edx, dword [esp + 0x10]
dec eax
sub ebx, edx
mov edx, 1
mov ecx, ebx
shl edx, cl
mov ecx, dword [esp + eax*4 + 0x94]
dec edx
and edx, ebp
cmp edx, ecx
jne 0x53a434
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x20]
test eax, eax
mov eax, dword [esp + 0x10]
jne 0x53a21a
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x2c]
inc ecx
add edx, 4
mov dword [esp + 0x14], ecx
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x48]
inc edx
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x28]
cmp ecx, edx
jle 0x53a208
mov edx, dword [esp + 0x50]
test edx, edx
je 0x53a0b2
cmp dword [esp + 0x28], 1
je 0x53a0b2
pop edi
pop esi
pop ebp
mov eax, 0xfffffffb
pop ebx
add esp, 0x100
ret 0x20
pop edi
pop esi
pop ebp
mov eax, 0xfffffffc
pop ebx
add esp, 0x100
ret 0x20