Function at 0x10176460
Capabilities:
Encode data using xor

Disassembly:
push 0xffffffffffffffff
push 0x101aa9ab
mov eax, dword fs:[0]
push eax
sub esp, 0x148
mov eax, dword [0x1026d48c]
xor eax, esp
mov dword [esp + 0x144], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x1026d48c]
xor eax, esp
push eax
lea eax, [esp + 0x15c]
mov dword fs:[0], eax
mov eax, dword [esp + 0x174]
mov esi, dword [esp + 0x178]
mov edi, dword [esp + 0x170]
lea ecx, [esp + 0x24]
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], esi
call fcn.1002a630
mov eax, dword [edi + 0x538]
xor ebp, ebp
cmp eax, 0x10
mov dword [esp + 0x164], ebp
jg 0x101768aa
cmp eax, ebp
jl 0x101768aa
cmp dword [edi + 0x534], ebp
jne 0x1017677f
cmp dword [edi + 0x530], ebp
jne 0x1017653f
cmp eax, 0xc
jne 0x1017653f
mov ecx, dword [edi + 0x520]
mov edx, dword [edi + 0x524]
mov eax, dword [edi + 0x528]
mov dword [edi + 0x500], ecx
mov dword [edi + 0x504], edx
mov dword [edi + 0x508], eax
mov byte [edi + 0x50c], 0
mov byte [edi + 0x50d], 0
mov byte [edi + 0x50e], 0
mov byte [edi + 0x50f], 1
jmp 0x10176719
cmp eax, ebp
jbe 0x10176563
mov ecx, 0xfffffb10
lea eax, [edi + 0x4f0]
sub ecx, edi
mov dl, byte [eax + 0x30]
xor byte [eax], dl
add eax, 1
lea edx, [ecx + eax]
cmp edx, dword [edi + 0x538]
jb 0x10176550
mov eax, dword [edi + 0x538]
cmp eax, ebp
je 0x1017659b
push ebp
cdq
push 8
push edx
push eax
call fcn.1018fc20
add dword [edi + 0x540], eax
lea eax, [esp + 0x24]
push eax
adc dword [edi + 0x544], edx
lea esi, [edi + 0x4f0]
mov eax, edi
call fcn.10173900
add esp, 4
xor ebp, ebp
xor eax, eax
mov dword [edi + 0x520], eax
mov dword [edi + 0x524], eax
mov bl, byte [edi + 0x544]
mov byte [esp + 0x1a], bl
mov byte [edi + 0x52b], bl
mov bl, byte [edi + 0x543]
mov byte [esp + 0x19], bl
mov byte [edi + 0x52c], bl
mov bl, byte [edi + 0x542]
mov byte [esp + 0x1b], bl
mov byte [edi + 0x52d], bl
mov bl, byte [edi + 0x541]
mov byte [esp + 0x17], bl
mov byte [edi + 0x52e], bl
mov bl, byte [edi + 0x540]
mov byte [esp + 0x18], bl
mov byte [edi + 0x52f], bl
movzx ebx, byte [edi + 0x520]
xor byte [edi + 0x4f0], bl
movzx ebx, byte [edi + 0x521]
xor byte [edi + 0x4f1], bl
movzx ebx, byte [edi + 0x522]
xor byte [edi + 0x4f2], bl
movzx ebx, byte [edi + 0x523]
xor byte [edi + 0x4f3], bl
movzx ebx, byte [edi + 0x524]
xor byte [edi + 0x4f4], bl
movzx ebx, byte [edi + 0x525]
mov al, byte [edi + 0x547]
mov cl, byte [edi + 0x546]
mov dl, byte [edi + 0x545]
xor byte [edi + 0x4f8], al
xor byte [edi + 0x4f5], bl
xor byte [edi + 0x4f9], cl
xor byte [edi + 0x4fa], dl
movzx ebx, byte [edi + 0x526]
lea esi, [edi + 0x4f0]
xor byte [edi + 0x4f6], bl
movzx ebx, byte [edi + 0x527]
xor byte [edi + 0x4f7], bl
mov byte [edi + 0x528], al
movzx eax, byte [esp + 0x1b]
xor byte [edi + 0x4fd], al
mov byte [edi + 0x529], cl
movzx ecx, byte [esp + 0x1a]
xor byte [edi + 0x4fb], cl
movzx ecx, byte [esp + 0x17]
xor byte [edi + 0x4fe], cl
mov byte [edi + 0x52a], dl
movzx edx, byte [esp + 0x19]
xor byte [edi + 0x4fc], dl
movzx edx, byte [esp + 0x18]
xor byte [edi + 0x4ff], dl
lea eax, [esp + 0x24]
push eax
mov eax, edi
call fcn.10173900
mov ecx, dword [esi]
mov edx, dword [esi + 4]
mov eax, dword [esi + 8]
mov dword [edi + 0x500], ecx
mov ecx, dword [esi + 0xc]
mov dword [edi + 0x504], edx
mov dword [edi + 0x508], eax
xor eax, eax
mov dword [edi + 0x50c], ecx
mov dword [esi], eax
mov dword [esi + 4], eax
mov dword [esi + 8], eax
add esp, 4
mov dword [esi + 0xc], eax
mov esi, dword [esp + 0x1c]
xor ebp, ebp
mov edx, dword [edi + 0x500]
mov eax, dword [edi + 0x504]
mov ecx, dword [edi + 0x508]
mov dword [edi + 0x510], edx
mov edx, dword [edi + 0x50c]
mov dword [edi + 0x514], eax
mov dword [edi + 0x518], ecx
xor eax, eax
mov dword [edi + 0x51c], edx
mov dword [edi + 0x520], eax
mov dword [edi + 0x524], eax
mov dword [edi + 0x528], eax
mov dword [edi + 0x52c], eax
mov dword [edi + 0x538], ebp
mov dword [edi + 0x540], ebp
mov dword [edi + 0x544], ebp
mov dword [edi + 0x534], 1
cmp dword [edi + 0x534], 1
jne 0x101768a3
cmp dword [edi + 0x538], 0x10
jge 0x101768a3
mov esi, dword [esp + 0x20]
add esi, 0x50
mov ecx, esi
call fcn.1008bea0
mov ecx, esi
mov ebx, eax
call fcn.100f6330
cmp dword [edi + 0x538], ebp
mov dword [esp + 0x1c], eax
jne 0x1017681f
mov ecx, eax
and ecx, 0xfffffff0
mov dword [esp + 0x20], ecx
jbe 0x1017681d
lea esi, [edi + 0x4f0]
lea ecx, [ecx]
mov eax, dword [ebx + ebp]
xor dword [esi], eax
mov ecx, dword [ebx + ebp + 4]
xor dword [esi + 4], ecx
mov edx, dword [ebx + ebp + 8]
xor dword [edi + 0x4f8], edx
mov eax, dword [ebx + ebp + 0xc]
xor dword [edi + 0x4fc], eax
lea ecx, [esp + 0x24]
push ecx
mov eax, edi
call fcn.10173900
add esp, 4
add dword [edi + 0x540], 0x80
adc dword [edi + 0x544], 0
add ebp, 0x10
cmp ebp, dword [esp + 0x20]
jb 0x101767d0
mov eax, dword [esp + 0x1c]
add ebx, ebp
cmp ebp, eax
jae 0x1017688b
sub eax, ebp
mov ebp, eax
jmp 0x10176830
mov edx, dword [edi + 0x538]
mov cl, byte [ebx]
xor byte [edi + edx + 0x4f0], cl
add dword [edi + 0x538], 1
lea eax, [edi + edx + 0x4f0]
add ebx, 1
cmp dword [edi + 0x538], 0x10
jne 0x10176886
lea edx, [esp + 0x24]
push edx
lea esi, [edi + 0x4f0]
mov eax, edi
call fcn.10173900
xor eax, eax
add esp, 4
add dword [edi + 0x540], 0x80
mov dword [edi + 0x538], eax
adc dword [edi + 0x544], eax
sub ebp, 1
jne 0x10176830
lea ecx, [esp + 0x24]
mov dword [esp + 0x164], 0xffffffff
call fcn.1002a650
mov al, 1
jmp 0x101768ce
push str.Internal_error_2
jmp 0x101768af
push str.Internal_error.
mov eax, dword [esi]
mov edx, dword [eax + 0x14]
mov ecx, esi
call edx
lea ecx, [esp + 0x24]
mov dword [esp + 0x164], 0xffffffff
call fcn.1002a650
xor al, al
mov ecx, dword [esp + 0x15c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x144]
xor ecx, esp
call fcn.1018f87e
add esp, 0x154
ret 0x10