Function at 0x419f99
Capabilities:
Encode data using xor

Disassembly:
mov al, byte [0x42ba22]
sub esp, 0x74
or al, 0x44
push ebx
mov ebx, ecx
push ebp
push esi
mov esi, edx
cmp dword [ebx + 8], 0
jne 0x41a00b
movzx eax, word [0x42ba2c]
mov ecx, 0xf4de
and ax, cx
mov ecx, 0x60b2
sub ax, cx
mov ecx, 0xfee6
xor ax, cx
cmp byte [0x42d000], 0
jne 0x41a000
imul eax, eax, 0x171
add eax, 0xffff8634
mov word [0x42ba2c], ax
add al, 0x4b
mov byte [0x42ba22], al
call fcn.00422a56
mov al, byte [0x42ba22]
and al, 0x5d
add al, 0x56
jmp 0x41a004
and al, 0x58
sub al, 0x4c
mov dword [ebx + 8], 0x42d000
or al, 0xe2
xor al, 0xe8
mov byte [0x42ba22], al
mov eax, 0xa85f
push esi
mov word [0x42ba2c], ax
call fcn.00405b40
mov ecx, dword [esp + 0x8c]
add ecx, 0x800
add eax, ecx
push eax
call fcn.0040570b
mov ebp, eax
mov edx, 0x34f6
movzx eax, byte [0x42ba2c]
imul eax, eax, 0x88
pop ecx
pop ecx
movzx ecx, al
xor cx, dx
mov word [esp + 0x12], cx
test ebp, ebp
je 0x41a29d
xor ecx, ecx
mov dword [esp + 0x18], 0xf8aea6a6
mov dword [esp + 0x1c], 0xe4c88186
mov edx, ecx
mov dword [esp + 0x20], 0xe5eeffe5
mov dword [esp + 0x24], 0xe2cfa6ff
mov dword [esp + 0x28], 0xf8e4fbf8
mov dword [esp + 0x2c], 0xe4e2ffe2
mov dword [esp + 0x30], 0xedabb1e5
mov dword [esp + 0x34], 0xa6e6f9e4
mov dword [esp + 0x38], 0xeaffeaef
mov dword [esp + 0x3c], 0xeae5abb0
mov dword [esp + 0x40], 0xa9b6eee6
mov dword [esp + 0x44], 0x86a9f8ae
mov word [esp + 0x48], 0x8681
mov byte [esp + 0x4a], 0x81
mov al, byte [esp + edx + 0x18]
xor al, 0x8b
mov byte [esp + edx + 0x4c], al
inc edx
cmp edx, 0x33
jl 0x41a0d3
mov byte [esp + 0x7f], cl
mov edx, ecx
mov word [esp + 0xc], 0x797c
mov al, byte [esp + edx + 0xc]
sub al, 0x6f
mov byte [esp + edx + 0x14], al
inc edx
cmp edx, 2
jl 0x41a0f0
mov ax, word [esp + 0x12]
mov edx, 0x534fbfb6
or al, 0x93
mov byte [esp + 0x16], cl
xor al, 0x8b
mov ecx, 0x2ff5
push edi
mov byte [0x42ba22], al
movzx eax, al
sub ax, cx
xor ecx, ecx
push esi
push dword [ebx + 8]
mov word [0x42ba2c], ax
lea eax, [esp + 0x58]
push eax
push 0x2000
push ebp
call fcn.00415084
call eax
push dword [esp + 0xa0]
mov edi, eax
mov ecx, 0x441a
movzx eax, byte [0x42ba22]
push dword [esp + 0xa0]
sub ax, cx
lea esi, [edi + ebp]
mov word [0x42ba2c], ax
push esi
call fcn.00401d70
movzx eax, byte [0x42ba22]
mov ecx, 0x9514
or ax, cx
mov word [0x42ba2c], ax
lea eax, [esp + 0x38]
push 2
push eax
mov eax, dword [esp + 0xb4]
add eax, esi
push eax
call fcn.00401d70
mov esi, dword [esp + 0xb8]
add esp, 0x2c
mov al, byte [0x42ba22]
add esi, 2
add esi, edi
and al, 0x89
cmp dword [ebx], 0
mov byte [0x42ba22], al
pop edi
jne 0x41a1d4
movzx eax, al
mov ecx, 0xb415
xor ax, cx
push esi
mov word [0x42ba2c], ax
call fcn.0040570b
jmp 0x41a1ff
mov al, byte [0x42ba2c]
mov ecx, 0x5ea9
xor al, 0xba
mov byte [0x42ba22], al
movzx eax, al
add ax, cx
mov word [0x42ba2c], ax
mov eax, dword [ebx + 4]
add eax, esi
push eax
push dword [ebx]
call fcn.00405c8c
pop ecx
mov edx, eax
mov dword [ebx], edx
mov al, byte [0x42ba22]
xor al, 0xe2
pop ecx
mov ecx, 0x9d53
movzx eax, al
and ax, cx
movzx ecx, ax
test edx, edx
je 0x41a26e
or al, 0xb7
movzx ecx, al
mov byte [0x42ba22], al
mov eax, 0x15ca
imul ecx, eax
mov eax, 0x7e4a
push esi
push ebp
xor cx, ax
mov eax, dword [ebx + 4]
add eax, edx
mov word [0x42ba2c], cx
push eax
call fcn.00401d70
mov ax, word [0x42ba2c]
mov ecx, 0x5b73
add dword [ebx + 4], esi
and ax, cx
mov ecx, 0x9c8
add esp, 0xc
sub ax, cx
mov bl, 1
movzx ecx, ax
jmp 0x41a270
xor ebx, ebx
and cl, 0xa3
mov edx, 0x6b05
movzx eax, cl
add ax, dx
mov word [0x42ba2c], ax
movzx eax, cl
imul eax, eax, 0x46
push ebp
mov byte [0x42ba22], al
call fcn.004056f0
mov al, byte [0x42ba22]
pop ecx
jmp 0x41a29f
xor ebx, ebx
movzx edx, al
mov ecx, 0xeb5a
imul edx, ecx
or al, 0xbb
pop esi
mov byte [0x42ba22], al
mov al, bl
pop ebp
pop ebx
mov word [0x42ba2c], dx
add esp, 0x74
ret