Function at 0x78db60
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x108
mov eax, dword [rcx + 0x10ee0]
mov qword [rsp + 0x158], rdx
mov r15, rcx
mov qword [rsp + 0x160], r8
mov qword [rsp + 0x168], r9
cmp dword [rcx + 0x10edc], eax
je 0x78dbe4
mov edx, eax
mov rdi, qword [rsp + 0x160]
lea rcx, [rdx + rdx*4]
lea rdx, [rdx + rcx*2]
lea rcx, [r15 + rdx*4]
mov edx, dword [rcx + 0x10ef8]
mov r8d, edx
sub r8d, eax
mov eax, dword [rcx + 0x10efc]
mov dword [r15 + 0x10ee0], edx
mov dword [r9], r8d
mov dword [rdi], eax
add rsp, 0x108
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rax, qword [rsp + 0x158]
mov eax, dword [rax + 0x60]
mov dword [rsp + 0x38], eax
mov rax, qword [rsp + 0x158]
mov r14d, dword [rax + 0x1c]
test r14d, r14d
je 0x78e394
mov eax, dword [rcx + 0xb84]
mov ebp, dword [rcx + 0xb88]
mov dword [rsp + 0xec], eax
mov rsi, qword [rsp + 0x158]
mov rax, qword [rsp + 0x158]
mov edi, dword [rsi + 0x24]
mov eax, dword [rax + 0x18]
lea r9d, [rdi + 1]
mov dword [rsp + 0x30], edi
sub r9d, eax
cmp r9d, 0x110
ja 0x78f478
cmp r9d, 1
jbe 0x78f91e
mov r11d, eax
mov rax, qword [rsp + 0x158]
xor r8d, r8d
xor edi, edi
lea rcx, [rsp + 0xf0]
xor r12d, r12d
add r11, qword [rax]
mov qword [rsp + 0x80], rcx
movzx ebx, word [r11 - 1]
lea r10, [r11 - 1]
mov r13d, dword [r15 + r8*4 + 0x2e4]
mov edx, r8d
not r13
add r13, r10
cmp bx, word [r13]
je 0x78f1b3
mov dword [rcx + r8*4], 0
add r8, 1
cmp r8, 4
jne 0x78dc82
mov esi, dword [rsp + rdi*4 + 0xf0]
cmp esi, dword [rsp + 0x38]
jae 0x78f9eb
cmp ebp, dword [rsp + 0x38]
jae 0x78fa26
mov eax, dword [r15 + 0x2e4]
movzx r13d, byte [r11 - 1]
cmp ebp, 1
setbe dl
mov dword [rsp + 0x30], eax
not rax
movzx r10d, byte [r11 + rax - 1]
cmp r13b, r10b
setne al
test dl, al
je 0x78dcfd
cmp esi, 1
jbe 0x78f91e
mov r12d, dword [r15 + 0x2e0]
movzx eax, r13b
mov rcx, r15
mov byte [rsp + 0x3c], r10b
mov edi, dword [rsp + 0x170]
and edi, dword [r15 + 0xb90]
mov rdx, r12
mov dword [r15 + 0x10ee4], r12d
movzx r8d, byte [r11 - 2]
shl rdx, 4
lea rbx, [rdx + rdi]
mov edx, dword [rsp + 0x170]
mov qword [rsp + 0x48], rbx
movzx ebx, word [r15 + rbx*2 + 0x6b9c]
mov dword [rsp + 0x28], eax
movzx eax, r10b
mov word [rsp + 0x38], bx
shr bx, 4
cmp r12d, 6
mov dword [rsp + 0x20], eax
seta r9b
movzx r9d, r9b
call fcn.0078da70
mov r14, qword [0x024a5a80]
mov rdx, rbx
xor ebx, 0x7f
and edx, 0xfff
and ebx, 0xfff
mov dword [r15 + 0x10f28], 0xffffffff
movzx r10d, byte [rsp + 0x3c]
movzx ecx, byte [r14 + rdx]
movzx edx, byte [r14 + rbx]
lea rbx, [r15 + r12*2]
mov byte [r15 + 0x10f14], 0
add ecx, eax
mov dword [rsp + 0x58], edx
mov dword [r15 + 0x10f20], ecx
movzx eax, word [rbx + 0x6d1c]
shr ax, 4
mov word [rsp + 0x40], ax
xor eax, 0x7f
and eax, 0xfff
movzx eax, byte [r14 + rax]
add eax, edx
mov dword [rsp + 0x38], eax
cmp r13b, r10b
je 0x78f8b4
cmp esi, ebp
cmovb esi, ebp
mov dword [rsp + 0x3c], esi
cmp esi, 1
jbe 0x78fa8d
mov dword [r15 + 0x10f24], 0
mov eax, dword [rsp + 0x30]
mov dword [r15 + 0x10f00], eax
mov eax, dword [r15 + 0x2e8]
mov dword [r15 + 0x10f04], eax
mov rax, qword [r15 + 0x2ec]
mov qword [r15 + 0x10f08], rax
mov eax, dword [rsp + 0x3c]
mov rsi, rax
lea rdx, [rax + rax*4]
lea ecx, [rsi - 2]
lea rdx, [rax + rdx*2]
lea r8, [rcx + rcx*4]
shl rdx, 2
lea rcx, [rcx + r8*2]
lea rax, [r15 + rdx]
shl rcx, 2
lea rdx, [r15 + rdx - 0x2c]
sub rdx, rcx
nop dword [rax + rax]
mov dword [rax + 0x10ef4], 0x40000000
sub rax, 0x2c
cmp rdx, rax
jne 0x78de60
mov r9, rdi
shl r12, 4
xor r10d, r10d
shl r9, 4
lea rsi, [rdi + r12 + 0x36b8]
mov r12, qword [rsp + 0x80]
add r9, rdi
shl r9, 4
mov eax, dword [r12 + r10*4]
mov r11d, r10d
cmp eax, 1
jbe 0x78df49
movzx edx, word [rbx + 0x6d34]
shr dx, 4
test r10, r10
jne 0x78f48b
movzx ecx, word [r15 + rsi*2 + 0xc]
and edx, 0xfff
movzx r8d, byte [r14 + rdx]
shr cx, 4
xor ecx, 0x7f
and ecx, 0xfff
movzx ecx, byte [r14 + rcx]
add ecx, r8d
mov edx, dword [rsp + 0x38]
lea r8d, [rdx + rcx]
lea rcx, [rax + rax*4]
lea edx, [rax - 2]
lea rax, [rax + rcx*2]
lea rax, [r15 + rax*4]
nop dword [rax]
mov ecx, edx
lea rcx, [rcx + r9 + 0x100]
mov r13d, dword [r15 + rcx*4 + 0xba4c]
add r13d, r8d
cmp r13d, dword [rax + 0x10ef4]
jae 0x78df3d
mov dword [rax + 0x10ef4], r13d
mov dword [rax + 0x10ef8], 0
mov dword [rax + 0x10efc], r11d
mov byte [rax + 0x10ee8], 0
sub edx, 1
sub rax, 0x2c
cmp edx, 0xffffffff
jne 0x78df00
add r10, 1
cmp r10, 4
jne 0x78de98
mov r12d, dword [rsp + 0xf0]
mov edx, 1
test r12d, r12d
cmovne edx, dword [rsp + 0xf0]
add edx, 1
cmp ebp, edx
jae 0x78f51c
cmp dword [rsp + 0x3c], 0xffffffff
je 0x78dbd0
lea rax, [r15 + 0xb84]
mov r11d, 1
mov r13, r14
movdqu xmm0, xmmword [r15 + 0x2e4]
mov qword [rsp + 0xa8], rax
lea rax, [r15 + 0x2f4]
mov r14d, r11d
mov qword [rsp + 0xb0], rax
movaps xmmword [rsp + 0xf0], xmm0
mov r8, qword [rsp + 0xb0]
mov rdx, qword [rsp + 0xa8]
mov rcx, qword [rsp + 0x158]
call fcn.00791b30
mov rsi, qword [rsp + 0x158]
mov dword [rsp + 0x88], eax
mov edi, dword [rsi + 0x60]
mov dword [r15 + 0xb88], eax
mov dword [rsp + 0x40], edi
cmp eax, edi
jae 0x78f31c
mov eax, dword [rsi + 0x18]
mov edx, 0xfff
mov ecx, r14d
sub edx, r14d
mov dword [rsp + 0x38], eax
mov eax, dword [rsi + 0x24]
mov dword [rsp + 0x30], eax
add eax, 1
sub eax, dword [rsp + 0x38]
cmp eax, edx
cmovbe edx, eax
mov eax, dword [rsp + 0x170]
add eax, r14d
mov dword [rsp + 0x58], edx
mov rdx, qword [rsi]
mov dword [rsp + 0x60], eax
mov eax, dword [rsp + 0x38]
lea r11, [rdx + rax - 1]
mov eax, dword [r15 + 0xb84]
mov dword [rsp + 0x48], eax
lea rax, [rcx + rcx*4]
lea rax, [rcx + rax*2]
lea r8, [r15 + rax*4]
cmp byte [r8 + 0x10ee8], 0
mov r9d, dword [r8 + 0x10ef8]
je 0x78ef50
cmp byte [r8 + 0x10ee9], 0
lea edx, [r9 - 1]
je 0x78f0e4
mov eax, dword [r8 + 0x10ef0]
mov dword [rsp + 0x30], 8
mov edx, dword [r8 + 0x10eec]
cmp eax, 3
ja 0x78f28f
cmp r9d, r14d
je 0x78f9aa
lea r9, [rdx + rdx*4]
mov r8d, eax
lea r10, [rdx + r9*2]
lea r9, [r8 + r10 + 0x43bc]
mov ebx, dword [r15 + r9*4 + 0x10]
mov dword [rsp + 0xf0], ebx
test eax, eax
je 0x78f46d
shl r8, 2
lea r9, [rsp + 0xf4]
lea r10, [r15 + r10*4 + 0x10f00]
cmp r8d, 8
jae 0x78f2c5
test r8b, 4
jne 0x78fa75
test r8d, r8d
jne 0x78f510
lea r8d, [rax + 1]
mov r9d, 1
cmp eax, 3
je 0x78e17a
mov rax, qword [rsp + 0x80]
mov r10d, r8d
lea r9, [rax + r10*4]
mov eax, 4
sub eax, r8d
add r8d, 1
shl rax, 2
cmp r8d, 4
mov r8d, 4
cmova rax, r8
lea r8, [rdx + rdx*4]
lea rdx, [rdx + r8*2 + 0x43c0]
add r10, rdx
mov edx, eax
lea r10, [r15 + r10*4]
cmp eax, 8
jae 0x78f220
test al, 4
jne 0x78fab1
test edx, edx
jne 0x78f4e8
mov ebx, dword [rsp + 0xf0]
mov r9d, 1
lea rax, [rcx + rcx*4]
mov r8d, dword [rsp + 0x30]
mov r12, rbx
mov qword [rsp + 0x50], r11
mov edx, dword [rsp + 0xfc]
lea rax, [rcx + rax*2]
not r12
mov rcx, qword [rsp + 0xf4]
lea rax, [r15 + rax*4]
mov qword [rax + 0x10f04], rcx
mov r10d, dword [rax + 0x10ef4]
mov rcx, r15
mov dword [rax + 0x10f0c], edx
mov edx, dword [rsp + 0x60]
mov dword [rax + 0x10ee4], r8d
mov dword [rax + 0x10f00], ebx
mov eax, dword [r15 + 0xb90]
movzx ebp, byte [r11]
movzx edi, byte [r11 + r12]
mov dword [rsp + 0x38], r10d
mov dword [rsp + 0x5c], eax
mov esi, eax
mov eax, r8d
movzx r8d, byte [r11 - 1]
and esi, edx
mov qword [rsp + 0x78], rax
shl rax, 4
lea rax, [rax + rsi + 0x35c8]
mov qword [rsp + 0x70], rsi
movzx esi, word [r15 + rax*2 + 0xc]
movzx eax, bpl
mov dword [rsp + 0x28], eax
movzx eax, dil
mov dword [rsp + 0x20], eax
shr si, 4
call fcn.0078da70
mov rdx, rsi
xor esi, 0x7f
lea r11d, [r14 + 1]
mov r10d, dword [rsp + 0x38]
and edx, 0xfff
and esi, 0xfff
mov dword [rsp + 0x64], r11d
movzx edx, byte [r13 + rdx]
movzx ecx, byte [r13 + rsi]
mov esi, r11d
add eax, r10d
mov qword [rsp + 0x98], rsi
mov r11, qword [rsp + 0x50]
add edx, eax
mov rax, qword [rsp + 0x78]
lea rax, [r15 + rax*2]
mov qword [rsp + 0x68], rax
movzx eax, word [rax + 0x6d1c]
mov word [rsp + 0x38], ax
shr ax, 4
mov word [rsp + 0xa0], ax
xor eax, 0x7f
and eax, 0xfff
movzx r8d, byte [r13 + rax]
lea rax, [rsi + rsi*4]
lea rax, [rsi + rax*2]
lea rax, [r15 + rax*4]
cmp edx, dword [rax + 0x10ef4]
jae 0x78ed50
mov dword [rax + 0x10ef4], edx
mov dword [rax + 0x10ef8], r14d
mov dword [rax + 0x10efc], 0xffffffff
mov byte [rax + 0x10ee8], 0
lea eax, [r10 + rcx]
add r8d, eax
mov dword [rsp + 0xb8], eax
mov dword [rsp + 0x8c], r8d
cmp bpl, dil
je 0x78f038
mov ebp, dword [rsp + 0x58]
cmp ebp, 1
jbe 0x78e3dd
mov eax, dword [rsp + 0x40]
cmp eax, ebp
cmovbe ebp, eax
cmp dword [rsp + 0x30], 7
movzx eax, word [r11]
mov r12d, 2
sbb edi, edi
mov rsi, qword [rsp + 0x70]
mov dword [rsp + 0x50], r12d
and edi, 0xfffffffd
mov word [rsp + 0x38], ax
add edi, 0xb
cmp edi, 9
lea edx, [rdi - 3]
lea eax, [rdi - 6]
mov dword [rsp + 0xc0], edi
cmovbe eax, edx
xor edi, edi
mov dword [rsp + 0xbc], eax
mov rax, rsi
shl rax, 4
add rax, rsi
mov rsi, r11
mov r11, r13
shl rax, 4
mov rdx, rax
mov rax, rbx
mov rbx, rdx
not rax
movzx edx, word [rsp + 0x38]
mov r13d, edi
add rax, rsi
cmp dx, word [rax]
je 0x78e3f8
add rdi, 1
cmp rdi, 4
je 0x78e840
mov rax, qword [rsp + 0x80]
mov eax, dword [rax + rdi*4]
jmp 0x78e366
cmp dword [rcx + 0x10e94], 0x7f
ja 0x78f65d
cmp dword [r15 + 0x10ed8], 0xf
ja 0x78f833
mov rcx, qword [rsp + 0x158]
lea rdx, [rsp + 0xec]
lea r8, [r15 + 0x2f4]
call fcn.00791b30
mov ebp, eax
jmp 0x78dc1b
mov r13, qword [rsp + 0x50]
mov esi, dword [rsp + 0x3c]
cmp dword [rsp + 0x64], esi
jae 0x78f32b
mov r14d, dword [rsp + 0x64]
jmp 0x78dfc0
cmp ebp, 2
jbe 0x78efa0
mov r8d, 2
jmp 0x78e41d
add r8d, 8
cmp r8d, ebp
jae 0x78efa0
mov ecx, r8d
mov rdx, qword [rsi + rcx]
sub rdx, qword [rax + rcx]
je 0x78e410
bsf rcx, rdx
mov edx, ecx
shr edx, 3
lea ecx, [rdx + r8]
cmp ecx, ebp
cmova ecx, ebp
mov r10d, dword [rsp + 0x3c]
lea r12d, [rcx + r14]
mov dword [rsp + 0x90], r12d
cmp r12d, r10d
jbe 0x78e4a2
lea r9d, [r10 + 1]
not r10d
mov r8d, r10d
lea rdx, [r9 + r9*4]
add r8d, r12d
lea rdx, [r9 + rdx*2]
add r8, r9
lea rdx, [r15 + rdx*4 + 0x10ef4]
lea r9, [r8 + r8*4]
lea r8, [r8 + r9*2]
lea r8, [r15 + r8*4 + 0x10f20]
nop word [rax + rax]
mov dword [rdx], 0x40000000
add rdx, 0x2c
cmp r8, rdx
jne 0x78e488
mov edx, dword [rsp + 0x90]
mov dword [rsp + 0x3c], edx
mov rdx, qword [rsp + 0x68]
movzx edx, word [rdx + 0x6d34]
mov word [rsp + 0x94], dx
shr dx, 4
test rdi, rdi
jne 0x78efb0
mov r8, qword [rsp + 0x78]
mov r10, qword [rsp + 0x70]
and edx, 0xfff
shl r8, 4
lea r8, [r8 + r10 + 0x36b8]
movzx r8d, word [r15 + r8*2 + 0xc]
shr r8w, 4
xor r8d, 0x7f
and r8d, 0xfff
movzx r12d, byte [r11 + r8]
movzx r8d, byte [r11 + rdx]
add r12d, r8d
add r12d, dword [rsp + 0x8c]
mov edx, ecx
nop dword [rax]
lea r8d, [rdx - 2]
lea r8, [r8 + rbx + 0x100]
mov r9d, dword [r15 + r8*4 + 0xba4c]
lea r8d, [rdx + r14]
lea r10, [r8 + r8*4]
lea r8, [r8 + r10*2]
add r9d, r12d
lea r8, [r15 + r8*4]
cmp r9d, dword [r8 + 0x10ef4]
jae 0x78e55d
mov dword [r8 + 0x10ef4], r9d
mov dword [r8 + 0x10ef8], r14d
mov dword [r8 + 0x10efc], r13d
mov byte [r8 + 0x10ee8], 0
sub edx, 1
cmp edx, 1
ja 0x78e510
mov edx, dword [rsp + 0x50]
lea r9d, [rcx + 1]
test rdi, rdi
cmove edx, r9d
mov dword [rsp + 0x50], edx
mov edx, dword [rsp + 0x40]
lea r8d, [rdx + r9]
mov edx, dword [rsp + 0x58]
cmp r8d, edx
cmova r8d, edx
mov edx, r9d
cmp r8d, r9d
ja 0x78e5ad
jmp 0x78e379
lea r9d, [rdx + 1]
add rdx, 1
cmp r8d, edx
jbe 0x78e5bb
movzx r10d, byte [rax + rdx]
mov r9d, edx
cmp byte [rsi + rdx], r10b
je 0x78e5a0
sub r9d, ecx
lea r10d, [r9 - 1]
mov dword [rsp + 0x94], r9d
cmp r10d, 1
jbe 0x78e379
lea r8d, [rcx - 2]
mov edx, dword [rsp + 0x60]
mov dword [rsp + 0xdc], r10d
lea r8, [r8 + rbx + 0x100]
mov r9d, dword [rsp + 0x5c]
mov qword [rsp + 0xd0], r11
mov r10d, dword [r15 + r8*4 + 0xba4c]
mov r8d, dword [rsp + 0xc0]
add edx, ecx
and r9d, edx
mov dword [rsp + 0xd8], edx
shl r8, 4
mov dword [rsp + 0xc4], r10d
lea r8, [r9 + r8 + 0x35c8]
mov r9d, ecx
sub ecx, 1
movzx r8d, word [r15 + r8*2 + 0xc]
shr r8w, 4
and r8d, 0xfff
movzx r10d, byte [r11 + r8]
movzx r8d, byte [rsi + rcx]
movzx ecx, byte [rsi + r9]
mov dword [rsp + 0xc8], r10d
mov dword [rsp + 0x28], ecx
movzx eax, byte [rax + r9]
mov rcx, r15
mov r9d, 1
mov dword [rsp + 0x20], eax
call fcn.0078da70
mov ecx, dword [rsp + 0xbc]
mov edx, dword [rsp + 0xd8]
mov dword [rsp + 0xcc], eax
mov r11, qword [rsp + 0xd0]
mov rax, rcx
add edx, 1
and edx, dword [rsp + 0x5c]
mov r10d, dword [rsp + 0xdc]
shl rax, 4
mov r8d, dword [rsp + 0x3c]
lea rax, [rax + rdx + 0x35c8]
movzx eax, word [r15 + rax*2 + 0xc]
shr ax, 4
xor eax, 0x7f
and eax, 0xfff
movzx eax, byte [r11 + rax]
mov dword [rsp + 0xd8], eax
movzx eax, word [r15 + rcx*2 + 0x6d1c]
shr ax, 4
xor eax, 0x7f
and eax, 0xfff
movzx eax, byte [r11 + rax]
mov dword [rsp + 0xd0], eax
mov eax, dword [rsp + 0x90]
add eax, 1
add r10d, eax
mov dword [rsp + 0x90], eax
cmp r10d, r8d
jbe 0x78e754
lea r9d, [r8 + 1]
not r8d
add r8d, r10d
lea rax, [r9 + r9*4]
add r8, r9
lea rax, [r9 + rax*2]
lea r9, [r8 + r8*4]
lea rax, [r15 + rax*4 + 0x10ef4]
lea r8, [r8 + r9*2]
lea r8, [r15 + r8*4 + 0x10f20]
nop dword [rax + rax]
mov dword [rax], 0x40000000
add rax, 0x2c
cmp r8, rax
jne 0x78e740
mov dword [rsp + 0x3c], r10d
movzx eax, word [r15 + rcx*2 + 0x6d34]
shl rcx, 4
lea rcx, [rcx + rdx + 0x36b8]
movzx ecx, word [r15 + rcx*2 + 0xc]
shr ax, 4
and eax, 0xfff
shr cx, 4
movzx eax, byte [r11 + rax]
add eax, dword [rsp + 0xd0]
xor ecx, 0x7f
add eax, dword [rsp + 0xc4]
add eax, dword [rsp + 0xc8]
and ecx, 0xfff
add eax, dword [rsp + 0xd8]
movzx ecx, byte [r11 + rcx]
add eax, ecx
add r12d, eax
mov eax, dword [rsp + 0x94]
lea ecx, [rax - 3]
mov rax, rdx
shl rax, 4
add rax, rdx
lea rdx, [r10 + r10*4]
shl rax, 4
lea rdx, [r10 + rdx*2]
lea rax, [rcx + rax + 0x100]
lea rdx, [r15 + rdx*4]
add r12d, dword [r15 + rax*4 + 0xba4c]
mov eax, dword [rsp + 0xcc]
add eax, r12d
cmp eax, dword [rdx + 0x10ef4]
jae 0x78e379
mov dword [rdx + 0x10ef4], eax
mov ecx, 0x101
mov eax, dword [rsp + 0x90]
add rdi, 1
mov dword [rdx + 0x10efc], 0
mov dword [rdx + 0x10ef8], eax
mov word [rdx + 0x10ee8], cx
mov dword [rdx + 0x10eec], r14d
mov dword [rdx + 0x10ef0], r13d
cmp rdi, 4
jne 0x78e387
nop
mov r13, r11
mov r12d, dword [rsp + 0x50]
mov r11, rsi
cmp dword [rsp + 0x88], ebp
jbe 0x78e896
cmp dword [r15 + 0x2f4], ebp
jae 0x78f9dc
mov eax, 1
nop word cs:[rax + rax]
mov edx, eax
add rax, 1
cmp dword [r15 + rax*8 + 0x2ec], ebp
jb 0x78e870
lea eax, [rdx + 1]
mov dword [rsp + 0x48], eax
mov dword [r15 + rdx*8 + 0x2f4], ebp
mov dword [rsp + 0x88], ebp
mov esi, dword [rsp + 0x88]
cmp esi, r12d
jb 0x78e3dd
mov rax, qword [rsp + 0xa0]
mov edi, dword [rsp + 0x3c]
add esi, r14d
mov ecx, esi
and eax, 0xfff
movzx eax, byte [r13 + rax]
add eax, dword [rsp + 0xb8]
mov dword [rsp + 0x38], eax
cmp esi, edi
jbe 0x78f9d3
lea r9d, [rdi + 1]
not edi
lea edx, [rdi + rsi]
lea rax, [r9 + r9*4]
add rdx, r9
lea rax, [r9 + rax*2]
lea r8, [rdx + rdx*4]
lea rax, [r15 + rax*4 + 0x10ef4]
lea rdx, [rdx + r8*2]
lea rdx, [r15 + rdx*4 + 0x10f20]
nop dword [rax]
mov dword [rax], 0x40000000
add rax, 0x2c
cmp rdx, rax
jne 0x78e908
cmp dword [r15 + 0x2f4], r12d
jae 0x78f9cb
mov eax, 1
nop dword [rax]
mov r10d, eax
add rax, 1
cmp dword [r15 + rax*8 + 0x2ec], r12d
jb 0x78e930
cmp dword [rsp + 0x30], 7
mov rdi, qword [rsp + 0x70]
mov dword [rsp + 0x3c], ecx
mov rbp, r11
sbb eax, eax
mov qword [rsp + 0x50], r13
and eax, 0xfffffffd
add eax, 0xa
cmp eax, 0xa
lea edx, [rax - 3]
mov dword [rsp + 0x94], eax
mov eax, 4
cmovne eax, edx
mov edx, r10d
mov dword [rsp + 0x90], eax
mov rax, rdi
shl rax, 4
add rax, rdi
shl rax, 4
mov qword [rsp + 0x30], rax
mov eax, r12d
jmp 0x78ea19
mov r8d, esi
shl rcx, 7
lea rcx, [r8 + rcx + 0x41a4]
mov edi, dword [r15 + rcx*4]
mov rbx, qword [rsp + 0x30]
lea ecx, [rax - 2]
lea rcx, [rcx + rbx + 0x100]
mov ebx, dword [rsp + 0x38]
add ebx, dword [r15 + rcx*4 + 0x7204]
lea ecx, [rax + r14]
lea r8, [rcx + rcx*4]
add edi, ebx
lea rcx, [rcx + r8*2]
lea rcx, [r15 + rcx*4]
cmp edi, dword [rcx + 0x10ef4]
jae 0x78ea08
lea r8d, [rsi + 4]
mov dword [rcx + 0x10ef4], edi
mov dword [rcx + 0x10ef8], r14d
mov dword [rcx + 0x10efc], r8d
mov byte [rcx + 0x10ee8], 0
lea r13d, [rax + 1]
cmp eax, dword [r15 + rdx*8 + 0x2f4]
je 0x78ea90
mov eax, r13d
cmp eax, 5
mov ecx, 5
mov esi, dword [r15 + rdx*8 + 0x2f8]
cmovbe ecx, eax
sub ecx, 2
cmp esi, 0x7f
jbe 0x78e9a0
mov r8d, esi
cmp esi, 0x7ffff
jbe 0x78eaf8
test esi, esi
jns 0x78eb18
mov rdi, qword [0x024a59a0]
shr r8d, 0x1e
movzx r8d, byte [rdi + r8]
add r8d, 0x3c
mov r9d, esi
shl rcx, 6
and r9d, 0xf
lea rcx, [r8 + rcx + 0x40a4]
mov edi, dword [r15 + rcx*4]
add edi, dword [r15 + r9*4 + 0x10e98]
jmp 0x78e9b3
mov ebx, dword [rsp + 0x40]
mov edx, esi
mov ecx, r13d
not rdx
lea r8d, [rbx + r13]
mov ebx, dword [rsp + 0x58]
add rdx, rbp
cmp r8d, ebx
cmova r8d, ebx
cmp r8d, r13d
ja 0x78eac4
jmp 0x78eade
lea ebx, [rcx + 1]
add rcx, 1
cmp r8d, ecx
jbe 0x78ead2
movzx r11d, byte [rdx + rcx]
mov ebx, ecx
cmp byte [rbp + rcx], r11b
je 0x78eab8
sub ebx, eax
lea r12d, [rbx - 1]
cmp r12d, 1
ja 0x78eb38
add r10d, 1
cmp r10d, dword [rsp + 0x48]
je 0x78e3d8
mov edx, r10d
jmp 0x78ea16
mov r9, qword [0x024a59a0]
shr r8d, 6
movzx r8d, byte [r9 + r8]
add r8d, 0xc
jmp 0x78ea63
mov rdi, qword [0x024a59a0]
shr r8d, 0x12
movzx r8d, byte [rdi + r8]
add r8d, 0x24
jmp 0x78ea63
mov ecx, dword [rsp + 0x60]
mov r9, qword [rsp + 0x50]
mov dword [rsp + 0x8c], r10d
lea r11d, [rcx + r13 - 1]
mov ecx, dword [rsp + 0x5c]
and ecx, r11d
mov r8d, ecx
mov ecx, dword [rsp + 0x94]
mov dword [rsp + 0x88], r8d
shl rcx, 4
lea rcx, [r8 + rcx + 0x35c8]
movzx ecx, word [r15 + rcx*2 + 0xc]
shr cx, 4
and ecx, 0xfff
movzx r8d, byte [r9 + rcx]
mov ecx, eax
sub eax, 1
mov r9d, 1
mov dword [rsp + 0x68], r8d
movzx r8d, byte [rbp + rax]
movzx eax, byte [rbp + rcx]
mov dword [rsp + 0x28], eax
movzx eax, byte [rdx + rcx]
mov edx, r11d
mov rcx, r15
mov dword [rsp + 0x20], eax
call fcn.0078da70
mov ecx, dword [rsp + 0x90]
mov r11, qword [rsp + 0x50]
lea r9d, [r14 + r13]
mov r10d, dword [rsp + 0x88]
mov r8d, dword [rsp + 0x3c]
mov dword [rsp + 0x70], eax
add r12d, r9d
mov rax, rcx
lea edx, [r10 + 1]
shl rax, 4
and edx, dword [rsp + 0x5c]
mov r10d, dword [rsp + 0x8c]
lea rax, [rax + rdx + 0x35c8]
movzx eax, word [r15 + rax*2 + 0xc]
shr ax, 4
xor eax, 0x7f
and eax, 0xfff
movzx eax, byte [r11 + rax]
mov dword [rsp + 0x88], eax
movzx eax, word [r15 + rcx*2 + 0x6d1c]
shr ax, 4
xor eax, 0x7f
and eax, 0xfff
cmp r12d, r8d
movzx eax, byte [r11 + rax]
mov dword [rsp + 0x78], eax
jbe 0x78ec84
lea r11d, [r8 + 1]
not r8d
add r8d, r12d
lea rax, [r11 + r11*4]
add r8, r11
lea rax, [r11 + rax*2]
lea r11, [r8 + r8*4]
lea rax, [r15 + rax*4 + 0x10ef4]
lea r8, [r8 + r11*2]
lea r8, [r15 + r8*4 + 0x10f20]
nop dword [rax + rax]
mov dword [rax], 0x40000000
add rax, 0x2c
cmp r8, rax
jne 0x78ec70
mov dword [rsp + 0x3c], r12d
movzx eax, word [r15 + rcx*2 + 0x6d34]
shl rcx, 4
mov r11, qword [rsp + 0x50]
lea rcx, [rcx + rdx + 0x36b8]
movzx ecx, word [r15 + rcx*2 + 0xc]
shr ax, 4
and eax, 0xfff
shr cx, 4
movzx eax, byte [r11 + rax]
add eax, dword [rsp + 0x78]
xor ecx, 0x7f
add eax, dword [rsp + 0x68]
add eax, dword [rsp + 0x88]
and ecx, 0xfff
movzx ecx, byte [r11 + rcx]
add eax, ecx
lea ecx, [rbx - 3]
add edi, eax
mov rax, rdx
shl rax, 4
add rax, rdx
shl rax, 4
lea rax, [rcx + rax + 0x100]
add edi, dword [r15 + rax*4 + 0xba4c]
lea rax, [r12 + r12*4]
add edi, dword [rsp + 0x70]
lea rax, [r12 + rax*2]
lea rax, [r15 + rax*4]
cmp edi, dword [rax + 0x10ef4]
jae 0x78eade
mov edx, 0x101
add esi, 4
mov dword [rax + 0x10ef4], edi
mov dword [rax + 0x10ef8], r9d
mov dword [rax + 0x10efc], 0
mov word [rax + 0x10ee8], dx
mov dword [rax + 0x10eec], r14d
mov dword [rax + 0x10ef0], esi
jmp 0x78eade
lea esi, [r10 + rcx]
add r8d, esi
mov dword [rsp + 0xb8], esi
mov dword [rsp + 0x8c], r8d
cmp bpl, dil
je 0x78f01f
mov eax, dword [rsp + 0x58]
cmp eax, 1
jbe 0x78e3dd
mov esi, dword [rsp + 0x40]
mov ebp, eax
lea r9, [r11 + r12]
cmp esi, eax
lea ecx, [rsi + 1]
cmovbe ebp, esi
cmp ecx, eax
cmova ecx, eax
mov eax, 1
cmp ecx, 1
ja 0x78eda7
jmp 0x78edc4
add eax, 8
cmp ecx, eax
jbe 0x78edc4
mov r8d, eax
mov r10, qword [r11 + r8]
sub r10, qword [r9 + r8]
je 0x78eda0
bsf r10, r10
shr r10d, 3
add eax, r10d
cmp ecx, eax
cmova ecx, eax
lea r9d, [rcx - 1]
cmp r9d, 1
jbe 0x78e307
mov edi, dword [rsp + 0x30]
xor r10d, r10d
cmp edi, 3
jbe 0x78edec
lea eax, [rdi - 3]
lea r10d, [rdi - 6]
cmp edi, 9
cmovbe r10, rax
mov esi, dword [rsp + 0x64]
mov eax, dword [rsp + 0x170]
mov r8d, dword [rsp + 0x3c]
add eax, esi
add r9d, esi
mov r12d, eax
mov rax, r10
and r12d, dword [rsp + 0x5c]
shl rax, 4
lea rax, [rax + r12 + 0x35c8]
movzx eax, word [r15 + rax*2 + 0xc]
shr ax, 4
xor eax, 0x7f
and eax, 0xfff
movzx edi, byte [r13 + rax]
movzx eax, word [r15 + r10*2 + 0x6d1c]
shr ax, 4
xor eax, 0x7f
and eax, 0xfff
movzx eax, byte [r13 + rax]
mov dword [rsp + 0x38], eax
cmp r9d, r8d
jbe 0x78ee9c
lea esi, [r8 + 1]
not r8d
add r8d, r9d
lea rax, [rsi + rsi*4]
add r8, rsi
lea rax, [rsi + rax*2]
lea rsi, [r8 + r8*4]
lea rax, [r15 + rax*4 + 0x10ef4]
lea r8, [r8 + rsi*2]
lea r8, [r15 + r8*4 + 0x10f20]
nop dword [rax]
mov dword [rax], 0x40000000
add rax, 0x2c
cmp r8, rax
jne 0x78ee88
mov dword [rsp + 0x3c], r9d
mov rax, r12
sub ecx, 3
shl rax, 4
add rax, r12
shl rax, 4
lea rax, [rcx + rax + 0x100]
add edx, dword [r15 + rax*4 + 0xba4c]
movzx eax, word [r15 + r10*2 + 0x6d34]
shl r10, 4
shr ax, 4
and eax, 0xfff
movzx eax, byte [r13 + rax]
add edx, eax
lea rax, [r10 + r12 + 0x36b8]
movzx eax, word [r15 + rax*2 + 0xc]
add edx, edi
add edx, dword [rsp + 0x38]
shr ax, 4
xor eax, 0x7f
and eax, 0xfff
movzx eax, byte [r13 + rax]
add edx, eax
lea rax, [r9 + r9*4]
lea rax, [r9 + rax*2]
lea rax, [r15 + rax*4]
cmp edx, dword [rax + 0x10ef4]
jae 0x78e307
mov edi, dword [rsp + 0x64]
mov r8d, 1
mov dword [rax + 0x10ef4], edx
mov dword [rax + 0x10efc], 0
mov dword [rax + 0x10ef8], edi
mov word [rax + 0x10ee8], r8w
jmp 0x78e307
mov edx, r9d
lea rax, [rdx + rdx*4]
lea rax, [rdx + rax*2]
mov r10d, dword [r15 + rax*4 + 0x10ee4]
mov eax, dword [r8 + 0x10efc]
lea r8d, [r14 - 1]
cmp r9d, r8d
je 0x78f162
cmp eax, 3
ja 0x78f19c
mov dword [rsp + 0x30], 0xb
cmp r10d, 6
ja 0x78e0ab
mov dword [rsp + 0x30], 8
jmp 0x78e0ab
mov ecx, ebp
jmp 0x78e43c
xor edx, 0x7f
and edx, 0xfff
movzx r8d, byte [r11 + rdx]
mov rdx, qword [rsp + 0x68]
movzx edx, word [rdx + 0x6d4c]
mov word [rsp + 0x94], dx
shr dx, 4
cmp r13d, 1
je 0x78f20d
xor edx, 0x7f
mov r10, qword [rsp + 0x68]
and edx, 0xfff
movzx edx, byte [r11 + rdx]
movzx r9d, word [r10 + 0x6d64]
add r8d, edx
mov edx, 2
sub edx, r13d
and edx, 0x7ff
xor edx, r9d
shr edx, 4
movzx r12d, byte [r11 + rdx]
add r12d, r8d
jmp 0x78e502
cmp dword [rax + 0x10ef8], r14d
jae 0x78f038
mov r9d, dword [rax + 0x10efc]
test r9d, r9d
je 0x78f0c7
mov rdx, qword [rsp + 0x78]
mov rsi, qword [rsp + 0x70]
mov rax, qword [rsp + 0x68]
mov rdi, qword [rsp + 0x98]
shl rdx, 4
lea rdx, [rdx + rsi + 0x36b8]
movzx eax, word [rax + 0x6d34]
movzx edx, word [r15 + rdx*2 + 0xc]
mov word [rsp + 0x38], ax
shr ax, 4
shr dx, 4
and eax, 0xfff
and edx, 0xfff
movzx eax, byte [r13 + rax]
movzx edx, byte [r13 + rdx]
add eax, edx
lea rdx, [rdi + rdi*4]
add eax, dword [rsp + 0x8c]
lea rdx, [rdi + rdx*2]
lea rdx, [r15 + rdx*4]
cmp eax, dword [rdx + 0x10ef4]
ja 0x78f0c7
mov dword [rdx + 0x10ef4], eax
mov dword [rdx + 0x10ef8], r14d
mov dword [rdx + 0x10efc], 0
mov byte [rdx + 0x10ee8], 0
cmp dword [rsp + 0x58], 1
jbe 0x78e3dd
mov eax, dword [rsp + 0x40]
mov ebp, dword [rsp + 0x58]
cmp eax, ebp
cmovbe ebp, eax
jmp 0x78e307
lea rax, [rdx + rdx*4]
lea rax, [rdx + rax*2]
mov eax, dword [r15 + rax*4 + 0x10ee4]
cmp eax, 3
ja 0x78f26c
mov eax, dword [r8 + 0x10efc]
cmp r9d, r14d
je 0x78f97b
cmp eax, 3
jbe 0x78ef92
mov dword [rsp + 0x30], 7
lea ebx, [rax - 4]
lea rax, [rdx + rdx*4]
mov r9d, 1
lea rax, [rdx + rax*2]
mov dword [rsp + 0xf0], ebx
lea rax, [r15 + rax*4]
mov edx, dword [rax + 0x10f08]
mov rax, qword [rax + 0x10f00]
mov dword [rsp + 0xfc], edx
mov qword [rsp + 0xf4], rax
jmp 0x78e17a
mov eax, dword [r8 + 0x10efc]
mov ebx, dword [rsp + 0xf0]
test eax, eax
jne 0x78f442
mov dword [rsp + 0x30], 0xb
mov r9d, 1
cmp r10d, 6
ja 0x78e17a
mov dword [rsp + 0x30], 9
mov r9d, 1
jmp 0x78e17a
cmp r10d, 6
jbe 0x78f116
mov dword [rsp + 0x30], 0xa
jmp 0x78f11e
mov esi, 2
mov eax, 2
cmp r9d, 2
jne 0x78f1d4
jmp 0x78f1f2
add esi, 8
cmp r9d, esi
jbe 0x78f483
mov r14d, esi
mov rax, qword [r10 + r14]
sub rax, qword [r13 + r14]
je 0x78f1c8
bsf rax, rax
shr eax, 3
add eax, esi
cmp eax, r9d
cmova eax, r9d
mov dword [rcx + r8*4], eax
cmp eax, dword [rsp + rdi*4 + 0xf0]
jbe 0x78dca6
mov edi, edx
mov r12, rdi
jmp 0x78dca6
and edx, 0xfff
movzx r12d, byte [r11 + rdx]
add r12d, r8d
jmp 0x78e502
mov rdx, qword [r10]
mov qword [r9], rdx
mov edx, eax
mov r8, qword [r10 + rdx - 8]
mov qword [r9 + rdx - 8], r8
lea r8, [r9 + 8]
and r8, 0xfffffffffffffff8
sub r9, r8
lea edx, [rax + r9]
sub r10, r9
and edx, 0xfffffff8
cmp edx, 8
jb 0x78e16d
and edx, 0xfffffff8
xor eax, eax
mov r9d, eax
add eax, 8
mov rbx, qword [r10 + r9]
mov qword [r8 + r9], rbx
cmp eax, edx
jb 0x78f255
jmp 0x78e16d
lea r10d, [rax - 6]
lea ebx, [rax - 3]
cmp eax, 0xa
cmovb r10d, ebx
cmp r9d, r14d
je 0x78f15b
mov eax, dword [r8 + 0x10efc]
jmp 0x78ef77
cmp r9d, r14d
jne 0x78f11e
mov r10d, dword [r8 + 0x10efc]
mov ebx, dword [rsp + 0xf0]
test r10d, r10d
je 0x78f189
mov r10d, 4
lea eax, [r10 - 3]
xor r9d, r9d
mov dword [rsp + 0x30], eax
jmp 0x78e17a
mov rsi, qword [r10]
mov qword [rsp + 0xf4], rsi
mov esi, r8d
mov rdi, qword [r10 + rsi - 8]
mov qword [r9 + rsi - 8], rdi
lea rsi, [rsp + 0xf8]
sub r9, rsi
add r8d, r9d
sub r10, r9
and r8d, 0xfffffff8
cmp r8d, 8
jb 0x78e103
and r8d, 0xfffffff8
xor r9d, r9d
mov edi, r9d
add r9d, 8
mov rbp, qword [r10 + rdi]
mov qword [rsi + rdi], rbp
cmp r9d, r8d
jb 0x78f303
jmp 0x78e103
mov eax, r14d
mov dword [rsp + 0x64], eax
mov qword [rsp + 0x98], rax
mov rsi, qword [rsp + 0x98]
mov edx, dword [rsp + 0x64]
lea rax, [rsi + rsi*4]
mov dword [r15 + 0x10edc], edx
lea rax, [rsi + rax*2]
lea rax, [r15 + rax*4]
mov ecx, dword [rax + 0x10ef8]
mov r10d, dword [rax + 0x10efc]
mov rax, rsi
jmp 0x78f39a
mov r8d, dword [r15 + r8*4 + 0x10ef8]
lea r9, [rax + rax*4]
lea rax, [rax + r9*2]
lea rax, [r15 + rax*4]
mov dword [rax + 0x10ef8], edx
mov r9d, dword [rax + 0x10efc]
mov edx, ecx
mov dword [rax + 0x10efc], r10d
test ecx, ecx
je 0x78f414
mov r10d, r9d
mov ecx, r8d
mov eax, edx
lea r8, [rax + rax*4]
lea rax, [rax + r8*2]
lea r9, [r15 + rax*4]
mov eax, ecx
lea r8, [rax + rax*4]
cmp byte [r9 + 0x10ee8], 0
lea r8, [rax + r8*2]
je 0x78f360
lea r11, [r15 + r8*4]
lea r8d, [rcx - 1]
mov dword [r11 + 0x10efc], 0xffffffff
mov byte [r11 + 0x10ee8], 0
cmp byte [r9 + 0x10ee9], 0
mov dword [r11 + 0x10ef8], r8d
je 0x78f368
lea rbx, [r8 + r8*4]
mov r9, qword [r9 + 0x10eec]
lea r8, [r8 + rbx*2]
lea r8, [r15 + r8*4]
mov byte [r8 + 0x10ee8], 0
mov qword [r8 + 0x10ef8], r9
mov r8d, dword [r11 + 0x10ef8]
jmp 0x78f368
mov eax, dword [r15 + 0x10ef8]
mov rdi, qword [rsp + 0x168]
mov dword [r15 + 0x10ee0], eax
mov dword [rdi], eax
mov eax, dword [r15 + 0x10efc]
mov rdi, qword [rsp + 0x160]
mov dword [rdi], eax
jmp 0x78dbd0
cmp r10d, 3
jbe 0x78f99a
cmp r10d, 9
jbe 0x78f2b5
lea eax, [r10 - 6]
xor r9d, r9d
cmp eax, 6
mov dword [rsp + 0x30], eax
seta r9b
jmp 0x78e17a
mov r8d, 1
jmp 0x78e112
mov r9d, 0x111
jmp 0x78dc53
mov eax, r9d
jmp 0x78f1f2
xor edx, 0x7f
and edx, 0xfff
movzx r8d, byte [r14 + rdx]
movzx edx, word [rbx + 0x6d4c]
shr dx, 4
cmp r10d, 1
je 0x78f90b
xor edx, 0x7f
and edx, 0xfff
movzx ecx, byte [r14 + rdx]
mov edx, 2
sub edx, r10d
add ecx, r8d
movzx r8d, word [rbx + 0x6d64]
and edx, 0x7ff
xor edx, r8d
shr edx, 4
movzx r8d, byte [r14 + rdx]
add ecx, r8d
jmp 0x78dee2
movzx eax, byte [r10]
mov byte [r9], al
test dl, 2
je 0x78e16d
movzx eax, word [r10 + rdx - 2]
mov word [r9 + rdx - 2], ax
jmp 0x78e16d
movzx r8d, byte [r10]
mov byte [r9], r8b
jmp 0x78e103
cmp dword [r15 + 0x2f4], edx
jae 0x78fac6
mov eax, 1
mov r10d, eax
add rax, 1
cmp edx, dword [r15 + rax*8 + 0x2ec]
ja 0x78f52e
mov rax, qword [rsp + 0x40]
mov r12d, dword [rsp + 0xec]
mov r9d, r10d
mov esi, 5
mov rbp, qword [0x024a59a0]
and eax, 0xfff
movzx ebx, byte [r14 + rax]
mov rax, rdi
add ebx, dword [rsp + 0x58]
shl rax, 4
add rax, rdi
shl rax, 4
mov r11, rax
jmp 0x78f5f8
mov r8d, eax
shl rcx, 7
lea rcx, [r8 + rcx + 0x41a4]
mov ecx, dword [r15 + rcx*4]
lea r8d, [rdx - 2]
lea r8, [r8 + r11 + 0x100]
mov edi, dword [r15 + r8*4 + 0x7204]
add edi, ebx
mov r8d, edi
add r8d, ecx
mov ecx, edx
lea rdi, [rcx + rcx*4]
lea rcx, [rcx + rdi*2]
lea rcx, [r15 + rcx*4]
cmp r8d, dword [rcx + 0x10ef4]
jae 0x78f5e7
add eax, 4
mov dword [rcx + 0x10ef4], r8d
mov dword [rcx + 0x10ef8], 0
mov dword [rcx + 0x10efc], eax
mov byte [rcx + 0x10ee8], 0
cmp edx, dword [r15 + r9*8 + 0x2f4]
je 0x78f940
add edx, 1
cmp edx, 5
mov ecx, esi
mov eax, dword [r15 + r9*8 + 0x2f8]
cmovbe ecx, edx
sub ecx, 2
cmp eax, 0x7f
jbe 0x78f580
mov r8d, eax
cmp eax, 0x7ffff
jbe 0x78f955
test eax, eax
jns 0x78f968
shr r8d, 0x1e
movzx r8d, byte [rbp + r8]
add r8d, 0x3c
mov edi, eax
shl rcx, 6
lea rcx, [r8 + rcx + 0x40a4]
and edi, 0xf
mov r8d, dword [r15 + rcx*4]
mov ecx, dword [r15 + rdi*4 + 0x10e98]
add ecx, r8d
jmp 0x78f593
lea rsi, [rcx + 0x10690]
mov r14, qword [0x024a5a80]
lea r11, [rcx + 0x10290]
lea r9, [rcx + 0x6efc]
mov rdi, rsi
mov r13d, dword [r15 + 0x10e90]
xor r10d, r10d
test r13d, r13d
je 0x78f704
nop dword [rax + rax]
mov eax, r10d
lea ecx, [r10 + 0x40]
xor r8d, r8d
lea rbx, [r11 + rax*4]
nop
mov edx, ecx
shr ecx, 1
and edx, 1
mov eax, ecx
movzx eax, word [r9 + rax*2]
neg edx
and edx, 0x7ff
xor eax, edx
shr eax, 4
movzx eax, byte [r14 + rax]
add r8d, eax
cmp ecx, 1
jne 0x78f6a0
mov dword [rbx], r8d
mov eax, dword [r15 + 0x10e90]
add r10d, 1
cmp r10d, eax
jb 0x78f690
cmp eax, 0xe
jbe 0x78f704
mov edx, 0xe
nop dword [rax]
mov eax, edx
mov ecx, edx
add edx, 1
shr eax, 1
sub eax, 5
shl eax, 4
add dword [r11 + rcx*4], eax
cmp edx, dword [r15 + 0x10e90]
jb 0x78f6e8
mov eax, dword [r11]
add r11, 0x100
add rsi, 0x200
sub r9, 0xffffffffffffff80
mov dword [rsi - 0x200], eax
mov eax, dword [r11 - 0xfc]
mov dword [rsi - 0x1fc], eax
mov eax, dword [r11 - 0xf8]
mov dword [rsi - 0x1f8], eax
mov eax, dword [r11 - 0xf4]
mov dword [rsi - 0x1f4], eax
cmp rdi, r11
jne 0x78f67c
mov r12, qword [0x024a59a0]
lea rsi, [r15 + 0x70fc]
mov edi, 4
lea rbp, [r15 + 0x400]
nop dword [rax]
movzx ecx, byte [rdi + r12]
mov r8d, edi
xor r10d, r10d
mov edx, 1
mov r11, rcx
shr ecx, 1
mov eax, r11d
sub ecx, 1
and eax, 1
or eax, 2
shl eax, cl
sub r8d, eax
sub rax, r11
lea rbx, [rax + rax - 2]
nop
mov r9d, r8d
mov eax, edx
shr r8d, 1
and r9d, 1
lea rax, [rsi + rax*2]
mov r13d, r9d
movzx eax, word [rax + rbx]
lea edx, [r9 + rdx*2]
neg r13d
and r13d, 0x7ff
xor eax, r13d
shr eax, 4
movzx eax, byte [r14 + rax]
add r10d, eax
sub ecx, 1
jne 0x78f7a0
lea rdx, [r11*4]
neg r11
shl r11, 3
lea rax, [r15 + rdx]
add rdx, rbp
sub r11, r15
mov r8d, dword [rax + 0x10290]
lea rcx, [r11 + rax*2]
add rax, 0x100
add r8d, r10d
mov dword [rcx + rdi*4 + 0x10690], r8d
cmp rdx, rax
jne 0x78f7f1
add rdi, 1
cmp rdi, 0x80
jne 0x78f770
mov dword [r15 + 0x10e94], 0
jmp 0x78e3a1
mov r14, qword [0x024a5a80]
lea rbx, [r15 + 0x71e0]
xor esi, esi
nop dword [rax + rax]
mov r9d, esi
xor r11d, r11d
mov r8d, 4
mov ecx, 1
nop dword [rax]
mov r10d, r9d
mov eax, ecx
shr r9d, 1
and r10d, 1
movzx eax, word [rbx + rax*2]
mov edx, r10d
lea ecx, [r10 + rcx*2]
neg edx
and edx, 0x7ff
xor eax, edx
shr eax, 4
movzx eax, byte [r14 + rax]
add r11d, eax
sub r8d, 1
jne 0x78f860
mov dword [r15 + rsi*4 + 0x10e98], r11d
add rsi, 1
cmp rsi, 0x10
jne 0x78f848
mov dword [r15 + 0x10ed8], 0
jmp 0x78e3af
mov rdx, qword [rsp + 0x48]
movzx eax, word [rbx + 0x6d34]
movzx edx, word [r15 + rdx*2 + 0x6d7c]
shr ax, 4
and eax, 0xfff
shr dx, 4
movzx eax, byte [r14 + rax]
and edx, 0xfff
movzx edx, byte [r14 + rdx]
add eax, edx
add eax, dword [rsp + 0x38]
cmp ecx, eax
jbe 0x78dde9
mov dword [r15 + 0x10f20], eax
mov dword [r15 + 0x10f28], 0
jmp 0x78dde9
and edx, 0xfff
movzx ecx, byte [r14 + rdx]
add ecx, r8d
jmp 0x78dee2
mov rax, qword [rsp + 0x160]
mov dword [rax], 0xffffffff
mov rax, qword [rsp + 0x168]
mov dword [rax], 1
jmp 0x78dbd0
add r10d, 1
cmp r12d, r10d
je 0x78df7a
mov r9d, r10d
jmp 0x78f5f5
shr r8d, 6
movzx r8d, byte [rbp + r8]
add r8d, 0xc
jmp 0x78f638
shr r8d, 0x12
movzx r8d, byte [rbp + r8]
add r8d, 0x24
jmp 0x78f638
xor r9d, r9d
cmp eax, 1
mov ebx, dword [rsp + 0xf0]
setb r9b
sbb eax, eax
and eax, 9
mov dword [rsp + 0x30], eax
jmp 0x78e17a
mov dword [rsp + 0x30], 0
xor r9d, r9d
jmp 0x78e17a
mov esi, dword [r8 + 0x10efc]
mov ebx, dword [rsp + 0xf0]
mov r10d, 5
test esi, esi
jne 0x78f2b5
jmp 0x78f189
xor r10d, r10d
jmp 0x78e941
mov ecx, dword [rsp + 0x3c]
jmp 0x78e917
mov dword [rsp + 0x48], 1
xor edx, edx
jmp 0x78e887
mov rax, qword [rsp + 0x160]
mov dword [rax], r12d
mov rax, qword [rsp + 0x168]
mov dword [rax], esi
sub esi, 1
je 0x78dbd0
mov rcx, qword [rsp + 0x158]
mov edx, esi
call qword [rcx + 0x38]
mov rax, qword [rsp + 0x158]
add dword [rax + 0x1c], esi
jmp 0x78dbd0
mov eax, dword [rsp + 0xec]
mov rdi, qword [rsp + 0x160]
sub eax, 1
mov eax, dword [r15 + rax*8 + 0x2f8]
add eax, 4
mov dword [rdi], eax
mov rax, qword [rsp + 0x168]
mov dword [rax], ebp
sub ebp, 1
je 0x78dbd0
mov rcx, qword [rsp + 0x158]
mov edx, ebp
call qword [rcx + 0x38]
mov rax, qword [rsp + 0x158]
add dword [rax + 0x1c], ebp
jmp 0x78dbd0
mov esi, dword [r10]
mov r8d, r8d
mov dword [r9], esi
mov r10d, dword [r10 + r8 - 4]
mov dword [r9 + r8 - 4], r10d
jmp 0x78e103
mov eax, dword [r15 + 0x10f28]
mov rdi, qword [rsp + 0x160]
mov dword [rdi], eax
mov rax, qword [rsp + 0x168]
mov dword [rax], 1
jmp 0x78dbd0
mov eax, dword [r10]
mov dword [r9], eax
mov eax, dword [r10 + rdx - 4]
mov dword [r9 + rdx - 4], eax
jmp 0x78e16d
xor r10d, r10d
jmp 0x78f53f