Function at 0x426470
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [0x44eb3c]
sub esp, 0x2c
mov eax, dword [0x44eb3c]
push ebx
push esi
push edi
mov edi, dword [ebp + 0x14]
lea eax, [edi - 1]
test eax, eax
js 0x4264a0
mov ecx, dword [ebp + 0x10]
mov esi, dword [ecx + eax*4]
test esi, esi
jne 0x426566
sub eax, 1
jns 0x426490
xor eax, eax
lea edx, [eax + 7]
mov dword [ebp - 0xc], eax
mov ebx, dword [ebp + 8]
mov eax, 4
shr edx, 3
mov ecx, 0
cmp eax, edx
mov dword [ebp - 8], edx
sbb eax, eax
and eax, 0xffffff24
add eax, 0xfa
test dl, 3
mov dword [ebp - 0x18], eax
mov eax, edx
setne cl
shr eax, 2
add ecx, eax
mov dword [ebp - 0x1c], ecx
lea esi, [ecx*4]
mov eax, esi
mov dword [ebp - 0x24], esi
sub eax, edx
mov dword [ebp - 0x20], eax
nop dword [eax]
cmp edi, ecx
jb 0x42672a
push eax
push 0
push ebx
call fcn.00429110
lea ecx, [esi + ebx]
mov eax, edi
mov esi, dword [ebp - 0x1c]
sub eax, esi
shl eax, 2
push eax
push 0
push ecx
call fcn.00429110
push dword [ebp - 8]
mov eax, dword [ebp - 0x20]
add eax, ebx
push eax
push dword [ebp + 0x1c]
call dword [ebp + 0x18]
mov ecx, eax
add esp, 0x24
mov dword [ebp - 4], ecx
test ecx, ecx
jne 0x426721
test esi, esi
je 0x426587
mov eax, dword [ebp - 0x24]
mov esi, ebx
add eax, 0xfffffffc
add eax, ebx
cmp ebx, eax
ja 0x426587
mov ecx, dword [eax]
mov edx, dword [esi]
bswap ecx
bswap edx
mov dword [esi], ecx
add esi, 4
mov dword [eax], edx
sub eax, 4
cmp esi, eax
jbe 0x426548
mov eax, dword [ebp - 4]
mov dword [ebp - 4], eax
jmp 0x42658f
mov edx, accept
xor ecx, ecx
nop dword [eax]
test edx, esi
jne 0x42657c
inc ecx
shr edx, 1
cmp ecx, 0x20
jb 0x426570
inc eax
shl eax, 5
sub eax, ecx
jmp 0x4264a2
test ecx, ecx
jne 0x426721
mov eax, dword [ebp - 8]
mov dword [ebp - 0x28], 0
lea esi, [eax*8]
sub esi, dword [ebp - 0xc]
mov eax, esi
and esi, 0x1f
shr eax, 5
mov dword [ebp - 0x10], esi
cmp eax, edi
ja 0x42663b
jne 0x4265c0
test esi, esi
jne 0x42663b
test eax, eax
je 0x4265f7
mov ecx, edi
xor edx, edx
sub ecx, eax
mov dword [ebp - 0x14], ecx
je 0x4265e5
mov esi, dword [ebp - 0x14]
lea ecx, [ebx + eax*4]
mov eax, dword [ecx]
lea ecx, [ecx + 4]
mov dword [ebx + edx*4], eax
inc edx
cmp edx, esi
jb 0x4265d5
mov esi, dword [ebp - 0x10]
cmp edx, edi
jae 0x4265f7
mov ecx, edi
lea edi, [ebx + edx*4]
sub ecx, edx
xor eax, eax
rep stosd dword es:[edi], eax
mov edi, dword [ebp + 0x14]
test esi, esi
je 0x42664e
mov dword [ebp - 0x14], edi
test edi, edi
je 0x42664e
mov eax, 0x20
sub eax, esi
dec edi
mov dword [ebp - 0x2c], eax
lea esi, [ebx + edi*4]
mov ebx, dword [ebp - 0x28]
mov edi, dword [ebp - 0x10]
mov edx, dword [esi]
lea esi, [esi - 4]
mov ecx, edi
mov eax, edx
shr eax, cl
mov ecx, dword [ebp - 0x2c]
or eax, ebx
mov ebx, edx
mov dword [esi + 4], eax
shl ebx, cl
sub dword [ebp - 0x14], 1
jne 0x426616
mov ebx, dword [ebp + 8]
mov edi, dword [ebp + 0x14]
jmp 0x42664e
lea eax, [edi*4]
push eax
push 0
push ebx
call fcn.00429110
add esp, 0xc
sub dword [ebp - 0x18], 1
je 0x426715
mov esi, dword [0x44eb3c]
mov edx, dword [0x44eb3c]
xor esi, dword [ebx]
xor edx, dword [ebp + 0xc]
mov eax, edx
xor eax, esi
sub esi, edx
shr eax, 0x1f
xor eax, dword [0x44eb3c]
mov ecx, eax
neg eax
shr ecx, 1
neg ecx
or ecx, eax
mov eax, dword [0x44eb3c]
shr ecx, 0x1f
neg ecx
xor eax, ecx
and ecx, edx
not eax
mov edx, 1
and esi, eax
mov eax, dword [0x44eb3c]
or esi, ecx
shr esi, 0x1f
xor eax, esi
mov esi, dword [0x44eb3c]
mov ecx, eax
neg eax
shr ecx, 1
neg ecx
or ecx, eax
shr ecx, 0x1f
dec ecx
mov dword [ebp - 0x2c], ecx
cmp edi, edx
jbe 0x4266e1
mov eax, dword [0x44eb3c]
xor eax, dword [ebx + edx*4]
inc edx
mov ecx, eax
neg eax
shr ecx, 1
neg ecx
or ecx, eax
shr ecx, 0x1f
neg ecx
or esi, ecx
cmp edx, edi
jb 0x4266c0
mov ecx, dword [ebp - 0x2c]
push edi
push dword [ebp + 0x10]
or esi, ecx
push ebx
call fcn.00426030
mov ecx, dword [ebp - 0x1c]
and eax, esi
add esp, 0xc
cmp eax, dword [0x44eb3c]
mov eax, dword [ebp - 0x20]
lea esi, [ecx*4]
je 0x4264f0
mov eax, dword [ebp - 4]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 0xfffffff2
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, ecx
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 0xfffffffc
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret