Function at 0x419150
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x48
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x60]
mov edi, dword [eax + 4]
mov edx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, edx
cmp word [edi + edx + 2], 0
lea edx, [edx + 2]
jne 0x419170
mov ebx, dword [ecx + 4]
mov esi, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, esi
cmp word [ebx + esi + 2], 0
lea esi, [esi + 2]
jne 0x419190
sar edx, 1
sar esi, 1
lea eax, [edx + 0x1b]
mov ecx, esi
and ecx, eax
xor eax, esi
lea eax, [eax + ecx*2]
test eax, eax
mov dword [esp + 8], edx
mov dword [esp + 0x44], esi
mov dword [esp + 4], ebx
jns 0x4191c4
mov eax, 0xffffffff
jmp 0x4191c6
add eax, eax
push eax
call fcn.00408740
add esp, 4
mov dword [esp], eax
mov dword [esp + 0xc], 0x570249ec
mov dword [esp + 0x10], 0x53fd55e7
mov dword [esp + 0x14], 0x5fea51f1
mov dword [esp + 0x18], 0x5b175d3c
mov dword [esp + 0x1c], 0xa71a59e0
mov dword [esp + 0x20], 0xa310a509
mov dword [esp + 0x24], 0xaf07a11f
mov dword [esp + 0x28], 0xab18ad1f
mov dword [esp + 0x2c], 0xb7e9a9c8
mov dword [esp + 0x30], 0xb30eb519
mov dword [esp + 0x34], 0xbf17b10c
mov dword [esp + 0x38], 0xbb11bd0e
mov dword [esp + 0x3c], 0x8722b907
mov dword [esp + 0x40], 0x8584
mov esi, 0x49bf71ee
mov ecx, 0x36408e11
nop
nop
nop
nop
movzx ebx, byte [esp + esi - 0x49bf71e2]
mov edx, ecx
or edx, ebx
mov ebp, ecx
and ebp, 0x3600082f
mov eax, esi
and eax, 0x48a803d0
or eax, ebp
mov ebp, ecx
xor ebp, eax
xor eax, 0x2f
and eax, ecx
xor ebp, 0xd0
sub ebp, eax
add ebp, ecx
and ebp, ebx
xor ebp, edx
mov eax, ebp
not eax
and eax, 0x59
xor ebp, 0xa6
lea eax, [eax*2]
add eax, ebp
inc al
mov byte [esp + esi - 0x49bf71e2], al
inc esi
dec ecx
cmp esi, 0x49bf7226
jne 0x419250
movzx ecx, word [edi]
mov edx, dword [esp]
mov eax, edx
test cx, cx
je 0x4192d1
add edi, 2
mov eax, edx
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edi]
add edi, 2
test cx, cx
jne 0x4192c0
mov word [eax], 0
movzx ecx, word [esp + 0xc]
test cx, cx
mov esi, dword [esp + 4]
je 0x419301
lea edx, [esp + 0xe]
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 0x4192f0
mov word [eax], 0
movzx ecx, word [esi]
test cx, cx
je 0x419331
add esi, 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 [esi]
add esi, 2
test cx, cx
jne 0x419320
mov word [eax], 0
mov eax, dword [esp + 0x60]
mov ebx, dword [eax]
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ebx + eax + 2], 0
lea eax, [eax + 2]
jne 0x419350
mov ecx, dword [esp + 0x60]
mov ebp, dword [ecx + 8]
mov ecx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ebp + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x419370
mov edx, dword [esp + 0x64]
mov edi, dword [edx]
mov edx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edi + edx + 2], 0
lea edx, [edx + 2]
jne 0x419390
sar eax, 1
sar ecx, 1
sar edx, 1
add ecx, eax
lea eax, [edx + ecx]
add eax, 0x13
test eax, eax
jns 0x4193b4
mov eax, 0xffffffff
jmp 0x4193bd
add ecx, edx
lea eax, [ecx*2 + 0x26]
push eax
call fcn.00408740
add esp, 4
mov esi, eax
movzx eax, word [ebx]
mov dword [esp + 4], esi
test ax, ax
je 0x4193f1
add ebx, 2
mov esi, dword [esp + 4]
nop
nop
nop
nop
nop
mov word [esi], ax
add esi, 2
movzx eax, word [ebx]
add ebx, 2
test ax, ax
jne 0x4193e0
mov word [esi], 0x2f
mov dword [esp + 0xc], 0x79317b2d
mov dword [esp + 0x10], 0x65fa67e0
mov dword [esp + 0x14], 0x61f0630f
mov dword [esp + 0x18], 0x6df96ffd
mov dword [esp + 0x1c], 0x69f86bfd
mov dword [esp + 0x20], 0x95c797f5
mov word [esp + 0x24], 0x9394
mov dword [esp + 0x26], 0
mov byte [esp + 0x2a], 0
xor eax, eax
nop
nop
nop
nop
movzx edx, byte [esp + eax + 0xc]
lea ebx, [eax + 0x3fe32c6b]
lea ecx, [eax*2 + 0x7fc658d6]
neg ecx
add ecx, eax
add ecx, 0x6a
xor ecx, ebx
and ecx, edx
xor ecx, ebx
add cl, 0xe9
mov byte [esp + eax + 0xc], cl
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
cmp eax, 0x1f
jb 0x419440
add esi, 2
movzx eax, word [ebp]
test ax, ax
je 0x4194a4
add ebp, 2
mov ebx, dword [esp + 0x64]
nop
nop
nop
nop
nop
nop
nop
mov word [esi], ax
add esi, 2
movzx eax, word [ebp]
add ebp, 2
test ax, ax
jne 0x419490
jmp 0x4194a8
mov ebx, dword [esp + 0x64]
mov word [esi], 0
movzx eax, word [esp + 0xc]
test ax, ax
je 0x4194d3
lea ecx, [esp + 0xe]
mov ebp, dword [esp]
nop
nop
mov word [esi], ax
add esi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4194c0
jmp 0x4194d6
mov ebp, dword [esp]
mov word [esi], 0
movzx eax, word [edi]
test ax, ax
je 0x419501
add edi, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [esi], ax
add esi, 2
movzx eax, word [edi]
add edi, 2
test ax, ax
jne 0x4194f0
mov word [esi], 0
mov dword [esp + 0xc], 0x4342412a
mov dword [esp + 0x10], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0x70
xor cl, byte [esp + eax + 0xc]
add cl, 0xd0
mov byte [esp + eax + 0xc], cl
inc eax
cmp eax, 8
jne 0x419520
lea eax, [esp + 0xc]
push 0
push 0
push 0xc00000
push eax
push ebp
push dword [esp + 0x18]
push dword [esp + 0x74]
call fcn.0041ceb0
add esp, 0x1c
mov byte [esp], al
jmp dword [0x443f88]