Function at 0x421e00
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x58
mov ebp, dword [esp + 0x70]
mov ebx, dword [ebp + 4]
mov ecx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ecx
cmp word [ebx + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x421e20
mov eax, dword [esp + 0x74]
mov edi, dword [eax + 4]
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
cmp word [edi + eax + 2], 0
lea eax, [eax + 2]
jne 0x421e40
sar ecx, 1
sar eax, 1
lea edx, [ecx + eax]
mov dword [esp + 0x4c], eax
add eax, ecx
add eax, 0x1b
test eax, eax
mov dword [esp + 0x50], ecx
mov dword [esp + 0x48], edx
jns 0x421e6e
mov eax, 0xffffffff
jmp 0x421e75
lea eax, [edx*2 + 0x36]
push eax
call fcn.0040ce10
add esp, 4
mov dword [esp], eax
mov dword [esp + 8], 0x19ce1bb8
mov dword [esp + 0xc], 0xe54be7a9
mov dword [esp + 0x10], 0xe156e34b
mov dword [esp + 0x14], 0xed25ef00
mov dword [esp + 0x18], 0xe956eb54
mov dword [esp + 0x1c], 0xf544f743
mov dword [esp + 0x20], 0xf145f349
mov dword [esp + 0x24], 0xfd4cff41
mov dword [esp + 0x28], 0xf927fb1c
mov dword [esp + 0x2c], 0xc57ac753
mov dword [esp + 0x30], 0xc175c378
mov dword [esp + 0x34], 0xcd67cf72
mov dword [esp + 0x38], 0xc96ecb71
mov word [esp + 0x3c], 0xd7c8
mov dword [esp + 0x3e], 0
mov eax, 0x7b
mov ecx, 0x84
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + eax - 0x73]
mov edx, ecx
xor edx, eax
and edx, esi
xor edx, eax
add dl, 0x99
mov byte [esp + eax - 0x73], dl
inc eax
dec ecx
cmp eax, 0xb5
jne 0x421f10
movzx ecx, word [ebx]
mov eax, dword [esp]
test cx, cx
je 0x421f51
add ebx, 2
mov eax, dword [esp]
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [ebx]
add ebx, 2
test cx, cx
jne 0x421f40
mov word [eax], 0
movzx ecx, word [esp + 8]
test cx, cx
je 0x421f81
lea edx, [esp + 0xa]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x421f70
mov word [eax], 0
movzx ecx, word [edi]
test cx, cx
je 0x421fb1
add edi, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edi]
add edi, 2
test cx, cx
jne 0x421fa0
mov word [eax], 0
mov esi, dword [ebp]
mov eax, 0xfffffffe
nop
nop
cmp word [esi + eax + 2], 0
lea eax, [eax + 2]
jne 0x421fc0
sar eax, 1
mov ebx, dword [ebp + 8]
mov ecx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ebx + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x421fe0
sar ecx, 1
lea edx, [eax + ecx]
add eax, ecx
inc eax
lea ecx, [edx*2 + 2]
and ecx, 0x18
mov edx, dword [esp + 0x74]
mov edi, dword [edx]
mov edx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edi + edx + 2], 0
lea edx, [edx + 2]
jne 0x422010
xor eax, 0xc
sar edx, 1
add eax, ecx
lea ecx, [edx + eax]
add ecx, 6
test ecx, ecx
jns 0x422033
mov eax, 0xffffffff
jmp 0x42203c
add eax, edx
lea eax, [eax*2 + 0xc]
mov dword [esp + 0x54], ebx
mov dword [esp + 4], edi
push eax
call fcn.0040ce10
add esp, 4
movzx ecx, word [esi]
mov edi, eax
test cx, cx
je 0x422071
add esi, 2
mov edi, eax
nop
nop
nop
nop
mov word [edi], cx
add edi, 2
movzx ecx, word [esi]
add esi, 2
test cx, cx
jne 0x422060
mov dword [esp + 0x44], eax
mov word [edi], 0x2f
mov dword [esp + 8], 0xb9c1bbd5
mov dword [esp + 0xc], 0xbd2abf30
mov dword [esp + 0x10], 0xb120b327
mov dword [esp + 0x14], 0xb529b725
mov dword [esp + 0x18], 0xa938ab25
mov dword [esp + 0x1c], 0xadffaf3d
mov dword [esp + 0x20], 0xa3ac
mov byte [esp + 0x24], 0
mov ebp, 0x1f
mov ecx, 0x20
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + ebp - 0x17]
lea edx, [ebp - 0x48b34780]
lea ebx, [esi + esi]
not ebx
add ebx, esi
and ebx, 0x53e4236f
and esi, 0xffffff90
or esi, ebx
mov ebx, ecx
and ebx, 0x2f
mov eax, ebp
and eax, 0x2f
xor eax, 0x40a0036f
and edx, 0xa4089890
or edx, ebx
or edx, eax
xor edx, esi
add edx, 0x102dff03
mov eax, edx
and eax, 1
xor edx, 1
lea eax, [edx + eax*2]
add al, 0xe1
mov byte [esp + ebp - 0x17], al
inc ebp
dec ecx
cmp ebp, 0x3c
jne 0x4220d0
add edi, 2
mov ecx, dword [esp + 0x54]
movzx eax, word [ecx]
test ax, ax
mov edx, dword [esp + 4]
je 0x422153
add ecx, 2
mov ebx, dword [esp]
nop
mov word [edi], ax
add edi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x422140
jmp 0x422156
mov ebx, dword [esp]
mov word [edi], 0
movzx eax, word [esp + 8]
test ax, ax
je 0x422183
lea ecx, [esp + 0xa]
mov esi, dword [esp + 0x44]
nop
nop
nop
mov word [edi], ax
add edi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x422170
jmp 0x422187
mov esi, dword [esp + 0x44]
mov word [edi], 0
movzx eax, word [edx]
test ax, ax
je 0x4221b1
add edx, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edi], ax
add edi, 2
movzx eax, word [edx]
add edx, 2
test ax, ax
jne 0x4221a0
mov word [edi], 0
mov dword [esp + 8], 0x999a9baa
xor eax, eax
mov ecx, eax
add cl, 0xdb
xor cl, byte [esp + eax + 8]
add cl, 0xb9
mov byte [esp + eax + 8], cl
inc eax
cmp eax, 4
jne 0x4221c0
lea eax, [esp + 8]
push 0
push 0
push 0xc00000
push eax
push ebx
push esi
push dword [esp + 0x84]
call fcn.00425970
add esp, 0x1c
mov byte [esp], al
jmp dword [0x44c944]