Function at 0x4022c0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov ecx, dword [ebp + 8]
sub esp, 0x34
push ebx
push esi
xor ebx, ebx
xor eax, eax
push edi
sub ecx, 0x453810
jmp 0x4022e0
mov dl, byte [ecx + eax + 0x453810]
mov byte [eax + 0x453810], dl
inc eax
cmp eax, 0x28
jb 0x4022e0
mov al, 5
jmp 0x4022f9
xor ebx, ebx
dec al
mov byte [ebp - 3], al
mov byte [ebp - 2], 1
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0xc], ebx
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 8], ebx
mov dword [ebp - 0x1c], ebx
jmp 0x402322
xor ebx, ebx
mov esi, 0x453838
mov edi, 0x20
lea esp, [esp]
push esi
call fcn.004028c0
add esp, 4
add esi, 0x20
dec edi
jne 0x402330
mov edx, 0x453838
xor esi, esi
mov edi, 0x80
jmp 0x402350
mov ecx, dword [edx]
mov eax, ecx
shr eax, 1
and eax, 0x77777777
sub ecx, eax
shr eax, 1
and eax, 0x77777777
mov ebx, eax
shr ebx, 1
and ebx, 0x77777777
add ebx, eax
sub ecx, ebx
mov eax, ecx
shr eax, 4
add eax, ecx
mov ecx, dword [edx + 4]
and eax, 0xf0f0f0f
imul eax, eax, 0x1010101
shr eax, 0x18
add dword [ebp - 0x20], eax
mov eax, ecx
shr eax, 1
and eax, 0x77777777
sub ecx, eax
shr eax, 1
and eax, 0x77777777
mov ebx, eax
shr ebx, 1
and ebx, 0x77777777
add ebx, eax
sub ecx, ebx
mov eax, ecx
shr eax, 4
add eax, ecx
and eax, 0xf0f0f0f
imul eax, eax, 0x1010101
shr eax, 0x18
add esi, eax
add edx, 8
dec edi
jne 0x402350
add dword [ebp - 0x20], esi
cmp dword [ebp - 0x1c], edi
je 0x402420
mov ecx, dword [ebp - 0x30]
mov eax, dword [0x453838]
mov edx, ecx
shr edx, 1
shl eax, 0x1f
or eax, edx
xor eax, ecx
mov ecx, eax
shr ecx, 1
and ecx, 0x77777777
sub eax, ecx
shr ecx, 1
and ecx, 0x77777777
mov edx, ecx
shr edx, 1
and edx, 0x77777777
add edx, ecx
sub eax, edx
mov ecx, eax
shr ecx, 4
add ecx, eax
and ecx, 0xf0f0f0f
imul ecx, ecx, 0x1010101
shr ecx, 0x18
add dword [ebp - 0xc], ecx
mov dword [ebp - 0x18], edi
mov edx, 0x45383c
mov dword [ebp - 0x2c], 0x55
nop
mov esi, dword [edx]
mov ecx, dword [edx - 4]
mov ebx, ecx
shr ebx, 1
mov eax, esi
shl eax, 0x1f
or eax, ebx
xor ecx, eax
mov eax, ecx
shr eax, 1
and eax, 0x77777777
sub ecx, eax
shr eax, 1
and eax, 0x77777777
mov ebx, eax
shr ebx, 1
and ebx, 0x77777777
add ebx, eax
sub ecx, ebx
mov eax, ecx
shr eax, 4
add eax, ecx
and eax, 0xf0f0f0f
imul eax, eax, 0x1010101
shr eax, 0x18
add dword [ebp - 0xc], eax
mov ecx, esi
mov esi, dword [edx + 4]
mov ebx, ecx
mov eax, esi
shl eax, 0x1f
shr ebx, 1
or eax, ebx
xor ecx, eax
mov eax, ecx
shr eax, 1
and eax, 0x77777777
sub ecx, eax
shr eax, 1
and eax, 0x77777777
mov ebx, eax
shr ebx, 1
and ebx, 0x77777777
add ebx, eax
sub ecx, ebx
mov eax, ecx
shr eax, 4
add eax, ecx
and eax, 0xf0f0f0f
imul eax, eax, 0x1010101
shr eax, 0x18
add edi, eax
mov eax, dword [edx + 8]
mov dword [ebp - 0x30], eax
shl eax, 0x1f
mov ecx, esi
shr esi, 1
or eax, esi
xor ecx, eax
mov eax, ecx
shr eax, 1
and eax, 0x77777777
sub ecx, eax
shr eax, 1
and eax, 0x77777777
mov esi, eax
shr esi, 1
and esi, 0x77777777
add esi, eax
sub ecx, esi
mov eax, ecx
shr eax, 4
add eax, ecx
and eax, 0xf0f0f0f
imul eax, eax, 0x1010101
shr eax, 0x18
add dword [ebp - 0x18], eax
add edx, 0xc
dec dword [ebp - 0x2c]
jne 0x402430
mov ecx, dword [ebp - 0x18]
add ecx, edi
add dword [ebp - 0xc], ecx
xor edi, edi
cmp dword [ebp - 0x1c], edi
je 0x402574
mov eax, dword [ebp - 0x34]
mov ecx, dword [0x453838]
mov edx, eax
shr edx, 8
shl ecx, 0x18
or ecx, edx
xor ecx, eax
mov eax, ecx
shr eax, 1
and eax, 0x77777777
sub ecx, eax
shr eax, 1
and eax, 0x77777777
mov edx, eax
shr edx, 1
and edx, 0x77777777
add edx, eax
sub ecx, edx
mov eax, ecx
shr eax, 4
add eax, ecx
and eax, 0xf0f0f0f
imul eax, eax, 0x1010101
shr eax, 0x18
add dword [ebp - 0x10], eax
mov dword [ebp - 0x18], edi
mov edx, 0x45383c
mov dword [ebp - 0x2c], 0x55
mov esi, dword [edx]
mov ecx, dword [edx - 4]
mov ebx, ecx
shr ebx, 8
mov eax, esi
shl eax, 0x18
or eax, ebx
xor ecx, eax
mov eax, ecx
shr eax, 1
and eax, 0x77777777
sub ecx, eax
shr eax, 1
and eax, 0x77777777
mov ebx, eax
shr ebx, 1
and ebx, 0x77777777
add ebx, eax
sub ecx, ebx
mov eax, ecx
shr eax, 4
add eax, ecx
and eax, 0xf0f0f0f
imul eax, eax, 0x1010101
shr eax, 0x18
add dword [ebp - 0x10], eax
mov ecx, esi
mov esi, dword [edx + 4]
mov ebx, ecx
mov eax, esi
shl eax, 0x18
shr ebx, 8
or eax, ebx
xor ecx, eax
mov eax, ecx
shr eax, 1
and eax, 0x77777777
sub ecx, eax
shr eax, 1
and eax, 0x77777777
mov ebx, eax
shr ebx, 1
and ebx, 0x77777777
add ebx, eax
sub ecx, ebx
mov ebx, dword [edx + 8]
mov eax, ecx
shr eax, 4
add eax, ecx
and eax, 0xf0f0f0f
imul eax, eax, 0x1010101
shr eax, 0x18
add edi, eax
mov ecx, esi
shr esi, 8
mov eax, ebx
shl eax, 0x18
or eax, esi
xor ecx, eax
mov eax, ecx
shr eax, 1
and eax, 0x77777777
sub ecx, eax
shr eax, 1
and eax, 0x77777777
mov esi, eax
shr esi, 1
and esi, 0x77777777
add esi, eax
sub ecx, esi
mov eax, ecx
shr eax, 4
add eax, ecx
and eax, 0xf0f0f0f
imul eax, eax, 0x1010101
shr eax, 0x18
add dword [ebp - 0x18], eax
add edx, 0xc
dec dword [ebp - 0x2c]
mov dword [ebp - 0x34], ebx
jne 0x402583
mov ecx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
add ecx, edi
add dword [ebp - 0x10], ecx
cmp dword [ebp - 0x1c], 0
je 0x4026bd
xor ecx, ecx
mov dword [ebp - 0x18], ecx
lea esp, [esp]
mov al, byte [ebp - 1]
shr al, cl
test al, 1
je 0x4026a6
cmp edx, dword [ebp - 0x14]
jbe 0x4026a1
mov dword [ebp - 0x14], edx
xor edx, edx
inc esi
jmp 0x4026b1
cmp esi, dword [ebp - 8]
jbe 0x4026ae
mov dword [ebp - 8], esi
xor esi, esi
inc edx
mov ecx, dword [ebp - 0x18]
inc ecx
mov dword [ebp - 0x18], ecx
cmp ecx, 8
jb 0x402690
xor edi, edi
nop
xor ecx, ecx
mov dword [ebp - 0x18], ecx
mov al, byte [edi + 0x453838]
shr al, cl
test al, 1
je 0x4026de
cmp edx, dword [ebp - 0x14]
jbe 0x4026d9
mov dword [ebp - 0x14], edx
xor edx, edx
inc esi
jmp 0x4026e9
cmp esi, dword [ebp - 8]
jbe 0x4026e6
mov dword [ebp - 8], esi
xor esi, esi
inc edx
mov ecx, dword [ebp - 0x18]
inc ecx
mov dword [ebp - 0x18], ecx
cmp ecx, 8
jb 0x4026c5
inc edi
cmp edi, 0x3ff
jb 0x4026c0
mov cl, byte [0x453c37]
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x28], edx
mov byte [ebp - 1], cl
cmp edx, dword [ebp - 0x14]
jbe 0x402715
mov dword [ebp - 0x14], edx
cmp esi, dword [ebp - 8]
jbe 0x40271d
mov dword [ebp - 8], esi
mov eax, dword [ebp - 0x1c]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, 0x64
jb 0x402320
mov ecx, dword [ebp - 0x30]
mov eax, ecx
shr eax, 1
xor eax, ecx
mov ecx, eax
shr ecx, 1
and ecx, 0x77777777
sub eax, ecx
shr ecx, 1
and ecx, 0x77777777
mov edi, ecx
shr edi, 1
and edi, 0x77777777
add edi, ecx
sub eax, edi
mov ecx, eax
shr ecx, 4
add ecx, eax
and ecx, 0xf0f0f0f
imul ecx, ecx, 0x1010101
shr ecx, 0x18
add dword [ebp - 0xc], ecx
mov eax, ebx
shr eax, 8
xor eax, ebx
mov ecx, eax
shr ecx, 1
and ecx, 0x77777777
sub eax, ecx
shr ecx, 1
and ecx, 0x77777777
mov edi, ecx
shr edi, 1
and edi, 0x77777777
add edi, ecx
sub eax, edi
mov edi, dword [ebp - 0x14]
mov ecx, eax
shr ecx, 4
add ecx, eax
and ecx, 0xf0f0f0f
imul ecx, ecx, 0x1010101
shr ecx, 0x18
add dword [ebp - 0x10], ecx
xor eax, eax
jmp 0x4027c0
mov bl, byte [0x453c37]
mov cl, al
shr bl, cl
test bl, 1
je 0x4027da
cmp edx, edi
jbe 0x4027d5
mov edi, edx
xor edx, edx
inc esi
jmp 0x4027e5
cmp esi, dword [ebp - 8]
jbe 0x4027e2
mov dword [ebp - 8], esi
xor esi, esi
inc edx
inc eax
cmp eax, 8
jb 0x4027c0
cmp edx, edi
jbe 0x4027f1
mov edi, edx
mov edx, dword [ebp - 8]
cmp esi, edx
jbe 0x4027fd
mov dword [ebp - 8], esi
mov edx, esi
mov eax, dword [ebp - 0x20]
mov ecx, 0x6448d
cmp ecx, eax
sbb ecx, ecx
neg ecx
cmp eax, 0x63b72
sbb eax, eax
neg eax
or ecx, eax
je 0x40281c
xor al, al
jmp 0x40281f
mov al, byte [ebp - 2]
mov ecx, dword [ebp - 0xc]
mov esi, 0x6448d
cmp esi, ecx
sbb esi, esi
neg esi
cmp ecx, 0x63b72
sbb ecx, ecx
neg ecx
or esi, ecx
je 0x40283d
xor al, al
mov ecx, dword [ebp - 0x10]
mov esi, 0x6448d
cmp esi, ecx
sbb esi, esi
neg esi
cmp ecx, 0x63b72
sbb ecx, ecx
neg ecx
or esi, ecx
je 0x40285b
xor al, al
mov ecx, 0x1d
cmp ecx, edi
sbb ecx, ecx
neg ecx
cmp edi, 0xe
sbb esi, esi
neg esi
or ecx, esi
je 0x402873
xor al, al
mov ecx, 0x1d
cmp ecx, edx
sbb ecx, ecx
neg ecx
cmp edx, 0xe
sbb edx, edx
neg edx
or ecx, edx
jne 0x40288d
test al, al
jne 0x4028a1
mov al, byte [ebp - 3]
test al, al
jne 0x4022f7
pop edi
pop esi
mov al, 3
pop ebx
mov esp, ebp
pop ebp
ret
push 0x400
push 0
push 0x453838
call fcn.0042adc0
add esp, 0xc
pop edi
pop esi
xor al, al
pop ebx
mov esp, ebp
pop ebp
ret