Function at 0x421222
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x98
mov dword [esp + 0x1c], 0x65256347
mov dword [esp + 0x20], 0x69f867f6
mov dword [esp + 0x24], 0x6d0d6b2e
mov dword [esp + 0x28], 0x91f16ffa
mov dword [esp + 0x2c], 0x95e893b7
mov dword [esp + 0x30], 0x99f097e2
mov dword [esp + 0x34], 0x9df29b0f
mov dword [esp + 0x38], 0x81e59ffa
mov dword [esp + 0x3c], 0x85e68310
mov dword [esp + 0x40], 0x891a87ef
mov dword [esp + 0x44], 0x8df08bee
mov dword [esp + 0x48], 0xb1228ffe
mov dword [esp + 0x4c], 0xb5d2b3dd
mov dword [esp + 0x50], 0xb9d4b7df
mov dword [esp + 0x54], 0xbd2fbbdf
lea eax, [esp + 0x58]
mov word [esp + 0x58], 0xbfbe
xor edx, edx
mov ecx, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, ecx
or esi, 0x6aa87f2
add esi, edx
mov edi, edx
xor edi, 0x86aa87f2
lea ebx, [edi + esi*2]
lea esi, [edi + esi*2]
add esi, 2
mov edi, esi
not edi
lea ebp, [ebx*2 + 4]
not ebp
add ebx, ebp
add ebx, 2
and ebx, edi
and esi, 0x96
and ebx, 0x69
or ebx, esi
xor bl, byte [esp + edx + 0x1c]
xor bl, 0x69
add bl, 0x70
mov byte [esp + edx + 0x1c], bl
lea esi, [edx + 1]
dec ecx
mov edx, esi
cmp esi, 0x3e
jne case.default.0x42121b
lea ebp, [esp + 0x5a]
lea esi, [esp + 0x1c]
mov edx, esi
mov edi, ebp
mov ecx, 0xf
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0x96]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
lea eax, [esp + 0x18]
push eax
push 0
push 0
push 0x1e
push ebp
push 0
call dword [0x444850]
xor ecx, ecx
cmp eax, 0xc0000023
setne cl
xor ebx, ebx
jmp dword [ecx*4 + 0x43f488]
mov ebx, dword [esp + 0x18]
mov edi, ebp
test ebx, ebx
jns 0x421233
mov eax, 0xffffffff
jmp 0x421236
lea eax, [ebx + ebx]
push eax
call fcn.00408330
add esp, 4
mov ebp, eax
lea eax, [esp + 0x18]
push eax
push ebx
push ebp
push 0x1e
push edi
push 0
call dword [0x444850]
not eax
shr eax, 0x1f
xor ebx, ebx
jmp dword [eax*4 + 0x43f490]
jmp dword [0x43f49c]
mov dword [esp], 0xa017aef9
mov dword [esp + 4], 0xa41da214
mov dword [esp + 8], 0xb802a601
mov dword [esp + 0xc], 0xbc19ba0b
mov dword [esp + 0x10], 0xb00dbe04
mov dword [esp + 0x14], 0xb4b3b215
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0x85
xor cl, byte [esp + eax]
add cl, 0xd8
mov byte [esp + eax], cl
inc eax
cmp eax, 0x18
jne 0x4212a0
mov eax, esp
mov edx, eax
mov ecx, 6
mov edi, esi
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0x34]
lea edx, [esp + 0x18]
xor ecx, ecx
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
mov dword [esp + 0xc], 0
mov dword [esp + 4], 0
mov byte [esp + 0x10], 1
mov dword [esp], esi
mov dword [esp + 8], ebp
push 0
push 0
push eax
push dword [esp + 0xb8]
call fcn.0041c960
add esp, 0x10
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp], 0xa017aef9
mov dword [esp + 4], 0xa41da214
mov dword [esp + 8], 0xb802a601
mov dword [esp + 0xc], 0xbc19ba0b
mov dword [esp + 0x10], 0xb00dbe04
mov dword [esp + 0x14], 0xb4b3b215
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0x85
xor cl, byte [esp + eax]
add cl, 0xd8
mov byte [esp + eax], cl
inc eax
cmp eax, 0x18
jne 0x421350
mov eax, esp
mov edx, eax
mov ecx, 6
mov edi, esi
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0x34]
lea edx, [esp + 0x18]
xor ecx, ecx
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
mov dword [esp + 0xc], 0
mov dword [esp + 4], 0
mov byte [esp + 0x10], 1
mov dword [esp], esi
mov dword [esp + 8], ebp
push 0
push 0
push eax
push dword [esp + 0xb8]
call fcn.0041c960
add esp, 0x10
mov ebx, eax
jmp dword [0x43f4a0]
jmp dword [0x43f4a8]
push ebp
call fcn.00408340
add esp, 4
mov eax, ebx
add esp, 0x98
pop esi
pop edi
pop ebx
pop ebp
ret
adc al, byte [edx]
int 0x13
inc edx
add byte [esi + 0x61004213], bh
adc al, byte [edx]
adc al, byte [bp + si]
adc byte [ebx], dl
inc edx
add byte [esi + 0x10004213], bh
adc eax, dword [edx]
les edx, [ebx]
inc edx
add ch, cl
adc eax, dword [edx]
rcl dword [edx + eax*2], 0
adc al, 66
add bh, ch
adc al, 0x42
add bh, ch
adc al, 0x42
add dh, dh
adc al, 0x42
add byte [eax], bh
sub byte [edx], al
xor dword [0x29bd0042], edx
inc edx
add byte [ecx + 0x28], dl
inc edx
add byte [ecx + 0x15], dh
inc edx
add byte [eax - 0x5affbdeb], al
adc eax, 0x15b00042
inc edx
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add dl, cl
sub dword [edx], eax
jo 0x43f513
inc edx
add dh, dl
and dword [edx], eax
loopne 0x43f520
inc edx
add byte [esi + 0x27], dl
inc edx
add dl, dl
daa
inc edx
add al, ah
inc edx
add al, al
add byte [ebp + 0x22], ah
inc edx
add byte [eax + 0x26], dl
inc edx