Function at 0x10077a60
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x30
mov eax, 0xad
push ebx
mov word [esp + 0x16], ax
mov word [esp + 0x1c], ax
mov eax, 0xac
mov edx, 0xb2
mov word [esp + 0x1e], ax
mov word [esp + 0x22], ax
mov eax, 0xb6
mov ecx, 0xa7
mov word [esp + 0x24], ax
mov word [esp + 0x30], ax
mov al, byte [0x10197574]
push esi
test al, 1
push edi
mov word [esp + 0x1c], 0x81
mov word [esp + 0x20], 0xaf
mov word [esp + 0x22], dx
mov word [esp + 0x28], cx
mov word [esp + 0x2e], 0xe2
mov word [esp + 0x30], 0x97
mov word [esp + 0x32], dx
mov word [esp + 0x34], 0xa6
mov word [esp + 0x36], 0xa3
mov word [esp + 0x3a], cx
jne 0x10077b50
mov bl, al
push 0x22
or bl, 1
mov byte [0x10197574], bl
call fcn.1013c2df
add esp, 4
xor ebx, ebx
mov dword [0x10197578], eax
xor esi, esi
mov di, word [esp + esi + 0x1c]
push 0xc2
mov eax, edi
mov ecx, 0x10197578
and eax, 0xffff
push eax
call fcn.100a8ee0
mov ecx, dword [0x10197578]
add eax, 0xc2
xor eax, edi
mov word [esi + ecx], ax
add esi, 2
cmp esi, 0x20
jb 0x10077b02
mov edx, dword [0x10197578]
push 0x10077e90
mov word [edx + 0x20], bx
call fcn.1013c36b
add esp, 4
jmp 0x10077b52
xor ebx, ebx
mov al, byte [esp + 0xf]
mov edi, dword [0x10197578]
push ebx
mov ecx, 0x10191af0
mov byte [0x10191af0], al
call fcn.1000bc70
push edi
call fcn.1013c2c2
add esp, 4
mov esi, eax
mov ecx, 0x10191af0
push 1
push esi
call fcn.1000c010
test al, al
je 0x10077ba9
mov ecx, dword [0x10191af4]
push esi
push edi
push ecx
call fcn.100017d0
mov edx, dword [0x10191af4]
mov dword [0x10191af8], esi
add esp, 0xc
mov word [edx + esi*2], bx
mov al, byte [0x1019757c]
push ebp
mov edi, 0x25
mov ebp, 0x11
test al, 1
mov word [esp + 0x14], 0x65
mov word [esp + 0x16], di
mov word [esp + 0x18], 0x14
mov word [esp + 0x1a], 5
mov word [esp + 0x1c], 0x15
mov word [esp + 0x1e], bp
jne 0x10077c06
or al, 1
mov ecx, 0x10197580
mov byte [0x1019757c], al
lea eax, [esp + 0x14]
push eax
call fcn.10015730
push 0x10077ea0
call fcn.1013c36b
add esp, 4
mov esi, dword [0x10197580]
mov cl, byte [esp + 0x13]
push esi
mov byte [0x10191b00], cl
mov dword [0x10191b04], ebx
mov dword [0x10191b08], ebx
mov dword [0x10191b0c], ebx
call fcn.1013c2c2
add esp, 4
mov ecx, 0x10191b00
push eax
push esi
call fcn.1000bf40
mov al, byte [0x10197584]
mov word [esp + 0x20], 0x72
test al, 1
mov word [esp + 0x22], 0x30
mov word [esp + 0x24], 0x1d
mov word [esp + 0x26], 0x18
mov word [esp + 0x28], 4
mov word [esp + 0x2a], 0x16
mov word [esp + 0x2c], 0x17
mov word [esp + 0x2e], 0x52
mov word [esp + 0x30], 0x75
mov word [esp + 0x32], di
mov word [esp + 0x34], 0x14
mov word [esp + 0x36], 5
mov word [esp + 0x38], 0x15
mov word [esp + 0x3a], bp
jne 0x10077d15
or al, 1
push 0x1e
mov byte [0x10197584], al
call fcn.1013c2df
add esp, 4
mov dword [0x10197588], eax
mov edi, 0x30
xor esi, esi
mov bx, word [esp + esi + 0x20]
push edi
mov edx, ebx
mov ecx, 0x10197588
and edx, 0xffff
push edx
call fcn.1004a650
mov ecx, dword [0x10197588]
xor eax, ebx
xor eax, edi
xor edi, edi
mov word [esi + ecx], ax
mov eax, dword [0x10197588]
mov di, word [esi + eax]
add esi, 2
cmp esi, 0x1c
jb 0x10077cc1
push 0x10077eb0
mov word [eax + 0x1c], 0
call fcn.1013c36b
add esp, 4
xor ebx, ebx
mov edi, 0x25
mov esi, dword [0x10197588]
mov dl, byte [esp + 0x13]
push esi
mov byte [0x10191b10], dl
mov dword [0x10191b14], ebx
mov dword [0x10191b18], ebx
mov dword [0x10191b1c], ebx
call fcn.1013c2c2
add esp, 4
mov ecx, 0x10191b10
push eax
push esi
call fcn.1000bf40
mov al, byte [0x1019758c]
mov word [esp + 0x28], bp
mov word [esp + 0x38], bp
mov word [esp + 0x20], 0x63
test al, 1
mov word [esp + 0x22], 0x2a
mov word [esp + 0x24], 0xa
mov word [esp + 0x26], 7
mov word [esp + 0x2a], 8
mov word [esp + 0x2c], 0x4d
mov word [esp + 0x2e], 0x75
mov word [esp + 0x30], di
mov word [esp + 0x32], 0x14
mov word [esp + 0x34], 5
mov word [esp + 0x36], 0x15
pop ebp
jne 0x10077e16
or al, 1
push 0x1c
mov byte [0x1019758c], al
call fcn.1013c2df
add esp, 4
mov dword [0x10197590], eax
mov edi, 0x30
xor esi, esi
mov bx, word [esp + esi + 0x1c]
push edi
mov eax, ebx
mov ecx, 0x10197590
and eax, 0xffff
push eax
call fcn.1004a650
mov ecx, dword [0x10197590]
xor eax, ebx
xor eax, edi
xor edi, edi
mov word [esi + ecx], ax
mov eax, dword [0x10197590]
mov di, word [esi + eax]
add esi, 2
cmp esi, 0x1a
jb 0x10077dc8
push 0x10077ec0
mov word [eax + 0x1a], 0
call fcn.1013c36b
add esp, 4
xor ebx, ebx
mov edi, dword [0x10197590]
mov dl, byte [esp + 0xf]
push edi
mov byte [0x10191b20], dl
mov dword [0x10191b24], ebx
mov dword [0x10191b28], ebx
mov dword [0x10191b2c], ebx
call fcn.1013c2c2
add esp, 4
mov esi, eax
mov ecx, 0x10191b20
push 1
push esi
call fcn.1000c010
test al, al
je 0x10077e7f
mov eax, dword [0x10191b24]
cmp esi, ebx
mov ecx, edi
jbe 0x10077e70
mov edx, esi
mov di, word [ecx]
add ecx, 2
mov word [eax], di
add eax, 2
dec edx
jne 0x10077e61
mov eax, dword [0x10191b24]
mov dword [0x10191b28], esi
mov word [eax + esi*2], bx
pop edi
pop esi
pop ebx
add esp, 0x30
ret