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

Disassembly:
sub esp, 0xf0
mov ecx, dword [esp + 0xf4]
push ebx
push ebp
push esi
mov esi, dword [esp + 0x104]
xor ebp, ebp
push edi
mov dword [esp + 0x44], ebp
mov dword [esp + 0x48], ebp
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x50], ebp
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 edx, esi
mov eax, dword [ecx]
add ecx, 4
mov ebx, dword [esp + eax*4 + 0x44]
lea eax, [esp + eax*4 + 0x44]
inc ebx
dec edx
mov dword [eax], ebx
jne 0x56a37f
cmp dword [esp + 0x44], esi
jne 0x56a3b7
mov ecx, dword [esp + 0x118]
mov edx, dword [esp + 0x11c]
xor eax, eax
mov dword [ecx], ebp
mov dword [edx], ebp
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xf0
ret
mov ebx, dword [esp + 0x11c]
mov ecx, 1
lea eax, [esp + 0x48]
mov edi, dword [ebx]
mov dword [esp + 0x10], edi
cmp dword [eax], ebp
jne 0x56a3da
inc ecx
add eax, 4
cmp ecx, 0xf
jbe 0x56a3cd
mov eax, ecx
cmp edi, ecx
mov dword [esp + 0x14], eax
jae 0x56a3ea
mov dword [esp + 0x10], ecx
mov edi, ecx
mov edx, 0xf
lea esi, [esp + 0x80]
cmp dword [esi], ebp
jne 0x56a402
dec edx
sub esi, 4
cmp edx, ebp
jne 0x56a3f6
cmp edi, edx
mov dword [esp + 0x2c], edx
jbe 0x56a410
mov dword [esp + 0x10], edx
mov edi, edx
mov esi, 1
mov dword [ebx], edi
shl esi, cl
cmp ecx, edx
jae 0x56a42f
lea ebx, [esp + ecx*4 + 0x44]
sub esi, dword [ebx]
js 0x56a44a
inc ecx
add ebx, 4
shl esi, 1
cmp ecx, edx
jb 0x56a421
lea ecx, [edx*4]
mov dword [esp + 0x20], ecx
lea ebx, [esp + ecx + 0x44]
mov ecx, dword [esp + ecx + 0x44]
sub esi, ecx
mov dword [esp + 0x40], esi
jns 0x56a45a
mov eax, 0xfffffffd
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xf0
ret
add ecx, esi
mov dword [esp + 0x88], ebp
mov dword [ebx], ecx
xor ecx, ecx
dec edx
je 0x56a47d
xor ebx, ebx
add ecx, dword [esp + ebx + 0x48]
add ebx, 4
dec edx
mov dword [esp + ebx + 0x88], ecx
jne 0x56a46c
mov edx, dword [esp + 0x104]
xor ebx, ebx
mov ecx, dword [edx]
add edx, 4
cmp ecx, ebp
mov dword [esp + 0x1c], edx
je 0x56a4b5
mov edx, dword [esp + ecx*4 + 0x84]
mov ebp, dword [esp + 0x128]
lea ecx, [esp + ecx*4 + 0x84]
mov dword [ebp + edx*4], ebx
inc edx
mov dword [ecx], edx
mov edx, dword [esp + 0x1c]
xor ebp, ebp
mov ecx, dword [esp + 0x108]
inc ebx
cmp ebx, ecx
jb 0x56a486
mov edx, dword [esp + 0x20]
mov ebx, edi
neg ebx
mov ecx, dword [esp + edx + 0x84]
mov edx, dword [esp + 0x128]
mov dword [esp + 0x108], ecx
mov ecx, dword [esp + 0x2c]
cmp eax, ecx
mov dword [esp + 0x24], ebp
mov dword [esp + 0x84], ebp
mov dword [esp + 0x1c], edx
mov dword [esp + 0x18], 0xffffffff
mov dword [esp + 0xc4], ebp
mov dword [esp + 0x3c], ebp
jg 0x56a78d
mov esi, dword [esp + 0x34]
lea ecx, [esp + eax*4 + 0x44]
mov dword [esp + 0x28], ecx
mov edx, dword [esp + 0x28]
mov ecx, dword [edx]
mov edx, ecx
dec ecx
test edx, edx
mov dword [esp + 0x20], ecx
je 0x56a76b
lea ecx, [ebx + edi]
cmp eax, ecx
jle 0x56a63f
mov dword [esp + 0x38], ecx
jmp 0x56a546
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x18]
mov ecx, dword [esp + 0x38]
add ebx, edi
sub edx, ebx
inc ebp
add ecx, edi
cmp edx, edi
mov dword [esp + 0x18], ebp
mov dword [esp + 0x38], ecx
jbe 0x56a567
mov edx, edi
mov ebp, dword [esp + 0x20]
mov ecx, eax
sub ecx, ebx
mov eax, 1
shl eax, cl
lea edi, [ebp + 1]
cmp eax, edi
jbe 0x56a5a4
or edi, 0xffffffff
sub edi, ebp
mov ebp, dword [esp + 0x28]
add eax, edi
cmp ecx, edx
jae 0x56a5a4
inc ecx
cmp ecx, edx
jae 0x56a5a4
mov edi, dword [ebp + 4]
add ebp, 4
shl eax, 1
cmp eax, edi
jbe 0x56a5a4
sub eax, edi
inc ecx
cmp ecx, edx
jb 0x56a591
mov eax, dword [esp + 0x124]
mov edi, 1
shl edi, cl
mov eax, dword [eax]
mov dword [esp + 0x3c], edi
add edi, eax
cmp edi, 0x5a0
ja 0x56a7b5
mov edx, dword [esp + 0x120]
lea ebp, [edx + eax*8]
mov eax, dword [esp + 0x18]
lea edx, [esp + eax*4 + 0xc4]
mov eax, dword [esp + 0x124]
mov dword [eax], edi
mov eax, dword [esp + 0x18]
test eax, eax
mov dword [edx], ebp
je 0x56a626
mov esi, dword [esp + 0x24]
mov byte [esp + 0x30], cl
mov dword [esp + eax*4 + 0x84], esi
mov eax, dword [esp + 0x10]
mov ecx, ebx
mov byte [esp + 0x31], al
sub ecx, eax
mov eax, esi
shr eax, cl
mov ecx, dword [edx - 4]
mov edx, dword [esp + 0x30]
mov esi, ebp
sub esi, ecx
sar esi, 3
sub esi, eax
mov dword [ecx + eax*8], edx
mov dword [ecx + eax*8 + 4], esi
jmp 0x56a62f
mov eax, dword [esp + 0x118]
mov dword [eax], ebp
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x14]
cmp eax, ecx
jg 0x56a53e
mov ecx, dword [esp + 0x128]
mov dl, al
mov edi, dword [esp + 0x1c]
sub dl, bl
mov byte [esp + 0x31], dl
mov edx, dword [esp + 0x108]
lea ecx, [ecx + edx*4]
cmp edi, ecx
jb 0x56a667
mov byte [esp + 0x30], 0xc0
jmp 0x56a6af
mov esi, dword [edi]
mov ecx, dword [esp + 0x10c]
cmp esi, ecx
jae 0x56a688
cmp esi, 0x100
sbb edx, edx
and edx, 0xffffffa0
add edx, 0x60
mov byte [esp + 0x30], dl
jmp 0x56a6a8
sub esi, ecx
mov ecx, dword [esp + 0x114]
shl esi, 2
mov dl, byte [ecx + esi]
mov ecx, dword [esp + 0x110]
add dl, 0x50
mov esi, dword [ecx + esi]
mov byte [esp + 0x30], dl
add edi, 4
mov dword [esp + 0x1c], edi
mov ecx, eax
mov eax, dword [esp + 0x24]
sub ecx, ebx
mov edx, 1
shl edx, cl
mov ecx, ebx
shr eax, cl
cmp eax, dword [esp + 0x3c]
jae 0x56a6e6
lea ecx, [ebp + eax*8]
mov edi, dword [esp + 0x30]
add eax, edx
mov dword [ecx], edi
lea edi, [edx*8]
mov dword [ecx + 4], esi
add ecx, edi
cmp eax, dword [esp + 0x3c]
jb 0x56a6cc
mov edx, dword [esp + 0x14]
mov eax, 1
lea ecx, [edx - 1]
mov edx, dword [esp + 0x24]
shl eax, cl
test edx, eax
je 0x56a704
xor edx, eax
shr eax, 1
test edx, eax
jne 0x56a6fc
mov edi, 1
mov ecx, ebx
xor edx, eax
mov eax, dword [esp + 0x18]
shl edi, cl
mov ecx, dword [esp + eax*4 + 0x84]
lea eax, [esp + eax*4 + 0x84]
mov dword [esp + 0x24], edx
dec edi
and edi, edx
cmp edi, ecx
je 0x56a750
mov edi, dword [esp + 0x18]
sub eax, 4
dec edi
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x10]
sub ebx, edi
mov edi, 1
mov ecx, ebx
shl edi, cl
mov ecx, dword [eax]
dec edi
and edi, edx
cmp edi, ecx
jne 0x56a72c
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x10]
mov ecx, eax
dec eax
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x14]
test ecx, ecx
jne 0x56a52d
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
inc eax
add edx, 4
cmp eax, ecx
mov dword [esp + 0x14], eax
mov dword [esp + 0x28], edx
jle 0x56a518
mov esi, dword [esp + 0x40]
xor ebp, ebp
cmp esi, ebp
je 0x56a7a8
cmp dword [esp + 0x2c], 1
je 0x56a7a8
mov eax, 0xfffffffb
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xf0
ret
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xf0
ret
pop edi
pop esi
pop ebp
mov eax, 0xfffffffc
pop ebx
add esp, 0xf0
ret