Function at 0x1017a3d0
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0xd4
call fcn.101b79b0
mov eax, dword [0x1027e110]
xor eax, esp
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0xd8]
mov ecx, dword [esp + 0xf0]
mov edx, dword [esp + 0xf4]
push ebp
push esi
mov esi, dword [esp + 0xe8]
xor ebp, ebp
push edi
mov edi, dword [esp + 0xf4]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0xf0]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x104]
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x108]
shr esi, 3
cmp esi, 0x14
mov dword [esp + 0x14], eax
mov dword [esp + 0x3c], edi
mov dword [esp + 0x50], ecx
mov dword [esp + 0x10], edx
mov dword [esp + 0x34], ebp
mov dword [esp + 0x38], ebp
mov dword [esp + 0x30], 2
je 0x1017a467
cmp esi, 0x1c
je 0x1017a467
cmp esi, 0x20
jne 0x1017a4e8
cmp eax, ebp
jne 0x1017a496
cmp esi, 0x14
jne 0x1017a47b
call fcn.100dfd10
mov dword [esp + 0x14], eax
jmp 0x1017a4a1
cmp esi, 0x1c
jne 0x1017a48b
call fcn.100dfe00
mov dword [esp + 0x14], eax
jmp 0x1017a4a1
call fcn.100dfe10
mov dword [esp + 0x14], eax
jmp 0x1017a4a1
push eax
call fcn.100e91a0
add esp, 4
mov esi, eax
mov eax, dword [esp + 0xe8]
cmp eax, 0x200
jae 0x1017a4b4
mov eax, 0x200
add eax, 0x3f
shr eax, 6
shl eax, 6
cmp edi, ebp
mov dword [esp + 0xe8], eax
je 0x1017a518
mov eax, dword [esp + 0xf8]
cmp eax, esi
jae 0x1017a502
push 0x55
push 0x1024ede8
push 0x6e
push 0x7d
push 0xa
call fcn.100dc5a0
add esp, 0x14
pop edi
pop esi
xor eax, eax
pop ebp
mov ecx, dword [esp + 0xd0]
xor ecx, esp
call fcn.101b40e2
add esp, 0xd4
ret
jbe 0x1017a506
mov eax, esi
push eax
lea eax, [esp + 0xa0]
push edi
push eax
call fcn.101b4f90
add esp, 0xc
call fcn.1010f340
cmp eax, ebp
mov dword [esp + 0x20], eax
je 0x1017aafe
call fcn.10121c20
mov ebp, eax
test ebp, ebp
je 0x1017aafe
push ebp
call fcn.10121cd0
push ebp
call fcn.10121d70
push ebp
mov dword [esp + 0x18], eax
call fcn.10121d70
push ebp
mov dword [esp + 0x2c], eax
call fcn.10121d70
push ebp
mov dword [esp + 0x40], eax
call fcn.10121d70
push ebp
mov dword [esp + 0x30], eax
call fcn.10121d70
push ebp
mov dword [esp + 0x70], eax
call fcn.10121d70
push ebp
mov dword [esp + 0x60], eax
call fcn.10121d70
push ebp
mov dword [esp + 0x70], eax
call fcn.10121d70
add esp, 0x24
test eax, eax
mov dword [esp + 0x28], eax
je 0x1017aafe
mov eax, dword [esp + 0xe8]
add eax, 0xffffffff
push eax
call fcn.100d3dd0
mov ecx, dword [esp + 0x2c]
push eax
push ecx
call fcn.10127850
add esp, 0xc
test eax, eax
je 0x1017aafe
push ebx
mov ebx, dword [esp + 0x3c]
mov eax, dword [esp + 0x14]
xor edx, edx
cmp dword [esp + 0x40], edx
push ebx
sete dl
push 0
push eax
mov edi, edx
call fcn.1014d9c0
add ebx, 1
add esp, 0xc
test eax, eax
mov dword [esp + 0x3c], ebx
je 0x1017aafd
test edi, edi
je 0x1017a60d
lea ecx, [esp + 0xa0]
push esi
push ecx
call fcn.100da080
add esp, 8
test eax, eax
jle 0x1017aafd
jmp 0x1017a615
mov dword [esp + 0x40], 0
push esi
lea edx, [esp + 0xa4]
push edx
lea eax, [esp + 0x88]
push eax
call fcn.101b4f90
push esi
lea ecx, [esp + 0xb0]
push ecx
lea edx, [esp + 0xd4]
push edx
call fcn.101b4f90
lea eax, [esi - 1]
add esp, 0x18
test eax, eax
jl 0x1017a65f
jmp 0x1017a650
add byte [esp + eax + 0x80], 1
jne 0x1017a65f
sub eax, 1
jns 0x1017a650
mov eax, dword [esp + 0x18]
push 0
push eax
push 0
lea ecx, [esp + 0x6c]
push ecx
lea edx, [esp + 0xb0]
push esi
push edx
call fcn.100e3730
add esp, 0x18
test eax, eax
je 0x1017aafd
mov eax, dword [esp + 0x18]
push 0
push eax
push 0
lea ecx, [esp + 0xcc]
push ecx
lea edx, [esp + 0x90]
push esi
push edx
call fcn.100e3730
add esp, 0x18
test eax, eax
je 0x1017aafd
xor eax, eax
test esi, esi
jle 0x1017a6d2
jmp 0x1017a6c0
mov cl, byte [esp + eax + 0xc0]
xor byte [esp + eax + 0x60], cl
add eax, 1
cmp eax, esi
jl 0x1017a6c0
mov edx, dword [esp + 0x1c]
or byte [esp + 0x60], 0x80
or byte [esp + esi + 0x5f], 1
push edx
lea eax, [esp + 0x64]
push esi
push eax
call fcn.100d4bc0
add esp, 0xc
test eax, eax
je 0x1017aafd
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
push ebx
push edi
push ebp
push 0x40
push ecx
call fcn.1014de60
add esp, 0x14
test eax, eax
jg 0x1017a71c
je 0x1017a5c0
jmp 0x1017aafd
push 0
push 2
push ebx
call fcn.1014d9c0
add esp, 0xc
test eax, eax
je 0x1017aafd
push 0
mov edx, ebx
push 3
push edx
call fcn.1014d9c0
add esp, 0xc
test eax, eax
je 0x1017aafd
mov eax, dword [esp + 0xec]
lea ecx, [eax - 1]
mov eax, 0xcccccccd
mul ecx
mov ebx, edx
mov dword [esp + 0x28], 0
shr ebx, 7
mov eax, dword [esp + 0x28]
test eax, eax
je 0x1017a786
mov edx, dword [esp + 0x14]
push eax
push 0
push edx
call fcn.1014d9c0
add esp, 0xc
test eax, eax
je 0x1017aafd
mov eax, dword [esp + 0x30]
push 0
push eax
call fcn.100d4b80
add esp, 8
xor edi, edi
test ebx, ebx
jl 0x1017a848
nop
lea eax, [esi - 1]
test eax, eax
jl 0x1017a7bf
jmp 0x1017a7b0
add byte [esp + eax + 0x80], 1
jne 0x1017a7bf
sub eax, 1
jns 0x1017a7b0
mov ecx, dword [esp + 0x18]
push 0
push ecx
push 0
lea edx, [esp + 0x6c]
push edx
lea eax, [esp + 0x90]
push esi
push eax
call fcn.100e3730
add esp, 0x18
test eax, eax
je 0x1017aafd
mov ecx, dword [esp + 0x10]
push ecx
lea edx, [esp + 0x64]
push esi
push edx
call fcn.100d4bc0
add esp, 0xc
test eax, eax
je 0x1017aafd
lea eax, [esi*8]
imul eax, edi
push eax
mov eax, dword [esp + 0x14]
push eax
push eax
call fcn.10127850
add esp, 0xc
test eax, eax
je 0x1017aafd
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x30]
push ecx
push eax
push eax
call fcn.10123990
add esp, 0xc
test eax, eax
je 0x1017aafd
add edi, 1
cmp edi, ebx
jle 0x1017a7a0
mov eax, dword [esp + 0xec]
mov edi, dword [esp + 0x30]
add eax, 0xffffffff
push eax
push edi
call fcn.100d4a00
add esp, 8
test eax, eax
je 0x1017aafd
push edi
mov edi, dword [esp + 0x5c]
push edi
call fcn.100d4af0
add esp, 8
test eax, eax
je 0x1017aafd
mov edx, dword [esp + 0x2c]
push edx
push edi
push edi
call fcn.10123990
add esp, 0xc
test eax, eax
je 0x1017aafd
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
push eax
push ecx
call fcn.101274a0
add esp, 8
test eax, eax
je 0x1017aafd
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x44]
push ebp
push edx
push edi
push eax
push 0
call fcn.10146240
add esp, 0x14
test eax, eax
je 0x1017aafd
call fcn.100d3dd0
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x10]
push eax
push ecx
push edx
call fcn.10123a20
add esp, 0xc
test eax, eax
je 0x1017aafd
mov eax, dword [esp + 0x10]
push eax
push edi
mov edi, dword [esp + 0x58]
push edi
call fcn.10123a20
add esp, 0xc
test eax, eax
je 0x1017aafd
mov ecx, dword [esp + 0x2c]
push ecx
push edi
call fcn.100d4040
add esp, 8
test eax, eax
jl 0x1017a937
mov edx, dword [esp + 0x14]
push edx
push 1
push ebp
push 0x40
push edi
call fcn.1014de60
add esp, 0x14
test eax, eax
jg 0x1017a952
jne 0x1017aafd
mov eax, dword [esp + 0x28]
add eax, 1
cmp eax, 0x1000
mov dword [esp + 0x28], eax
jl 0x1017a766
jmp 0x1017a5c0
mov eax, dword [esp + 0x14]
push 1
push 2
push eax
call fcn.1014d9c0
add esp, 0xc
test eax, eax
je 0x1017aafd
call fcn.100d3dd0
mov ebx, dword [esp + 0x2c]
push eax
push edi
push ebx
call fcn.10123a20
add esp, 0xc
test eax, eax
je 0x1017aafd
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
push ebp
push ecx
push ebx
push 0
push edx
call fcn.10146240
add esp, 0x14
test eax, eax
je 0x1017aafd
push 2
push ebx
call fcn.100d4b80
add esp, 8
test eax, eax
je 0x1017aafd
mov eax, dword [esp + 0x24]
push ebp
push edi
push eax
call fcn.1010ef90
add esp, 0xc
test eax, eax
je 0x1017aafd
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
push ecx
push ebp
push edi
push edx
push ebx
push eax
call fcn.10147260
add esp, 0x18
test eax, eax
je 0x1017aafd
mov ecx, dword [esp + 0x20]
push ecx
call fcn.100d4380
add esp, 4
test eax, eax
je 0x1017aa42
call fcn.100d3dd0
push eax
push ebx
push ebx
call fcn.10123990
add esp, 0xc
test eax, eax
je 0x1017aafd
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x20]
add dword [esp + 0x34], 1
push edx
push ebp
push edi
push eax
push ebx
push ecx
call fcn.10147260
add esp, 0x18
test eax, eax
jne 0x1017a9f1
jmp 0x1017aafd
mov edx, dword [esp + 0x14]
push 1
push 3
push edx
call fcn.1014d9c0
add esp, 0xc
test eax, eax
je 0x1017aafd
mov ebx, dword [esp + 0x5c]
mov eax, dword [ebx + 8]
push eax
mov dword [esp + 0x3c], 1
jmp 0x1017aa70
call fcn.100d4660
mov ecx, dword [ebx + 0xc]
push ecx
call fcn.100d4660
mov edx, dword [ebx + 0x10]
push edx
call fcn.100d4660
push edi
call fcn.100d4db0
mov dword [ebx + 8], eax
mov eax, dword [esp + 0x2c]
push eax
call fcn.100d4db0
mov ecx, dword [esp + 0x34]
push ecx
mov dword [ebx + 0xc], eax
call fcn.100d4db0
add esp, 0x18
cmp dword [ebx + 8], 0
mov dword [ebx + 0x10], eax
je 0x1017aabd
cmp dword [ebx + 0xc], 0
je 0x1017aabd
test eax, eax
jne 0x1017aac7
mov dword [esp + 0x38], 0
jmp 0x1017aafd
mov eax, dword [esp + 0x48]
test eax, eax
je 0x1017aad5
mov edx, dword [esp + 0x28]
mov dword [eax], edx
mov eax, dword [esp + 0x54]
test eax, eax
je 0x1017aae3
mov ecx, dword [esp + 0x34]
mov dword [eax], ecx
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x1017aafd
push esi
lea edx, [esp + 0xa4]
push edx
push eax
call fcn.101b4f90
add esp, 0xc
pop ebx
push ebp
call fcn.10121d20
push ebp
call fcn.10121c90
mov eax, dword [esp + 0x28]
push eax
call fcn.1010ef40
mov ecx, dword [esp + 0xe8]
mov eax, dword [esp + 0x40]
add esp, 0xc
pop edi
pop esi
pop ebp
xor ecx, esp
call fcn.101b40e2
add esp, 0xd4
ret