Function at 0x42a160
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x20
mov dword [esp + 4], 0
mov dword [esp + 8], 0x585b5a45
mov byte [esp + 0xc], 0
mov eax, 0xb038c6f
mov ecx, 0x74fc7390
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax - 0xb038c67]
mov esi, edx
xor esi, eax
or esi, ecx
not esi
add esi, esi
lea edi, [ecx - 0x74fc7300]
and edi, esi
mov ebx, esi
not ebx
and ebx, eax
sub ebx, edi
add bl, dl
add bl, 0xd5
mov byte [esp + eax - 0xb038c67], bl
inc eax
dec ecx
cmp eax, 0xb038c74
jne 0x42a190
mov eax, dword [esp + 8]
mov ecx, dword [0x450e9c]
test ecx, ecx
je 0x42a214
xor edx, edx
mov esi, dword [0x450ea0]
nop
nop
nop
cmp dword [esi + edx*8], 0xc85f7986
je 0x42a1f0
inc edx
cmp ecx, edx
jne 0x42a1e0
jmp 0x42a214
mov ecx, dword [esi + edx*8 + 4]
cmp ecx, eax
je 0x42a214
lea eax, [esp + 4]
push eax
push 0
push 0
push 5
push 4
push dword [0x450ea4]
push ecx
call fcn.00441230
add esp, 0x1c
cmp eax, 0xc0000004
jne 0x42a309
push dword [esp + 4]
call fcn.0043dd20
add esp, 4
mov dword [esp], eax
mov ebp, dword [esp + 4]
mov dword [esp + 8], 0x585b5a45
mov byte [esp + 0xc], 0
mov eax, 0xb038c6f
mov edx, 0x74fc7390
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + eax - 0xb038c67]
mov ecx, ebx
xor ecx, eax
or ecx, edx
not ecx
add ecx, ecx
lea edi, [edx - 0x74fc7300]
and edi, ecx
not ecx
and ecx, eax
sub ecx, edi
add cl, bl
add cl, 0xd5
mov byte [esp + eax - 0xb038c67], cl
inc eax
dec edx
cmp eax, 0xb038c74
jne 0x42a250
mov eax, dword [esp + 8]
mov edx, dword [0x450e9c]
test edx, edx
je 0x42a2ae
xor esi, esi
mov edi, dword [0x450ea0]
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0xc85f7986
je 0x42a310
inc esi
cmp edx, esi
jne 0x42a2a0
mov edi, dword [esp]
xor ebx, ebx
test eax, eax
js 0x42a4c4
mov esi, dword [edi]
mov eax, esi
mov ecx, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
lea edx, [ecx + eax]
inc ebx
mov eax, dword [ecx + eax]
mov ecx, edx
test eax, eax
jne 0x42a2d0
mov eax, ebx
or eax, 0x104
mov ecx, ebx
and ecx, 0x104
imul eax, ecx
xor ecx, 0x104
and ebx, 0xfffffefb
imul ebx, ecx
add ebx, eax
jns 0x42a337
mov ebx, 0xffffffff
jmp 0x42a339
xor ebx, ebx
jmp 0x42a4cd
mov edx, dword [edi + esi*8 + 4]
cmp edx, eax
mov edi, dword [esp]
je 0x42a2b1
push 0
push ebp
push edi
push 5
push 4
push dword [0x450ea4]
push edx
call fcn.00441230
add esp, 0x1c
jmp 0x42a2b1
add ebx, ebx
push ebx
call fcn.0040c820
add esp, 4
mov ebp, eax
mov ecx, edi
jmp 0x42a360
add ecx, esi
mov word [eax], 0xa
add eax, 2
mov esi, dword [ecx]
test esi, esi
je 0x42a383
mov edx, dword [ecx + esi + 0x3c]
movzx ebx, word [edx]
test bx, bx
je 0x42a350
add edx, 2
nop
mov word [eax], bx
add eax, 2
movzx ebx, word [edx]
add edx, 2
test bx, bx
jne 0x42a370
jmp 0x42a350
xor ebx, ebx
cmp eax, ebp
je 0x42a4bb
mov word [eax], 0
movzx ecx, word [ebp]
test cx, cx
je 0x42a3eb
mov eax, ebp
add eax, 2
xor ebx, ebx
jmp 0x42a3bc
inc ebx
movzx ecx, word [eax]
add eax, 2
test cx, cx
je 0x42a3eb
cmp cx, 0x7f
jbe 0x42a3b0
movzx edx, cx
cmp edx, 0x7ff
ja 0x42a3e0
add ebx, 2
jmp 0x42a3b1
cmp cx, 0xffff
je 0x42a3b1
add ebx, 3
jmp 0x42a3b1
lea edi, [ebx + 1]
push edi
call fcn.0040c820
add esp, 4
mov esi, eax
mov dword [esp + 0x1c], ebp
push ebp
push edi
push eax
call fcn.0042a000
add esp, 0xc
mov dword [esp + 8], 0x340f0d2c
mov dword [esp + 0xc], 0x32070637
mov dword [esp + 0x10], 0x1024901
mov word [esp + 0x14], 0x8b1c
mov dword [esp + 0x16], 0
mov ebp, 0xcfb40dcb
mov ecx, 0x9f681b96
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + ebp + 0x304bf23d]
mov edx, ecx
and edx, 0x8f280034
mov eax, ebp
xor eax, 0x779e421a
add eax, edx
lea edx, [eax + eax]
not edx
add edx, eax
xor edx, eax
and edx, edi
xor edx, eax
lea eax, [edx + 0x86]
mov edi, 0x79
sub edi, edx
and edx, 1
and edi, 0x69
and eax, 0x96
or eax, edi
xor eax, 0x68
lea eax, [eax + edx*2]
mov byte [esp + ebp + 0x304bf23d], al
inc ebp
add ecx, 2
cmp ebp, 0xcfb40ddd
jne 0x42a440
lea eax, [esp + 8]
mov ecx, dword [esp + 0x34]
push ebx
push esi
push eax
call fcn.0040d360
mov ebx, eax
push esi
call fcn.0040c830
add esp, 4
mov edi, dword [esp]
mov ebp, dword [esp + 0x1c]
push ebp
call fcn.0040c830
add esp, 4
push edi
call fcn.0043dd60
add esp, 4
mov eax, ebx
add esp, 0x20
pop esi
pop edi
pop ebx
pop ebp
ret