Function at 0x419fe0
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x8c
push ebx
push ebp
push esi
push edi
mov ecx, 0x17
xor eax, eax
lea edi, [esp + 0x3d]
mov byte [esp + 0x3c], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, dword [esp + 0xa4]
xor esi, esi
test al, 7
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], esi
je 0x41a022
int3
mov ebx, dword [esp + 0xb0]
test bl, 1
jne 0x41a22a
mov eax, dword [esp + 0xa8]
mov edi, 4
mov ecx, dword [eax]
mov edx, dword [eax + 4]
xor eax, eax
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], edx
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], eax
mov dl, byte [esp + esi + 0x30]
mov al, 1
mov ecx, esi
shl al, cl
test dl, dl
jns 0x41a067
or byte [esp + 0x10], al
test dl, 0x40
je 0x41a070
or byte [esp + 0x11], al
test dl, 0x20
je 0x41a079
or byte [esp + 0x12], al
test dl, 0x10
je 0x41a08d
mov bl, byte [esp + 0x17]
mov cl, al
shl cl, 4
or bl, cl
mov byte [esp + 0x17], bl
test dl, 8
je 0x41a096
or byte [esp + 0x16], al
test dl, 4
je 0x41a09f
or byte [esp + 0x15], al
test dl, 2
je 0x41a0a8
or byte [esp + 0x14], al
inc esi
dec edi
jne 0x41a055
mov esi, 4
mov edi, esi
mov dl, byte [esp + esi + 0x30]
mov al, 1
mov ecx, esi
shl al, cl
test dl, dl
jns 0x41a0c5
or byte [esp + 0x10], al
test dl, 0x40
je 0x41a0ce
or byte [esp + 0x11], al
test dl, 0x20
je 0x41a0d7
or byte [esp + 0x12], al
test dl, 0x10
je 0x41a0e0
or byte [esp + 0x13], al
test dl, 8
je 0x41a0e9
or byte [esp + 0x16], al
test dl, 4
je 0x41a0f2
or byte [esp + 0x15], al
test dl, 2
je 0x41a0fb
or byte [esp + 0x14], al
inc esi
dec edi
jne 0x41a0b3
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x3c]
mov dword [esp + 0x18], edx
mov dword [esp + 0x2c], eax
mov ebp, 0x431878
mov dword [esp + 0x38], ecx
mov dword [esp + 0x30], 0x10
mov bl, dl
mov dl, byte [ebp]
mov al, byte [esp + 0x1b]
mov cl, byte [esp + 0x1a]
mov byte [esp + 0x10], dl
mov dl, byte [esp + 0x19]
mov byte [esp + 0x24], al
mov byte [esp + 0x26], dl
mov edx, dword [esp + 0x10]
and edx, 0xff
mov byte [esp + 0x25], cl
mov byte [esp + 0x27], bl
mov esi, dword [esp + 0x24]
mov eax, dword [edx*4 + 0x4315f0]
mov edi, 0x1c
and esi, 0xfffffff0
sub edi, edx
mov ebx, eax
mov ecx, edi
and ebx, esi
shr ebx, cl
mov ecx, edx
shl esi, cl
or ebx, esi
mov dword [esp + 0x24], ebx
mov cl, byte [esp + 0x26]
mov byte [esp + 0x19], cl
mov cl, byte [esp + 0x25]
mov byte [esp + 0x1a], cl
mov cl, byte [esp + 0x24]
mov byte [esp + 0x1b], cl
mov cl, byte [esp + 0x2f]
mov byte [esp + 0x28], cl
mov cl, byte [esp + 0x2e]
mov byte [esp + 0x29], cl
mov cl, byte [esp + 0x2d]
mov byte [esp + 0x2a], cl
mov cl, byte [esp + 0x2c]
mov byte [esp + 0x2b], cl
mov esi, dword [esp + 0x28]
and esi, 0xfffffff0
mov ecx, edi
and eax, esi
mov bl, byte [esp + 0x27]
shr eax, cl
mov ecx, edx
mov byte [esp + 0x18], bl
shl esi, cl
or eax, esi
mov esi, dword [esp + 0x38]
mov dword [esp + 0x28], eax
mov al, byte [esp + 0x2a]
mov cl, byte [esp + 0x29]
mov dl, byte [esp + 0x2b]
mov byte [esp + 0x2d], al
mov byte [esp + 0x2e], cl
lea eax, [esp + 0x2c]
lea ecx, [esp + 0x18]
mov byte [esp + 0x2c], dl
mov dl, byte [esp + 0x28]
push eax
push ecx
push esi
mov byte [esp + 0x3b], dl
call fcn.00419850
inc ebp
add esi, 6
mov eax, dword [esp + 0x30]
mov dword [esp + 0x38], esi
dec eax
mov dword [esp + 0x30], eax
jne 0x41a126
mov eax, dword [esp + 0xa4]
mov ebx, dword [esp + 0xb0]
mov ecx, dword [esp + 0xac]
test ecx, ecx
je 0x41a242
mov edx, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], ecx
mov ecx, ebx
and ecx, 0xe
cmp ecx, 0xa
ja case.0x41a250.1
jmp dword [ecx*4 + 0x41a48c]
mov esi, dword [esp + 0xa0]
shr eax, 3
lea edi, [esi + eax*8]
cmp esi, edi
je case.0x41a250.1
lea edx, [esp + 0x3c]
push ebx
push edx
push esi
call fcn.0041a4c0
add esi, 8
cmp esi, edi
jne 0x41a26c
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x8c
ret 0x14
mov esi, dword [esp + 0xa0]
shr eax, 3
lea eax, [esi + eax*8]
cmp esi, eax
mov dword [esp + 0x18], eax
je case.0x41a250.1
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov edi, dword [esp + 0x1c]
mov ebp, dword [esp + 0x20]
lea edx, [esp + 0x3c]
push ebx
push edx
push esi
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], ecx
call fcn.0041a4c0
mov eax, dword [esi]
mov edx, dword [esi + 4]
xor eax, edi
xor edx, ebp
mov dword [esi], eax
mov eax, dword [esp + 0x18]
mov dword [esi + 4], edx
add esi, 8
cmp esi, eax
jne 0x41a2a5
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x8c
ret 0x14
mov esi, dword [esp + 0xa0]
shr eax, 3
lea eax, [esi + eax*8]
cmp esi, eax
mov dword [esp + 0x18], eax
je case.0x41a250.1
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov ebp, dword [esi]
mov edi, dword [esi + 4]
lea edx, [esp + 0x3c]
push ebx
push edx
push esi
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], ecx
call fcn.0041a4c0
mov ecx, dword [esi]
mov edx, dword [esi + 4]
mov eax, dword [esp + 0x10]
add esi, 8
xor ecx, eax
mov dword [esi - 8], ecx
mov ecx, dword [esp + 0x14]
xor edx, ecx
mov dword [esi - 4], edx
mov eax, dword [esi - 4]
mov edx, dword [esi - 8]
xor edi, eax
mov eax, dword [esp + 0x18]
xor ebp, edx
cmp esi, eax
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], edi
jne 0x41a305
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x8c
ret 0x14
mov esi, dword [esp + 0xa0]
shr eax, 3
lea edi, [esi + eax*8]
cmp esi, edi
je case.0x41a250.1
mov edx, dword [esp + 0x20]
mov eax, dword [esi]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x14], edx
mov dword [esp + 0x1c], eax
lea edx, [esp + 0x3c]
mov dword [esp + 0x10], ecx
mov ecx, dword [esi + 4]
push ebx
lea eax, [esp + 0x14]
push edx
push eax
mov dword [esp + 0x2c], ecx
call fcn.00419ad0
mov eax, dword [esi]
mov ebp, dword [esi + 4]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
xor eax, ecx
xor ebp, edx
mov dword [esi], eax
mov dword [esi + 4], ebp
add esi, 8
cmp esi, edi
jne 0x41a37c
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x8c
ret 0x14
mov esi, dword [esp + 0xa0]
shr eax, 3
lea edi, [esi + eax*8]
cmp esi, edi
je case.0x41a250.1
lea eax, [esp + 0x3c]
push ebx
lea ecx, [esp + 0x20]
push eax
push ecx
call fcn.00419ad0
mov ebp, dword [esi]
add esi, 8
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
xor ebp, edx
mov edx, dword [esi - 4]
xor edx, eax
mov dword [esi - 8], ebp
mov dword [esi - 4], edx
cmp esi, edi
jne 0x41a3e8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x8c
ret 0x14
mov esi, dword [esp + 0xa0]
shr eax, 3
lea eax, [esi + eax*8]
cmp esi, eax
mov dword [esp + 0x18], eax
je case.0x41a250.1
mov edi, dword [esp + 0x1c]
mov ebp, dword [esp + 0x20]
lea ecx, [esp + 0x3c]
push ebx
lea edx, [esp + 0x20]
push ecx
push edx
call fcn.00419ad0
mov ecx, dword [esi]
mov edx, dword [esi + 4]
mov eax, dword [esp + 0x1c]
xor ecx, eax
mov eax, dword [esp + 0x18]
mov dword [esi], ecx
mov ecx, dword [esp + 0x20]
xor edx, ecx
add edi, 1
mov dword [esi + 4], edx
mov dword [esp + 0x1c], edi
adc ebp, 0
add esi, 8
cmp esi, eax
mov dword [esp + 0x20], ebp
jne 0x41a438
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x8c
ret 0x14