Function at 0x42b590
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x57c
mov ecx, 0x10
xor eax, eax
push ebx
mov ebx, dword [esp + 0x588]
push ebp
push esi
push edi
xor ebp, ebp
lea edi, [esp + 0x50]
cmp ebx, ebp
rep stosd dword es:[edi], eax
jbe 0x42b5d0
mov ecx, dword [esp + 0x590]
mov edx, ebx
mov eax, dword [ecx]
add ecx, 4
mov edi, dword [esp + eax*4 + 0x50]
lea eax, [esp + eax*4 + 0x50]
inc edi
dec edx
mov dword [eax], edi
jne 0x42b5bd
cmp dword [esp + 0x50], ebx
jne 0x42b5f7
mov ecx, dword [esp + 0x5a4]
mov edx, dword [esp + 0x5a8]
xor eax, eax
mov dword [ecx], ebp
mov dword [edx], ebp
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x57c
ret 0x20
mov edx, 1
lea ecx, [esp + 0x54]
mov dword [esp + 0x18], edx
cmp dword [ecx], ebp
jne 0x42b611
inc edx
add ecx, 4
cmp edx, 0xf
jle 0x42b604
mov esi, 0xf
mov dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
lea ecx, [esp + 0x8c]
cmp dword [ecx], ebp
jne 0x42b631
dec esi
sub ecx, 4
cmp esi, ebp
jg 0x42b625
mov eax, dword [esp + 0x5a8]
mov dword [esp + 0x20], esi
mov edi, dword [eax]
cmp edi, edx
mov dword [esp + 0x14], edi
jge 0x42b64c
mov dword [esp + 0x14], edx
jmp 0x42b654
cmp edi, esi
jle 0x42b658
mov dword [esp + 0x14], esi
mov edi, dword [esp + 0x14]
mov dword [eax], edi
mov eax, 1
mov ecx, edx
shl eax, cl
cmp edx, esi
jae 0x42b679
lea ecx, [esp + edx*4 + 0x50]
sub eax, dword [ecx]
js 0x42b685
inc edx
add ecx, 4
shl eax, 1
cmp edx, esi
jb 0x42b66b
mov ecx, dword [esp + esi*4 + 0x50]
sub eax, ecx
mov dword [esp + 0x48], eax
jns 0x42b697
mov eax, 0xfffffffd
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x57c
ret 0x20
add ecx, eax
xor edx, edx
cmp esi, 1
mov dword [esp + esi*4 + 0x50], ecx
mov dword [esp + 0x94], ebp
mov dword [esp + 0x90], ebp
jbe 0x42b6cf
xor ebx, ebx
lea ecx, [esi - 1]
add edx, dword [esp + ebx + 0x54]
add ebx, 4
dec ecx
mov dword [esp + ebx + 0x94], edx
jne 0x42b6b7
mov ebx, dword [esp + 0x594]
xor ecx, ecx
cmp ebx, ebp
jbe 0x42b70c
mov ebp, dword [esp + 0x590]
mov edx, dword [ebp]
test edx, edx
je 0x42b6fb
mov ebx, dword [esp + edx*4 + 0x90]
lea edx, [esp + edx*4 + 0x90]
mov dword [esp + ebx*4 + 0x10c], ecx
inc ebx
mov dword [edx], ebx
mov edx, dword [esp + 0x594]
inc ecx
add ebp, 4
cmp ecx, edx
jb 0x42b6dc
xor ebp, ebp
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x10c]
mov dword [esp + 0x24], edx
mov edx, edi
xor ebx, ebx
mov dword [esp + 0x1c], 0xffffffff
neg edx
cmp ecx, esi
mov dword [esp + 0x28], ebx
mov dword [esp + 0xd0], ebp
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x44], ebx
mov dword [esp + 0x10], ecx
jg 0x42ba2b
lea eax, [esp + ecx*4 + 0x54]
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx - 4]
mov eax, ecx
dec ecx
test eax, eax
mov dword [esp + 0x30], ecx
je 0x42ba07
jmp 0x42b770
mov ecx, dword [esp + 0x30]
mov esi, dword [esp + 0x20]
lea eax, [edx + edi]
cmp dword [esp + 0x10], eax
jle 0x42b8c8
inc ecx
mov dword [esp + 0x40], eax
mov dword [esp + 0x4c], ecx
jmp 0x42b78c
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x40]
add edx, edi
inc eax
sub esi, edx
add ebx, edi
cmp esi, edi
mov dword [esp + 0x1c], eax
mov dword [esp + 0x2c], edx
mov dword [esp + 0x40], ebx
jbe 0x42b7ad
mov esi, edi
mov ebx, dword [esp + 0x10]
mov eax, 1
sub ebx, edx
mov ecx, ebx
shl eax, cl
cmp eax, dword [esp + 0x4c]
jbe 0x42b7ec
mov edi, dword [esp + 0x30]
or ecx, 0xffffffff
sub ecx, edi
add eax, ecx
mov ecx, dword [esp + 0x18]
cmp ebx, esi
jae 0x42b7ec
inc ebx
cmp ebx, esi
jae 0x42b7ec
mov edi, dword [ecx]
shl eax, 1
cmp eax, edi
jbe 0x42b7ec
sub eax, edi
add ecx, 4
inc ebx
cmp ebx, esi
jb 0x42b7da
mov esi, dword [esp + 0x5ac]
mov eax, 1
mov ecx, ebx
shl eax, cl
test esi, esi
mov dword [esp + 0x44], eax
jne 0x42b816
inc eax
push 0xc
push eax
call fcn.00430521
mov edx, dword [esp + 0x34]
add esp, 8
jmp 0x42b833
or ecx, 0xffffffff
sub ecx, eax
mov eax, dword [0x47c9e4]
add eax, ecx
mov ecx, dword [0x47c9e0]
mov dword [0x47c9e4], eax
lea eax, [eax + eax*2]
lea eax, [ecx + eax*4]
test eax, eax
je 0x42ba55
mov esi, dword [esp + 0x5a4]
lea ecx, [eax + 0xc]
mov dword [esp + 0x5a4], eax
mov ebp, ecx
mov dword [esi], ecx
mov dword [eax], 0
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x2c], ebp
test eax, eax
lea ecx, [eax*4]
lea esi, [esp + ecx + 0xd0]
mov dword [esi], ebp
je 0x42b8b0
mov edi, dword [esp + 0x28]
mov eax, dword [esp + 0x14]
mov dword [esp + ecx + 0x90], edi
mov ecx, edx
mov byte [esp + 0x3d], al
sub ecx, eax
mov eax, edi
mov byte [esp + 0x3c], bl
shr eax, cl
mov ecx, dword [esi - 4]
mov ebx, ebp
mov dword [esp + 0x34], ebx
lea eax, [eax + eax*2]
lea eax, [ecx + eax*4]
mov ecx, dword [esp + 0x38]
mov dword [eax], ebx
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x3c]
mov dword [eax + 8], ecx
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
cmp ecx, eax
jg 0x42b788
mov ebx, dword [esp + 0x28]
mov cl, byte [esp + 0x10]
mov eax, dword [esp + 0x594]
sub cl, dl
mov byte [esp + 0x3d], cl
lea ecx, [esp + eax*4 + 0x10c]
mov eax, dword [esp + 0x24]
cmp eax, ecx
jb 0x42b8ef
mov byte [esp + 0x3c], 0xc0
jmp 0x42b93e
mov eax, dword [eax]
mov ecx, dword [esp + 0x598]
cmp eax, ecx
jae 0x42b90f
cmp eax, 0x100
sbb ecx, ecx
and ecx, 0xffffffa0
add ecx, 0x60
mov byte [esp + 0x3c], cl
jmp 0x42b92f
sub eax, ecx
mov ecx, dword [esp + 0x5a0]
shl eax, 2
mov cl, byte [ecx + eax]
add cl, 0x50
mov byte [esp + 0x3c], cl
mov ecx, dword [esp + 0x59c]
mov eax, dword [ecx + eax]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x24]
add eax, 4
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0x10]
mov esi, 1
sub ecx, edx
mov eax, ebx
shl esi, cl
mov ecx, edx
shr eax, cl
cmp eax, dword [esp + 0x44]
jae 0x42b992
lea ecx, [eax + eax*2]
lea edi, [esi + esi*2]
shl edi, 2
lea ecx, [ebp + ecx*4]
mov ebp, dword [esp + 0x34]
mov ebx, ecx
add eax, esi
add ecx, edi
mov dword [ebx], ebp
mov ebp, dword [esp + 0x38]
mov dword [ebx + 4], ebp
mov ebp, dword [esp + 0x3c]
mov dword [ebx + 8], ebp
mov ebx, dword [esp + 0x44]
cmp eax, ebx
jb 0x42b964
mov edi, dword [esp + 0x14]
mov ebp, dword [esp + 0x2c]
mov ebx, dword [esp + 0x28]
mov eax, dword [esp + 0x10]
lea ecx, [eax - 1]
mov eax, 1
shl eax, cl
test ebx, eax
je 0x42b9ac
xor ebx, eax
shr eax, 1
test ebx, eax
jne 0x42b9a4
mov ecx, dword [esp + 0x1c]
xor ebx, eax
mov esi, 1
mov dword [esp + 0x28], ebx
lea eax, [esp + ecx*4 + 0x90]
mov ecx, edx
shl esi, cl
mov ecx, dword [eax]
dec esi
and esi, ebx
cmp esi, ecx
je 0x42b9f0
mov esi, dword [esp + 0x1c]
sub edx, edi
dec esi
mov ecx, edx
mov dword [esp + 0x1c], esi
mov esi, 1
shl esi, cl
mov ecx, dword [eax - 4]
sub eax, 4
dec esi
and esi, ebx
cmp esi, ecx
jne 0x42b9cf
mov eax, dword [esp + 0x30]
mov ecx, eax
dec eax
test ecx, ecx
mov dword [esp + 0x30], eax
jne 0x42b768
mov esi, dword [esp + 0x20]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x48]
inc ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x18]
add ecx, 4
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x10]
cmp ecx, esi
jle 0x42b750
test eax, eax
je 0x42ba46
cmp esi, 1
je 0x42ba46
mov eax, 0xfffffffb
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x57c
ret 0x20
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x57c
ret 0x20
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x42ba6b
mov edx, dword [esp + 0xd0]
push esi
push edx
call fcn.0042bc10
pop edi
pop esi
pop ebp
mov eax, 0xfffffffc
pop ebx
add esp, 0x57c
ret 0x20