Function at 0x180007140
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov dword [rsp + 0x20], r9d
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbx
push rsi
push rdi
push r14
sub rsp, 0x158
mov ebx, dword [rdx + 8]
mov rsi, rcx
mov eax, r9d
mov r14, rdx
mov qword [rsp + 0x120], rax
xor edi, edi
add rax, r8
mov dword [rsp + 0x58], ebx
mov r9, qword [rsi]
mov rcx, qword [r14 + 0x18]
mov qword [rsp + 0x128], rax
mov rax, qword [rdx]
mov rdx, qword [rdx + 0x10]
mov qword [rsp + 0x60], rdx
mov qword [rsp + 0xa8], rax
mov qword [rsp + 0x68], rcx
test r9, r9
je 0x1800071eb
lea rax, [rdx + 0x927c0]
cmp rax, rcx
jbe 0x1800071eb
mov eax, dword [rsi + 0x28]
test eax, eax
jne 0x180008334
mov rcx, qword [rsi + 0x20]
mov r8, qword [rsi + 0x10]
sub rdx, rcx
call r9
mov dword [rsi + 0x28], eax
test eax, eax
jne 0x180008334
mov rax, qword [rsi + 0x20]
mov qword [r14 + 0x10], rax
mov rdx, qword [rsi + 0x20]
mov qword [rsp + 0x60], rdx
mov qword [rsp + 0x150], rbp
mov rcx, rsi
mov qword [rsp + 0x148], r12
mov qword [rsp + 0x140], r13
mov qword [rsp + 0x138], r15
call fcn.180009040
movzx edx, byte [rsi + 0x12d2]
mov r9d, 0x90
movzx eax, byte [rsi + 0x12d1]
add edx, 7
imul edx, dword [rsi + 0x1270]
add eax, 3
imul eax, dword [rsi + 0x126c]
mov r8d, dword [rsi + 0x17dc]
mov ecx, dword [rsi + 0x1228]
mov dword [rsp + 0x98], r8d
add edx, eax
movzx eax, byte [rsi + 0x12d0]
add eax, 2
imul eax, dword [rsi + 0x1268]
add edx, eax
movzx eax, byte [rsi + 0x12cb]
imul eax, dword [rsi + 0x1254]
add edx, eax
movzx eax, byte [rsi + 0x12ca]
imul eax, dword [rsi + 0x1250]
add edx, eax
movzx eax, byte [rsi + 0x12c9]
imul eax, dword [rsi + 0x124c]
add edx, eax
movzx eax, byte [rsi + 0x12c8]
imul eax, dword [rsi + 0x1248]
add edx, eax
movzx eax, byte [rsi + 0x12c7]
imul eax, dword [rsi + 0x1244]
add edx, eax
movzx eax, byte [rsi + 0x12c6]
imul eax, dword [rsi + 0x1240]
add edx, eax
movzx eax, byte [rsi + 0x12c5]
imul eax, dword [rsi + 0x123c]
add edx, eax
movzx eax, byte [rsi + 0x12c4]
imul eax, dword [rsi + 0x1238]
add edx, eax
movzx eax, byte [rsi + 0x12c2]
imul eax, dword [rsi + 0x1230]
add edx, eax
movzx eax, byte [rsi + 0x12c1]
imul eax, dword [rsi + 0x122c]
add edx, eax
movzx eax, byte [rsi + 0x12cf]
imul eax, dword [rsi + 0x1264]
add edx, eax
movzx eax, byte [rsi + 0x12ce]
imul eax, dword [rsi + 0x1260]
add edx, eax
movzx eax, byte [rsi + 0x12cd]
imul eax, dword [rsi + 0x125c]
add edx, eax
movzx eax, byte [rsi + 0x12cc]
imul eax, dword [rsi + 0x1258]
add edx, eax
movzx eax, byte [rsi + 0x12c0]
imul ecx, eax
movzx eax, byte [rsi + 0x12c3]
imul eax, dword [rsi + 0x1234]
add edx, ecx
add edx, eax
lea eax, [r8 + 7]
lea eax, [r8 + rax*2]
add edx, eax
lea r8, [rsi + 0xaa8]
add rsi, 0x50
nop word [rax + rax]
mov ecx, dword [rsi]
lea rsi, [rsi + 4]
movzx eax, byte [r8]
lea r8, [r8 + 1]
imul eax, ecx
lea edi, [rdi + rcx*8]
add edx, eax
sub r9, 1
jne 0x180007380
mov rbx, qword [rsp + 0x180]
mov r9d, 0x92
mov dword [rsp + 0x20], r9d
mov dword [rsp + 0x24], edx
mov dword [rsp + 0x54], edi
nop word [rax + rax]
lea eax, [r9 - 2]
mov qword [rsp + 0xe0], rax
lea edx, [r9 + 0x10]
mov eax, dword [rbx + rax*4 + 0x50]
mov dword [rsp + 0x50], eax
lea eax, [r9 - 1]
mov r12d, eax
mov eax, dword [rbx + rax*4 + 0x50]
mov dword [rsp + 0x94], eax
mov eax, r9d
mov eax, dword [rbx + rax*4 + 0x50]
mov dword [rsp + 0x2c], eax
lea eax, [r9 + 1]
mov qword [rsp + 0xf8], rax
mov eax, dword [rbx + rax*4 + 0x50]
mov dword [rsp + 0x4c], eax
lea eax, [r9 + 2]
mov qword [rsp + 0xe8], rax
mov eax, dword [rbx + rax*4 + 0x50]
mov dword [rsp + 0x48], eax
lea eax, [r9 + 3]
mov qword [rsp + 0xd0], rax
mov eax, dword [rbx + rax*4 + 0x50]
mov dword [rsp + 0x44], eax
lea eax, [r9 + 4]
mov qword [rsp + 0xc0], rax
mov eax, dword [rbx + rax*4 + 0x50]
mov dword [rsp + 0x40], eax
lea eax, [r9 + 5]
mov qword [rsp + 0xb0], rax
mov eax, dword [rbx + rax*4 + 0x50]
mov dword [rsp + 0x74], eax
lea eax, [r9 + 6]
mov qword [rsp + 0x108], rax
mov eax, dword [rbx + rax*4 + 0x50]
mov dword [rsp + 0x3c], eax
lea eax, [r9 + 7]
mov qword [rsp + 0x100], rax
mov eax, dword [rbx + rax*4 + 0x50]
mov dword [rsp + 0x38], eax
lea eax, [r9 + 8]
mov qword [rsp + 0x118], rax
mov eax, dword [rbx + rax*4 + 0x50]
mov dword [rsp + 0x34], eax
lea eax, [r9 + 9]
mov qword [rsp + 0x110], rax
mov eax, dword [rbx + rax*4 + 0x50]
mov dword [rsp + 0x30], eax
lea eax, [r9 + 0xa]
mov r13d, eax
mov eax, dword [rbx + rax*4 + 0x50]
mov dword [rsp + 0x70], eax
lea eax, [r9 + 0xb]
mov r14d, eax
mov eax, dword [rbx + rax*4 + 0x50]
mov dword [rsp + 0xa0], eax
lea eax, [r9 + 0xc]
mov esi, eax
mov eax, dword [rbx + rax*4 + 0x50]
mov dword [rsp + 0x90], eax
lea eax, [r9 + 0xd]
mov edi, eax
mov eax, dword [rbx + rax*4 + 0x50]
mov dword [rsp + 0x8c], eax
lea eax, [r9 + 0xe]
mov r10d, eax
mov eax, dword [rbx + rax*4 + 0x50]
mov dword [rsp + 0x9c], eax
lea eax, [r9 + 0xf]
mov r8d, eax
mov eax, dword [rbx + rax*4 + 0x50]
mov dword [rsp + 0x84], eax
lea eax, [r9 + 0x11]
mov ecx, eax
mov eax, dword [rbx + rax*4 + 0x50]
mov dword [rsp + 0x28], eax
lea eax, [r9 + 0x12]
mov qword [rsp + 0xf0], rax
mov eax, dword [rbx + rax*4 + 0x50]
mov dword [rsp + 0x80], eax
lea eax, [r9 + 0x13]
movzx ecx, byte [rcx + rbx + 0xaa8]
lea r15d, [r9 + 0x16]
imul ecx, dword [rsp + 0x28]
lea ebp, [r9 + 0x17]
mov qword [rsp + 0xd8], rax
lea r11d, [r9 + 0x18]
mov eax, dword [rbx + rax*4 + 0x50]
mov dword [rsp + 0x7c], eax
lea eax, [r9 + 0x14]
mov qword [rsp + 0xc8], rax
mov eax, dword [rbx + rax*4 + 0x50]
mov dword [rsp + 0x78], eax
lea eax, [r9 + 0x15]
mov qword [rsp + 0xb8], rax
add r9d, 0x19
mov eax, dword [rbx + rax*4 + 0x50]
mov dword [rsp + 0x88], eax
movzx eax, byte [r12 + rbx + 0xaa8]
imul eax, dword [rbx + r12*4 + 0x50]
mov r12d, dword [rbx + rdx*4 + 0x50]
add ecx, eax
movzx eax, byte [rdx + rbx + 0xaa8]
imul eax, r12d
mov edx, dword [rsp + 0x20]
add ecx, eax
movzx eax, byte [r8 + rbx + 0xaa8]
imul eax, dword [rbx + r8*4 + 0x50]
mov r8d, dword [rbx + r11*4 + 0x50]
add ecx, eax
movzx eax, byte [r10 + rbx + 0xaa8]
imul eax, dword [rbx + r10*4 + 0x50]
add ecx, eax
movzx eax, byte [rdi + rbx + 0xaa8]
imul eax, dword [rbx + rdi*4 + 0x50]
add ecx, eax
movzx eax, byte [rsi + rbx + 0xaa8]
imul eax, dword [rbx + rsi*4 + 0x50]
lea rsi, [rbx + 0xaa8]
add ecx, eax
movzx eax, byte [r14 + rbx + 0xaa8]
imul eax, dword [rsp + 0xa0]
add ecx, eax
movzx eax, byte [rdx + rsi]
imul eax, dword [rsp + 0x2c]
mov edx, dword [rbx + r9*4 + 0x50]
add ecx, eax
movzx eax, byte [rsi + r13]
imul eax, dword [rsp + 0x70]
add ecx, eax
mov rax, qword [rsp + 0x110]
movzx eax, byte [rax + rsi]
imul eax, dword [rsp + 0x30]
add ecx, eax
movzx eax, byte [r9 + rbx + 0xaa8]
imul eax, edx
add ecx, eax
mov rax, qword [rsp + 0x118]
movzx eax, byte [rax + rsi]
imul eax, dword [rsp + 0x34]
add ecx, eax
movzx eax, byte [r11 + rbx + 0xaa8]
imul eax, r8d
add ecx, eax
mov rax, qword [rsp + 0x100]
movzx eax, byte [rax + rsi]
imul eax, dword [rsp + 0x38]
add ecx, eax
movzx eax, byte [rbx + rbp + 0xaa8]
imul eax, dword [rbx + rbp*4 + 0x50]
add ecx, eax
mov rax, qword [rsp + 0x108]
movzx eax, byte [rax + rsi]
imul eax, dword [rsp + 0x3c]
add ecx, eax
movzx eax, byte [r15 + rbx + 0xaa8]
imul eax, dword [rbx + r15*4 + 0x50]
add ecx, eax
mov rax, qword [rsp + 0xb0]
movzx eax, byte [rax + rsi]
imul eax, dword [rsp + 0x74]
add ecx, eax
mov rax, qword [rsp + 0xb8]
mov r9d, dword [rsp + 0x20]
add r9d, 0x1c
mov dword [rsp + 0x20], r9d
movzx eax, byte [rax + rbx + 0xaa8]
imul eax, dword [rsp + 0x88]
add ecx, eax
mov rax, qword [rsp + 0xc0]
movzx eax, byte [rax + rsi]
imul eax, dword [rsp + 0x40]
add ecx, eax
mov rax, qword [rsp + 0xc8]
movzx eax, byte [rax + rbx + 0xaa8]
imul eax, dword [rsp + 0x78]
add ecx, eax
mov rax, qword [rsp + 0xd0]
movzx eax, byte [rax + rsi]
imul eax, dword [rsp + 0x44]
add ecx, eax
mov rax, qword [rsp + 0xd8]
movzx eax, byte [rax + rbx + 0xaa8]
imul eax, dword [rsp + 0x7c]
add ecx, eax
mov rax, qword [rsp + 0xe0]
movzx eax, byte [rax + rbx + 0xaa8]
imul eax, dword [rsp + 0x50]
add ecx, eax
mov rax, qword [rsp + 0xe8]
movzx eax, byte [rax + rbx + 0xaa8]
imul eax, dword [rsp + 0x48]
add ecx, eax
mov rax, qword [rsp + 0xf0]
movzx eax, byte [rax + rbx + 0xaa8]
imul eax, dword [rsp + 0x80]
add ecx, eax
mov rax, qword [rsp + 0xf8]
movzx eax, byte [rax + rbx + 0xaa8]
imul eax, dword [rsp + 0x4c]
add eax, dword [rsp + 0x24]
add eax, ecx
lea ecx, [rdx + r8]
add ecx, dword [rbx + rbp*4 + 0x50]
add ecx, dword [rbx + r15*4 + 0x50]
add ecx, dword [rsp + 0x88]
add ecx, dword [rsp + 0x78]
add ecx, dword [rsp + 0x7c]
add ecx, dword [rsp + 0x80]
add ecx, dword [rsp + 0x28]
add ecx, r12d
mov dword [rsp + 0x24], eax
add ecx, dword [rsp + 0x2c]
add ecx, dword [rsp + 0x84]
add ecx, dword [rsp + 0x9c]
add ecx, dword [rsp + 0x8c]
add ecx, dword [rsp + 0x90]
add ecx, dword [rsp + 0xa0]
add ecx, dword [rsp + 0x70]
add ecx, dword [rsp + 0x30]
add ecx, dword [rsp + 0x34]
add ecx, dword [rsp + 0x38]
add ecx, dword [rsp + 0x3c]
add ecx, dword [rsp + 0x74]
add ecx, dword [rsp + 0x40]
add ecx, dword [rsp + 0x44]
add ecx, dword [rsp + 0x48]
add ecx, dword [rsp + 0x4c]
add ecx, dword [rsp + 0x94]
add ecx, dword [rsp + 0x50]
mov eax, ecx
add eax, dword [rsp + 0x54]
lea r8d, [rax + rcx*8]
lea eax, [r9 - 2]
mov dword [rsp + 0x54], r8d
cmp eax, 0x100
jb 0x1800073c0
movzx eax, byte [rbx + 0xba8]
lea r10, [rbx + 0x11e9]
mov r9d, dword [rsp + 0x24]
lea r11, [rbx + 0x454]
add r9d, eax
lea rdi, [0x180019398]
add r8d, 7
mov esi, 0x1d
nop dword [rax]
nop word [rax + rax]
movzx ecx, byte [rdi]
lea rdi, [rdi + 1]
movzx eax, byte [r10 - 0x640]
lea r11, [r11 + 4]
add eax, ecx
lea r10, [r10 + 1]
imul eax, dword [r11 - 4]
add r9d, eax
movzx eax, byte [r10 - 1]
add eax, ecx
imul eax, dword [r11 - 4]
add r8d, eax
sub rsi, 1
jne 0x180007890
mov rsi, qword [rsp + 0x180]
lea rax, [0x180019439]
sub rax, rsi
lea rbp, [0x18001943c]
add rax, 0xfffffffffffff42e
lea r14, [0x18001943d]
mov qword [rsp + 0xe8], rax
lea r15, [0x18001943e]
lea rax, [0x18001943a]
sub rbp, rsi
sub rax, rsi
lea r12, [0x18001943f]
add rax, 0xfffffffffffff42e
lea r13, [0x180019440]
mov qword [rsp + 0xe0], rax
lea r10, [rsi + 0xbd2]
lea rax, [0x18001943b]
sub r14, rsi
sub rax, rsi
lea r11, [rsi + 0x4d8]
add rax, 0xfffffffffffff42e
sub r15, rsi
mov qword [rsp + 0xd8], rax
sub r12, rsi
lea rax, [0x180019441]
sub r13, rsi
sub rax, rsi
mov edi, 2
mov qword [rsp + 0xf8], rax
lea rax, [0x180019442]
mov rbx, qword [rsp + 0xf8]
sub rax, rsi
mov qword [rsp + 0xf0], rax
lea rax, [0x180019443]
sub rax, rsi
mov qword [rsp + 0xd0], rax
lea rax, [0x180019444]
sub rax, rsi
mov qword [rsp + 0xc8], rax
lea rax, [0x180019445]
sub rax, rsi
mov qword [rsp + 0xc0], rax
lea rax, [0x180019446]
sub rax, rsi
mov qword [rsp + 0xb8], rax
lea rax, [0x180019438]
sub rax, rsi
mov rsi, qword [rsp + 0xf0]
add rax, 0xfffffffffffff42e
mov qword [rsp + 0xb0], rax
nop
movzx ecx, byte [r10 + rax]
movzx eax, byte [r10 - 0xa]
add eax, ecx
imul eax, dword [r11 - 8]
add r9d, eax
lea eax, [rcx + 5]
imul eax, dword [r11 - 8]
add r8d, eax
mov rax, qword [rsp + 0xe8]
movzx ecx, byte [r10 + rax]
movzx eax, byte [r10 - 9]
add eax, ecx
imul eax, dword [r11 - 4]
add r9d, eax
lea eax, [rcx + 5]
imul eax, dword [r11 - 4]
add r8d, eax
mov rax, qword [rsp + 0xe0]
movzx ecx, byte [r10 + rax]
movzx eax, byte [r10 - 8]
add eax, ecx
imul eax, dword [r11]
add r9d, eax
lea eax, [rcx + 5]
imul eax, dword [r11]
add r8d, eax
mov rax, qword [rsp + 0xd8]
movzx ecx, byte [r10 + rax]
movzx eax, byte [r10 - 7]
add eax, ecx
imul eax, dword [r11 + 4]
add r9d, eax
lea eax, [rcx + 5]
imul eax, dword [r11 + 4]
movzx ecx, byte [r10 + rbp - 0xbd2]
add r8d, eax
movzx eax, byte [r10 - 6]
add eax, ecx
imul eax, dword [r11 + 8]
add r9d, eax
lea eax, [rcx + 5]
imul eax, dword [r11 + 8]
movzx ecx, byte [r10 + r14 - 0xbd2]
add r8d, eax
movzx eax, byte [r10 - 5]
add eax, ecx
imul eax, dword [r11 + 0xc]
add r9d, eax
lea eax, [rcx + 5]
imul eax, dword [r11 + 0xc]
movzx ecx, byte [r15 + r10 - 0xbd2]
add r8d, eax
movzx eax, byte [r10 - 4]
add eax, ecx
imul eax, dword [r11 + 0x10]
add r9d, eax
lea eax, [rcx + 5]
imul eax, dword [r11 + 0x10]
movzx ecx, byte [r12 + r10 - 0xbd2]
add r8d, eax
movzx eax, byte [r10 - 3]
add eax, ecx
imul eax, dword [r11 + 0x14]
add r9d, eax
lea eax, [rcx + 5]
imul eax, dword [r11 + 0x14]
movzx ecx, byte [r10 + r13 - 0xbd2]
add r8d, eax
movzx eax, byte [r10 - 2]
add eax, ecx
imul eax, dword [r11 + 0x18]
add r9d, eax
lea eax, [rcx + 5]
imul eax, dword [r11 + 0x18]
movzx ecx, byte [r10 + rbx - 0xbd2]
add r8d, eax
movzx eax, byte [r10 - 1]
add eax, ecx
imul eax, dword [r11 + 0x1c]
add r9d, eax
lea eax, [rcx + 5]
imul eax, dword [r11 + 0x1c]
lea r11, [r11 + 0x3c]
movzx ecx, byte [r10 + rsi - 0xbd2]
lea r10, [r10 + 0xf]
add r8d, eax
movzx eax, byte [r10 - 0xf]
add eax, ecx
imul eax, dword [r11 - 0x1c]
add r9d, eax
lea eax, [rcx + 5]
imul eax, dword [r11 - 0x1c]
add r8d, eax
mov rax, qword [rsp + 0xd0]
movzx ecx, byte [r10 + rax - 0xbe1]
movzx eax, byte [r10 - 0xe]
add eax, ecx
imul eax, dword [r11 - 0x18]
add r9d, eax
lea eax, [rcx + 5]
imul eax, dword [r11 - 0x18]
add r8d, eax
mov rax, qword [rsp + 0xc8]
movzx ecx, byte [r10 + rax - 0xbe1]
movzx eax, byte [r10 - 0xd]
add eax, ecx
imul eax, dword [r11 - 0x14]
add r9d, eax
lea eax, [rcx + 5]
imul eax, dword [r11 - 0x14]
add r8d, eax
mov rax, qword [rsp + 0xc0]
movzx ecx, byte [r10 + rax - 0xbe1]
movzx eax, byte [r10 - 0xc]
add eax, ecx
imul eax, dword [r11 - 0x10]
add r9d, eax
lea eax, [rcx + 5]
imul eax, dword [r11 - 0x10]
add r8d, eax
mov rax, qword [rsp + 0xb8]
movzx ecx, byte [rax + r10 - 0xbe1]
movzx eax, byte [r10 - 0xb]
add eax, ecx
imul eax, dword [r11 - 0xc]
add r9d, eax
lea eax, [rcx + 5]
imul eax, dword [r11 - 0xc]
add r8d, eax
mov rax, qword [rsp + 0xb0]
sub rdi, 1
jne 0x1800079f0
mov r10d, dword [rsp + 0x198]
lea r13, [0x180000000]
mov ebx, dword [rsp + 0x58]
mov eax, 0x80008001
mov rsi, qword [rsp + 0x180]
mov rdi, qword [rsp + 0xa8]
lea ecx, [r10 + 0xfffe]
mul ecx
mov eax, 0xfffffffd
sub eax, ebx
shr edx, 0xf
and eax, 7
sub eax, 8
lea ecx, [r10 + rdx*4]
add ecx, edx
lea ecx, [rax + rcx*8]
cmp r8d, ecx
mov eax, ecx
cmovbe eax, r8d
cmp r9d, eax
jae 0x180007e17
mov edx, dword [rsi + 0x17d4]
mov ecx, ebx
mov r14, qword [rsp + 0x60]
sub edx, 0x101
movzx eax, byte [rsp + 0x1a8]
mov r8d, 1
mov r9d, dword [rsp + 0x98]
mov rbp, qword [rsp + 0x68]
mov r10d, dword [rsi + 0x17e0]
shl rax, cl
lea ecx, [rbx + 1]
or rdi, rax
add ebx, 3
mov eax, 2
shl rax, cl
mov ecx, ebx
shl rdx, cl
or rdi, rax
movzx eax, byte [rsi + 0x12d0]
lea ecx, [rbx + 5]
or rdi, rdx
add ebx, 0xa
mov edx, dword [rsi + 0x17d8]
dec edx
shl rdx, cl
mov ecx, ebx
or rdi, rdx
lea edx, [r9 - 4]
shl rdx, cl
lea ecx, [rbx + 4]
shl rax, cl
or rdi, rdx
or rdi, rax
add ebx, 7
movzx ecx, bl
mov edx, ebx
and cl, 0xf8
shr rdx, 3
mov qword [r14], rdi
mov rax, rbp
sub rax, r14
shr rdi, cl
cmp rax, rdx
cmovle rdx, rax
add r14, rdx
and ebx, 7
mov eax, r8d
mov ecx, ebx
add ebx, 3
inc r8d
movzx eax, byte [rax + r13 + 0x19770]
movzx edx, byte [rax + rsi + 0x12c0]
shl rdx, cl
or rdi, rdx
cmp r8d, r9d
jb 0x180007d45
movzx ecx, bl
mov edx, ebx
and cl, 0xf8
shr rdx, 3
mov qword [r14], rdi
mov rax, rbp
sub rax, r14
shr rdi, cl
cmp rax, rdx
cmovle rdx, rax
and ebx, 7
add r14, rdx
xor r9d, r9d
nop dword [rax]
nop dword [rax + rax]
mov ecx, ebx
mov eax, r9d
mov edx, dword [rsi + rax*4 + 0x12d4]
mov r8d, edx
shr rdx, 5
and r8d, 0x1f
mov eax, dword [rsi + r8*4 + 0x1274]
shl rax, cl
or rdi, rax
movzx eax, byte [r8 + rsi + 0x12c0]
add ebx, eax
movzx eax, byte [r8 + r13 + 0x19788]
mov ecx, ebx
add ebx, eax
shl rdx, cl
mov rax, rbp
or rdi, rdx
sub rax, r14
movzx ecx, bl
mov edx, ebx
and cl, 0xf8
shr rdx, 3
mov qword [r14], rdi
shr rdi, cl
cmp rax, rdx
cmovle rdx, rax
and ebx, 7
add r14, rdx
inc r9d
cmp r9d, r10d
jb 0x180007da0
mov eax, 0x5a8
jmp 0x180007e6c
mov r14, qword [rsp + 0x60]
cmp r8d, ecx
jae 0x180008252
movzx eax, byte [rsp + 0x1a8]
mov ecx, ebx
shl rax, cl
inc ebx
or rdi, rax
mov eax, ebx
bts rdi, rax
add ebx, 2
mov rax, qword [rsp + 0x68]
movzx ecx, bl
sub rax, r14
mov edx, ebx
and cl, 0xf8
shr rdx, 3
mov qword [r14], rdi
shr rdi, cl
cmp rax, rdx
cmovle rdx, rax
mov eax, 0xbe8
add r14, rdx
and ebx, 7
lea r12, [rsi + 0x1634]
mov r9d, 3
lea r15, [0x180019460]
lea r10, [r12 + 3]
sub r15, r12
lea r12, [0x180019398]
lea r11, [rax + rsi]
lea rbp, [rsi + 0x1234]
nop word [rax + rax]
movzx eax, byte [r10 + r15]
lea r10, [r10 + 1]
mov r8d, eax
lea rbp, [rbp + 4]
lea edx, [rax + 0x101]
mov eax, r9d
sub eax, dword [r13 + r8*4 + 0x19320]
inc r9d
movzx ecx, byte [r11 + rdx + 0x500]
shl eax, cl
or eax, dword [r11 + rdx*4]
mov dword [rbp - 4], eax
movzx eax, byte [r8 + r12]
add al, byte [r11 + rdx + 0x500]
mov byte [r10 - 1], al
cmp r9d, 0x102
jbe 0x180007ea0
mov r13, qword [rsp + 0x1a0]
mov rbp, qword [rsp + 0x68]
test r13, r13
jne 0x180008034
mov rax, qword [rsp + 0x120]
lea r10, [rsi + 0x63ad84]
lea r13, [0x180019438]
lea r15, [rax*8 + 0x63ad84]
add r15, rsi
nop word [rax + rax]
mov r8d, dword [r10 + 4]
mov ecx, ebx
mov eax, r8d
shr r8d, 9
and eax, 0x1ff
cmp eax, 1
jne 0x180007f62
mov eax, dword [r11 + r8*4]
mov r9d, 1
shl rax, cl
or rdi, rax
movzx eax, byte [r8 + r11 + 0x500]
jmp 0x180007fc0
movzx edx, byte [r8 + rsi + 0x88f9dc]
mov r9d, eax
mov eax, dword [rsi + rax*4 + 0x1228]
shl rax, cl
or rdi, rax
movzx eax, byte [rsi + r9 + 0x1634]
add ebx, eax
mov eax, dword [r11 + rdx*4 + 0x480]
mov ecx, ebx
shl rax, cl
or rdi, rax
movzx eax, byte [rdx + r11 + 0x620]
add ebx, eax
lea rax, [0x180000000]
sub r8d, dword [rax + rdx*4 + 0x193c0]
mov ecx, ebx
mov eax, r8d
shl rax, cl
or rdi, rax
movzx eax, byte [rdx + r13]
add ebx, eax
mov qword [r14], rdi
movzx ecx, bl
mov edx, ebx
and cl, 0xf8
shr rdx, 3
shr rdi, cl
lea r10, [r10 + r9*8]
mov rax, rbp
sub rax, r14
cmp rax, rdx
cmovle rdx, rax
and ebx, 7
add r14, rdx
cmp r10, r15
jne 0x180007f30
mov eax, dword [r11 + 0x400]
mov ecx, ebx
shl rax, cl
sub rbp, r14
or rdi, rax
movzx eax, byte [r11 + 0x600]
add ebx, eax
mov qword [r14], rdi
movzx ecx, bl
mov edx, ebx
and cl, 0xf8
shr rdx, 3
shr rdi, cl
cmp rbp, rdx
cmovle rdx, rbp
add r14, rdx
and ebx, 7
jmp 0x180008300
mov r10, qword [rsp + 0x190]
add r13, 4
mov r15d, dword [r13 - 4]
mov r8d, r15d
and r8d, 0x7fffff
shr r15d, 0x17
cmp r8d, 4
jb 0x180008116
mov r9d, r8d
shr r9, 2
nop dword [rax]
nop word [rax + rax]
movzx edx, byte [r10]
mov ecx, ebx
mov eax, dword [r11 + rdx*4]
shl rax, cl
or rdi, rax
movzx eax, byte [r11 + rdx + 0x500]
movzx edx, byte [r10 + 1]
add ebx, eax
mov ecx, ebx
mov eax, dword [r11 + rdx*4]
shl rax, cl
or rdi, rax
movzx eax, byte [r11 + rdx + 0x500]
movzx edx, byte [r10 + 2]
add ebx, eax
mov ecx, ebx
mov eax, dword [r11 + rdx*4]
shl rax, cl
or rdi, rax
movzx eax, byte [r11 + rdx + 0x500]
movzx edx, byte [r10 + 3]
add ebx, eax
mov ecx, ebx
add r10, 4
mov eax, dword [r11 + rdx*4]
shl rax, cl
or rdi, rax
movzx eax, byte [r11 + rdx + 0x500]
add ebx, eax
mov qword [r14], rdi
movzx ecx, bl
mov edx, ebx
and cl, 0xf8
shr rdx, 3
shr rdi, cl
mov rax, rbp
sub rax, r14
cmp rax, rdx
cmovle rdx, rax
and ebx, 7
add r14, rdx
add r8d, 0xfffffffc
sub r9, 1
jne 0x180008070
mov eax, r8d
dec r8d
test eax, eax
je 0x1800081b0
movzx edx, byte [r10]
mov ecx, ebx
inc r10
mov eax, dword [r11 + rdx*4]
shl rax, cl
or rdi, rax
movzx eax, byte [r11 + rdx + 0x500]
add ebx, eax
test r8d, r8d
je 0x18000818b
movzx edx, byte [r10]
mov ecx, ebx
inc r10
mov eax, dword [r11 + rdx*4]
shl rax, cl
or rdi, rax
movzx eax, byte [r11 + rdx + 0x500]
add ebx, eax
lea eax, [r8 - 1]
test eax, eax
je 0x18000818b
movzx edx, byte [r10]
mov ecx, ebx
inc r10
mov eax, dword [r11 + rdx*4]
shl rax, cl
or rdi, rax
movzx eax, byte [r11 + rdx + 0x500]
add ebx, eax
movzx ecx, bl
mov edx, ebx
and cl, 0xf8
shr rdx, 3
mov qword [r14], rdi
mov rax, rbp
sub rax, r14
shr rdi, cl
cmp rax, rdx
cmovle rdx, rax
add r14, rdx
and ebx, 7
test r15d, r15d
je 0x180007ff4
movzx r8d, word [r13 + 2]
mov ecx, ebx
movzx edx, word [r13]
mov eax, dword [rsi + r15*4 + 0x1228]
shl rax, cl
or rdi, rax
mov r9d, r15d
movzx eax, byte [rsi + r15 + 0x1634]
add ebx, eax
mov eax, dword [r11 + r8*4 + 0x480]
mov ecx, ebx
shl rax, cl
lea rcx, [0x180000000]
sub edx, dword [rcx + r8*4 + 0x193c0]
or rdi, rax
movzx eax, byte [r11 + r8 + 0x620]
add ebx, eax
lea rax, [0x180019438]
movzx eax, byte [r8 + rax]
mov ecx, ebx
shl rdx, cl
add ebx, eax
or rdi, rdx
movzx ecx, bl
and cl, 0xf8
mov edx, ebx
shr rdx, 3
mov rax, rbp
sub rax, r14
mov qword [r14], rdi
shr rdi, cl
cmp rax, rdx
cmovle rdx, rax
and ebx, 7
add r14, rdx
add r10, r9
add r13, 8
jmp 0x180008040
movzx r13d, byte [rsp + 0x1a8]
mov rsi, qword [rsp + 0x190]
mov rbp, qword [rsp + 0x68]
mov r12, qword [rsp + 0x128]
mov r15d, 0xffff
lea ecx, [rbx + 0xa]
mov rdx, r12
mov rax, rbp
sub rdx, rsi
cmp rdx, r15
cmovle r15, rdx
shr ecx, 3
add ecx, 4
sub rax, r14
add rcx, r15
cmp rax, rcx
jb 0x1800082fd
cmp rdx, 0xffff
movzx eax, r13b
mov edx, 0
mov ecx, ebx
cmovg eax, edx
shl al, cl
or al, dil
mov byte [r14], al
inc r14
cmp ebx, 5
jbe 0x1800082c5
mov byte [r14], dl
inc r14
mov word [r14], r15w
movzx eax, r15w
not ax
mov rdi, rdx
mov word [r14 + 2], ax
mov ebx, edx
add r14, 4
mov r8, r15
mov rcx, r14
mov rdx, rsi
call fcn.18000e170
add r14, r15
add rsi, r15
cmp rsi, r12
jne 0x180008270
jmp 0x180008300
mov r14, rbp
mov rax, qword [rsp + 0x188]
mov r15, qword [rsp + 0x138]
mov r13, qword [rsp + 0x140]
mov r12, qword [rsp + 0x148]
mov rbp, qword [rsp + 0x150]
mov qword [rax], rdi
mov dword [rax + 8], ebx
mov qword [rax + 0x10], r14
xor eax, eax
add rsp, 0x158
pop r14
pop rdi
pop rsi
pop rbx
ret