Function at 0x421d70
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xd8
mov esi, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
mov dword [esp + 0x40], 0xc951cb59
mov dword [esp + 0x44], 0xc50ac74f
mov dword [esp + 0x48], 0xc15ec316
mov dword [esp + 0x4c], 0xbdbebf5e
mov byte [esp + 0x50], 0
xor eax, eax
nop
nop
nop
nop
mov ecx, eax
add cl, 0xb3
xor cl, byte [esp + eax + 0x40]
add cl, 0x81
mov byte [esp + eax + 0x40], cl
inc eax
cmp eax, 0x11
jne 0x421db0
lea eax, [esp + 0x40]
push eax
push esi
push edi
call fcn.00419140
add esp, 0xc
mov bh, al
mov dword [esp + 0x40], 0x9f10bf1
mov dword [esp + 0x44], 0x58a0786
mov dword [esp + 0x48], 0x13003c3
mov dword [esp + 0x4c], 0x1de01ffc
mov word [esp + 0x50], 0x1b1c
mov dword [esp + 0x52], 0
mov word [esp + 0x56], 0
mov eax, 0xc135d2c3
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x3eca2d7d]
xor ecx, eax
mov edx, ecx
and edx, 0x30
xor ecx, 0x30
lea ecx, [ecx + edx*2]
inc cl
mov byte [esp + eax + 0x3eca2d7d], cl
inc eax
cmp eax, 0xc135d2db
jne 0x421e20
lea eax, [esp + 0x40]
push eax
push esi
push edi
call fcn.00419140
add esp, 0xc
mov bl, al
mov dword [esp + 0x40], 0x99eb9bf6
mov dword [esp + 0x44], 0xa5d5a7e6
mov dword [esp + 0x48], 0xa1d5a3cc
mov dword [esp + 0x4c], 0xadd2afdd
mov dword [esp + 0x50], 0xa9d4abdd
mov dword [esp + 0x54], 0xb584b72f
mov dword [esp + 0x58], 0xb1cdb3c9
mov dword [esp + 0x5c], 0xbdc9bfc4
mov dword [esp + 0x60], 0xb9d1bbc0
mov word [esp + 0x64], 0xc7b8
mov dword [esp + 0x66], 0
mov word [esp + 0x6a], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0x9b
xor cl, byte [esp + eax + 0x40]
add cl, 0xf9
mov byte [esp + eax + 0x40], cl
inc eax
cmp eax, 0x2c
jne 0x421ec0
lea eax, [esp + 0x40]
push eax
push esi
push edi
call fcn.00419140
add esp, 0xc
mov byte [esp + 0xc], al
mov dword [esp + 0x40], 0xe37de143
mov dword [esp + 0x44], 0xe77de57b
mov dword [esp + 0x48], 0xdb7fd941
mov dword [esp + 0x4c], 0xdf80dd4f
mov dword [esp + 0x50], 0xd343d143
mov dword [esp + 0x54], 0xd74fd548
mov dword [esp + 0x58], 0xcb6fc95c
mov word [esp + 0x5c], 0xcdcc
mov dword [esp + 0x5e], 0
or bh, bl
mov byte [esp + 8], bh
xor edi, edi
xor ecx, ecx
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + ecx + 0x40]
mov eax, edi
and eax, 0x30
mov edx, ecx
xor edx, 0x9941e458
add edx, eax
xor edx, ebx
mov eax, edx
and eax, 0x47
mov ebx, edx
xor ebx, 0x46
lea ebx, [ebx + eax*2]
and edx, 1
or ebx, 1
sub ebx, edx
inc bl
mov byte [esp + ecx + 0x40], bl
inc ecx
add edi, 2
cmp ecx, 0x22
jne 0x421f40
lea eax, [esp + 0x40]
push eax
push esi
push dword [ebp + 8]
call fcn.00419140
add esp, 0xc
mov byte [esp + 7], al
mov dword [esp + 0x40], 0x81378730
mov dword [esp + 0x44], 0x8d298329
mov dword [esp + 0x48], 0x89338f3a
mov dword [esp + 0x4c], 0x95208bfe
mov dword [esp + 0x50], 0x91279729
mov dword [esp + 0x54], 0x9d929326
mov dword [esp + 0x58], 0
movzx eax, byte [esp + 0xc]
or byte [esp + 8], al
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x40]
mov edx, eax
and edx, 5
xor edx, 0x78dd9485
mov edi, eax
and edi, 0x1a
sub edi, edx
lea edx, [edi + 0x69589426]
mov ebx, 0xd9
sub ebx, edi
mov edi, ecx
not edi
and edi, edx
xor edx, ecx
or ebx, ecx
add ebx, edi
not ebx
add ebx, edx
add bl, 0xdb
mov byte [esp + eax + 0x40], bl
inc eax
cmp eax, 0x1c
jne 0x421fe0
lea eax, [esp + 0x40]
push eax
push esi
push dword [ebp + 8]
call fcn.00419140
add esp, 0xc
mov dword [esp + 0x40], 0xd1a2cfbc
mov dword [esp + 0x44], 0xd5b7d3b3
mov dword [esp + 0x48], 0xd9a3d7b3
mov dword [esp + 0x4c], 0xddafdbf6
mov dword [esp + 0x50], 0xe1b2dfaf
mov dword [esp + 0x54], 0xe596e38b
mov dword [esp + 0x58], 0xe9e6e783
mov word [esp + 0x5c], 0
mov byte [esp + 0x5e], 0
movzx ecx, byte [esp + 7]
or byte [esp + 8], cl
mov ecx, 0x2b3964d
mov esi, 0xdd4c69b2
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + ecx - 0x2b3960d]
mov edx, esi
and edx, 0xc0086821
mov ebx, ecx
and ebx, 0x220921e
or ebx, edx
xor ebx, edi
xor ebx, 0xe09b6c61
mov edx, ebx
and edx, 1
or ebx, 1
add ebx, edx
add bl, 0x7e
mov byte [esp + ecx - 0x2b3960d], bl
inc ecx
dec esi
cmp ecx, 0x2b3966c
jne 0x422090
mov bh, byte [esp + 8]
or bh, al
lea eax, [esp + 0x40]
push eax
mov esi, dword [ebp + 0xc]
push esi
push dword [ebp + 8]
call fcn.00419140
add esp, 0xc
mov bl, al
or bl, bh
xor eax, eax
cmp dword [ebp + 0x10], 0
sete al
jmp dword [eax*4 + 0x346ec0]