Function at 0x422610
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x58
mov eax, dword [esp + 0x70]
mov edi, dword [eax + 4]
mov ecx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ecx
cmp word [edi + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x422630
mov eax, dword [esp + 0x74]
mov esi, dword [eax + 4]
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
cmp word [esi + eax + 2], 0
lea eax, [eax + 2]
jne 0x422650
sar ecx, 1
mov dword [esp + 0x54], ecx
sar eax, 1
mov dword [esp + 0x50], eax
lea edx, [ecx + eax]
add eax, ecx
add eax, 0x1b
test eax, eax
mov dword [esp + 0x4c], edx
jns 0x42267e
mov eax, 0xffffffff
jmp 0x422685
lea eax, [edx*2 + 0x36]
push eax
call fcn.0040cbc0
add esp, 4
mov dword [esp + 4], 0xd906db68
mov dword [esp + 8], 0xdd7bdf69
mov dword [esp + 0xc], 0xd16ed37b
mov dword [esp + 0x10], 0xd50dd730
mov dword [esp + 0x14], 0xa91eab5c
mov dword [esp + 0x18], 0xad1caf13
mov dword [esp + 0x1c], 0xa11da319
mov dword [esp + 0x20], 0xa514a711
mov dword [esp + 0x24], 0xb96fbb44
mov dword [esp + 0x28], 0xbd0abf03
mov dword [esp + 0x2c], 0xb10db308
mov dword [esp + 0x30], 0xb50fb702
mov dword [esp + 0x34], 0x89268b01
mov word [esp + 0x38], 0x8f88
mov dword [esp + 0x3a], 0
mov ebx, 0x5ce9642f
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + ebx - 0x5ce9642b]
mov edx, ecx
and edx, ebx
add dl, dl
sub cl, dl
movzx ecx, cl
add ecx, ebx
add cl, 0x15
mov byte [esp + ebx - 0x5ce9642b], cl
inc ebx
cmp ebx, 0x5ce96469
jne 0x422710
movzx ecx, word [edi]
mov ebx, eax
test cx, cx
je 0x422761
add edi, 2
mov ebx, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ebx], cx
add ebx, 2
movzx ecx, word [edi]
add edi, 2
test cx, cx
jne 0x422750
mov word [ebx], 0
movzx ecx, word [esp + 4]
test cx, cx
je 0x422791
lea edx, [esp + 6]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ebx], cx
add ebx, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x422780
mov word [ebx], 0
movzx ecx, word [esi]
test cx, cx
mov dword [esp + 0x40], eax
je 0x4227c1
add esi, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ebx], cx
add ebx, 2
movzx ecx, word [esi]
add esi, 2
test cx, cx
jne 0x4227b0
mov word [ebx], 0
mov eax, dword [esp + 0x70]
mov ebx, dword [eax]
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ebx + eax + 2], 0
lea eax, [eax + 2]
jne 0x4227e0
mov ecx, dword [esp + 0x70]
mov ebp, dword [ecx + 8]
mov ecx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ebp + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x422800
mov edx, dword [esp + 0x74]
mov edi, dword [edx]
mov edx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edi + edx + 2], 0
lea edx, [edx + 2]
jne 0x422820
sar eax, 1
sar ecx, 1
sar edx, 1
add ecx, eax
lea eax, [edx + ecx]
add eax, 0x13
test eax, eax
jns 0x422844
mov eax, 0xffffffff
jmp 0x42284d
add ecx, edx
lea eax, [ecx*2 + 0x26]
push eax
call fcn.0040cbc0
add esp, 4
movzx ecx, word [ebx]
mov dword [esp + 0x44], eax
test cx, cx
je 0x422881
add ebx, 2
mov eax, dword [esp + 0x44]
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [ebx]
add ebx, 2
test cx, cx
jne 0x422870
mov dword [esp + 0x48], eax
mov word [eax], 0x2f
mov dword [esp + 4], 0x8fcb89fb
mov dword [esp + 8], 0x83368d04
mov dword [esp + 0xc], 0x87348125
mov dword [esp + 0x10], 0x9b238533
mov dword [esp + 0x14], 0x9f2c992b
mov dword [esp + 0x18], 0x93e19d2b
mov word [esp + 0x1c], 0x9190
mov dword [esp + 0x1e], 0
mov word [esp + 0x22], 0
lea eax, [esp + 4]
mov ecx, 0x3465395d
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [eax]
mov edx, ecx
or edx, ebx
lea esi, [ecx - 0x34653900]
and esi, ebx
not edx
or edx, esi
mov esi, edx
xor esi, 0x2b
and edx, 0x54
add edx, edx
sub edx, esi
inc dl
mov byte [eax], dl
inc eax
dec ecx
cmp ecx, 0x3465393d
jne 0x4228e0
mov edx, dword [esp + 0x48]
add edx, 2
movzx eax, word [ebp]
test ax, ax
je 0x422932
add ebp, 2
mov word [edx], ax
add edx, 2
movzx eax, word [ebp]
add ebp, 2
test ax, ax
jne 0x422920
mov word [edx], 0
movzx eax, word [esp + 4]
test ax, ax
je 0x422961
lea ecx, [esp + 6]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edx], ax
add edx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x422950
mov word [edx], 0
movzx eax, word [edi]
test ax, ax
je 0x422991
add edi, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edx], ax
add edx, 2
movzx eax, word [edi]
add edi, 2
test ax, ax
jne 0x422980
mov dword [esp + 0x48], edx
mov word [edx], 0
mov dword [esp + 4], 0x313e3f06
mov dword [esp + 8], 0
xor eax, eax
xor ecx, ecx
nop
nop
movzx edi, byte [esp + ecx + 4]
mov edx, eax
and edx, 0xa
mov ebx, ecx
xor ebx, 0x8906b875
add ebx, edx
lea edx, [edi + edi]
not edx
add edx, edi
mov esi, edi
and esi, 0xffffffec
and edx, 0xbde9d113
or edx, esi
mov esi, edx
xor esi, 0xec
xor edx, 0x628ec
or edx, esi
xor edx, edi
and edx, ebx
xor edx, edi
mov esi, edx
and esi, 0x36
mov edi, edx
xor edi, 0xb6
lea ebx, [edi + esi*2]
and edx, 1
or ebx, 1
add ebx, edx
mov byte [esp + ecx + 4], bl
inc ecx
add eax, 2
cmp ecx, 8
jne 0x4229b0
lea eax, [esp + 4]
push 0
push 0
push 0xc00000
push eax
mov esi, dword [esp + 0x50]
push esi
push dword [esp + 0x58]
push dword [esp + 0x84]
call fcn.00426020
add esp, 0x1c
mov byte [esp + 3], al
jmp dword [0x44dbdc]