Function at 0x4021c5
Capabilities:
Encode data using xor

Disassembly:
div byte [ebp - 0x17]
and dword [0x404378], esi
and dword [0x404364], esi
and dword [0x4043a0], esi
pop edi
pop esi
ret
push ebp
mov ebp, esp
shr esp, 0xac
add eax, dword [eax]
add byte [ebx + 0x56], dl
push edi
push 4
call dword [sym.imp.KERNEL32.dll_SetErrorMode]
not dword [sym.imp.KERNEL32.dll_GetCommandLineA]
xor byte [eax], al
mov esi, dword [eax - 0x77]
jne 0x4021dc
or al, byte [esi]
mov esp, 0x61850f22
add al, 0
add byte [edx - 0x76b9feba], cl
jne 0x4021ad
xor ebx, ebx
cmp al, bl
je 0x402208
cmp al, 0x22
je 0x402208
mov al, byte [esi + 1]
inc esi
mov dword [ebp - 8], esi
jmp 0x4021f7
cmp byte [esi], 0x22
jne 0x402211
inc esi
mov dword [ebp - 8], esi
cmp byte [esi], 0x20
ja 0x40221f
inc esi
cmp byte [esi], 0x20
je 0x402216
mov dword [ebp - 8], esi
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
cmp byte [esi], 0x2f
mov dword [ebp - 0xc], eax
jne 0x402243
test byte [eax], dh
inc eax
add byte [eax + 0x45892f3e], al
hlt
mov es, word [esi + 1]
cmp al, 0x53
je 0x402239
cmp al, 0x73
xor eax, 0xd005c70a
inc edx
inc eax
add byte [ecx], al
add byte [eax], al
add byte [ebp - 0x432f7b], cl
jmp [eax]
mov dword [0x4042d0], 1
lea eax, [ebp - 0x4330]
push 0x400000
pop eax
push dword [ebp - 0xc]
call dword [0x4403048]
stosb byte es:[edi], al
push cs
mov eax, esi
cmp cl, bl
je 0x40226b
cmp cl, 0x7f
je 0x40226b
mov cl, byte [eax + 1]
inc eax
jmp 0x40225c
cmp byte [eax], bl
je 0x4022a1
mov byte [eax], bl
inc eax
xor edx, edx
mov cl, byte [eax]
cmp cl, bl
je 0x40228c
cmp cl, 0x20
je 0x40228c
movsx ecx, cl
lea edx, [edx + edx*4]
inc eax
lea edx, [ecx + edx*2 - 0x30]
jmp 0x402274
add dword [0x404188], edx
inc eax
jo 0x402222
test esp, edx
cld
invalid
lea eax, [ebp - 0x8032c]
push ebx
push eax
call dword [0x4c303c]
cmp eax, ebx
mov dword [0x4046b8], eax
jl 0x4024c2
call section..text
mov eax, dword [0x8604188]
mov edi, dword [str.GetVersionExA]
push ebx
push eax
push dword [0x4042b8]
mov dword [0x804042b0], eax
mov dword [0x5042a8], eax
call edi
mov esi, dword [sym.imp.KERNEL32.dll__lread]
lea eax, [ebp - 1]
outsb dx, byte [esi]
add dword [eax - 1], edx
aaa
mov eax, 0xff004042
salc
cmp byte [ebp - 1], bl
je 0x402352
movzx eax, byte [ebp - 1]
push eax
lea eax, [ebp - 0x118]
push eax
push dword [0x4042b8]
call esi
lea eax, [ebp - 0x18]
push 4
push eax
push dword [ebp + 0x4042b8]
call esi
lea eax, [ebp - 0x108]
push ebx
push eax
call dword [sym.imp.KERNEL32.dll__lopen]
cmp eax, ebx
mov dword [ebp - 0x10], eax
jl 0x40234c
push 2
push ebx
push eax
call edi
cmp dword [ebp - 0x18], eax
je 0x402341
mov byte [ebp - 0x118], bl
push dword [ebp - 0x10]
call dword [sym.imp.KERNEL32.dll__lclose]
jmp 0x402350
mov byte [ebp - 0x118], bl
invalid
push 4
push 0x40c2d4
push dword [0x204042b8]
call esi
push 0xc
push 0x404350
push dword [0x4042b8]
call esi
push 8
push 0x404308
push dword [0x6e4042b8]
xor byte [ebx + ecx*4], dh
nop
mov eax, 0x5d804790
jp 0x4023dd
lea eax, [edx]
mov edi, 0x14638704
dec ebx
mov ah, 0x85
ret 0xe3c
sbb dword [ecx + 0x7d], edi
push 0xffffffffffffffd3
xlatb
out 0x5d, al
jno 0x40242e
ret 0xc095
mov esi, 0x98420d27
sbb dword ds:[ebp + 0x7e58a5a2], eax
test eax, 0x3ec5584c
push edx
jae 0x4023af
insb byte es:[edi], dx
push ss
ljmp 0x65e4
fistp qword [ebx + 0x5924d49d]
cli
invalid
xchg edx, eax
pushfd
enter 0x438a, 0xfffffffffffffff3
add edi, esp
imul edx, dword fs:[ebx], 0x15
imul byte [esi + 0x52]
invalid