Function at 0x419990
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xa0
mov dword [esp + 0x10], 0xcb9ecd68
mov dword [esp + 0x14], 0xc779c97b
mov dword [esp + 0x18], 0xc376c565
mov dword [esp + 0x1c], 0xdf83c1a0
mov dword [esp + 0x20], 0xdb56dd54
mov dword [esp + 0x24], 0xd764d965
mov dword [esp + 0x28], 0xd36bd55b
mov dword [esp + 0x2c], 0x2f9cd163
mov dword [esp + 0x30], 0x2b852d4c
mov dword [esp + 0x34], 0x27aa2995
mov dword [esp + 0x38], 0x239b25a8
mov dword [esp + 0x3c], 0x3f852192
mov dword [esp + 0x40], 0x3b9e3db3
lea eax, [esp + 0x44]
mov dword [esp + 4], eax
mov dword [esp + 0x44], 0x3938
mov eax, 0xffffffff
xor edx, edx
xor ebx, ebx
mov dword [esp], edx
movzx edi, byte [esp + ebx + 0x10]
mov esi, ebx
and esi, 0x22
mov ecx, eax
or ecx, 0xabd7f79d
mov edx, dword [esp]
and edx, 0x3a
add edx, esi
mov esi, ebx
or esi, 0x54280862
and esi, ecx
xor esi, ebx
add esi, edx
sub esi, ecx
add esi, eax
mov ecx, edi
not ecx
and ecx, esi
mov edx, esi
xor edx, edi
or esi, edi
sub edi, edx
add edi, ecx
mov ecx, edi
and ecx, esi
xor esi, edi
sub esi, edi
add esi, ecx
mov dword [esp + 0x4c], esi
mov edx, dword [esp + 0x4c]
lea ecx, [edx + edx]
mov esi, ecx
and esi, 0x5c
sub esi, edx
mov edx, dword [esp]
and ecx, 0xa2
add ecx, esi
add cl, 0x52
mov byte [esp + ebx + 0x10], cl
inc ebx
dec eax
add edx, 2
cmp ebx, 0x38
jne 0x419a20
lea edi, [esp + 0x66]
lea eax, [esp + 0x10]
mov ecx, 0xd
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [esp + 0x9a]
mov ecx, 1
mov eax, dword [esp + 4]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, dword [ebp + 0xc]
mov esi, dword [eax + 4]
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [esi + eax + 2], 0
lea eax, [eax + 2]
jne 0x419ad0
sar eax, 1
mov ecx, dword [ebp + 0x10]
mov edi, dword [ecx + 4]
mov ecx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edi + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x419af0
sar ecx, 1
lea edx, [eax + ecx]
add edx, 0x1b
test edx, edx
jns 0x419b0e
mov eax, 0xffffffff
jmp 0x419b17
add eax, ecx
lea eax, [eax*2 + 0x36]
push eax
call fcn.00408c10
add esp, 4
movzx ecx, word [esi]
mov dword [esp + 0xc], eax
test cx, cx
je 0x419b51
add esi, 2
mov eax, dword [esp + 0xc]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [esi]
add esi, 2
test cx, cx
jne 0x419b40
mov word [eax], 0
movzx ecx, word [esp + 0x66]
test cx, cx
je 0x419b81
lea edx, [esp + 0x68]
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 0x419b70
mov word [eax], 0
movzx ecx, word [edi]
test cx, cx
je 0x419bb1
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 0x419ba0
mov word [eax], 0
mov dword [esp + 0x10], 0xeb0fd5e7
mov dword [esp + 0x14], 0xef1ce962
mov dword [esp + 0x18], 0xe31eed15
mov dword [esp + 0x1c], 0xe71fe117
mov dword [esp + 0x20], 0xfb16e517
mov dword [esp + 0x24], 0xffc9f90f
lea eax, [esp + 0x28]
mov dword [esp], eax
mov word [esp + 0x28], 0xfdfe
mov dword [esp + 0x2a], 0
mov dword [esp + 0x2e], 0
mov word [esp + 0x32], 0
mov ecx, 0x9e32301d
mov edx, 0xe2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + ecx + 0x61cdcff3]
mov edi, esi
not edi
or edi, edx
mov ebx, edi
not ebx
mov eax, ebx
and eax, 0x7d
and edi, 2
imul edi, eax
mov eax, ebx
and eax, 2
or ebx, 2
imul ebx, eax
sub esi, edi
sub esi, ebx
add esi, ecx
mov dword [esp + 8], esi
mov ebx, dword [esp + 8]
mov eax, 0xab
sub eax, ebx
add ebx, 0x14
and eax, 0xcb
and ebx, 0x34
sub ebx, eax
add bl, 0xac
mov byte [esp + ecx + 0x61cdcff3], bl
inc ecx
dec edx
cmp ecx, 0x9e323041
jne 0x419c20
lea edi, [esp + 0x4c]
lea eax, [esp + 0x10]
mov ecx, 6
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [esp + 0x64]
mov ecx, 1
mov eax, dword [esp]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, dword [ebp + 0xc]
mov edi, dword [eax]
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
cmp word [edi + eax + 2], 0
lea eax, [eax + 2]
jne 0x419cb0
mov ecx, dword [ebp + 0xc]
mov esi, dword [ecx + 8]
mov ecx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [esi + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x419cd0
mov edx, dword [ebp + 0x10]
mov ebx, dword [edx]
mov edx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ebx + edx + 2], 0
lea edx, [edx + 2]
jne 0x419cf0
sar eax, 1
sar ecx, 1
sar edx, 1
add ecx, eax
lea eax, [edx + ecx]
add eax, 0xe
test eax, eax
jns 0x419d14
mov eax, 0xffffffff
jmp 0x419d1d
add ecx, edx
lea eax, [ecx*2 + 0x1c]
push eax
call fcn.00408c10
add esp, 4
movzx ecx, word [edi]
mov dword [esp + 4], eax
test cx, cx
je 0x419d51
add edi, 2
mov eax, dword [esp + 4]
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 0x419d40
mov word [eax], 0x2f
add eax, 2
movzx ecx, word [esi]
test cx, cx
je 0x419d81
add esi, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [esi]
add esi, 2
test cx, cx
jne 0x419d70
mov word [eax], 0
movzx ecx, word [esp + 0x4c]
test cx, cx
je 0x419db1
lea edx, [esp + 0x4e]
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 0x419da0
mov word [eax], 0
movzx ecx, word [ebx]
test cx, cx
je 0x419de1
add ebx, 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 [ebx]
add ebx, 2
test cx, cx
jne 0x419dd0
mov word [eax], 0
mov dword [esp + 0x10], 0xebd4d5e8
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp], eax
movzx esi, byte [esp + eax + 0x10]
mov ecx, dword [esp]
and ecx, 0xd
mov edx, dword [esp]
or edx, 0xac80c99d
sub edx, ecx
lea edi, [edx + ecx*2]
lea edx, [esi + esi]
not edx
add edx, esi
mov ecx, edi
not ecx
mov ebx, ecx
and ecx, esi
not esi
or edx, esi
mov eax, edx
or eax, edi
mov esi, edx
and edx, edi
and edi, 0x2dda84cc
and ebx, 0xd2257b33
or ebx, edi
and esi, 0x2dda84ff
xor esi, ebx
xor esi, 0xffffffcc
and esi, eax
mov ebx, ecx
not ebx
mov eax, ebx
and eax, 0x45c6dafd
mov edi, ecx
and edi, 2
or edi, eax
xor edi, ecx
xor edi, 0x45c6dafd
or edi, edx
and ebx, 0xa68d14c8
mov edx, ecx
and edx, 0x37
or edx, ebx
xor edx, 0x5972eb37
or edx, ecx
not edx
or edx, edi
or edx, esi
or edx, ecx
mov dword [esp + 8], edx
mov ecx, dword [esp + 8]
mov eax, 0x14
sub eax, ecx
add ecx, 0xeb
and eax, 0x4b
and ecx, 0xb4
sub ecx, eax
add cl, 0x15
mov eax, dword [esp]
mov byte [esp + eax + 0x10], cl
mov eax, dword [esp]
inc eax
cmp eax, 0x10
jne 0x419e10
push 0
push 0
push 0
push 0xc00000
lea eax, [esp + 0x20]
push eax
mov esi, dword [esp + 0x20]
push esi
push dword [esp + 0x1c]
push dword [ebp + 8]
call fcn.0041d570
add esp, 0x20
mov ebx, eax
jmp dword [0x4494a0]