Function at 0x14016b380
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 rdi
push r12
push r14
push r15
sub rsp, 0xa0
mov r14d, dword [rsp + 0xf0]
mov rdi, qword [rcx + 0x18]
mov r9, qword [rcx]
mov dword [rsp + 0x44], r14d
inc r14d
mov r15, rdx
mov dword [rsp + 0x50], r14d
inc r14d
mov rbx, rcx
mov r12d, r14d
mov dword [rsp + 0x38], r14d
inc r14d
mov dword [rsp + 0x4c], r14d
inc r14d
mov qword [rsp + 0x70], r9
mov dword [rsp + 0x40], r14d
inc r14d
mov dword [rsp + 0x34], 0xffffffff
mov dword [rsp + 0x5c], r14d
inc r14d
mov dword [rsp + 0x48], r14d
inc r14d
mov dword [rsp + 0xf0], r14d
test rdi, rdi
jne 0x14016b44a
mov rcx, r9
call fcn.140146690
mov rdi, rax
mov qword [rbx + 0x18], rax
test rax, rax
je 0x14016b43c
xor r9d, r9d
xor r8d, r8d
mov edx, 0x88
mov rcx, rax
mov dword [rsp + 0x20], 0
call fcn.14014d8e0
mov r9, qword [rsp + 0x70]
test rdi, rdi
je 0x14016c317
test r15, r15
je 0x14016c317
cmp dword [r15 + 0x20], 0
je 0x14016c317
mov r10, qword [r15]
lea rcx, str.sqlite_
mov edx, dword [r10]
cmp edx, dword [rcx]
jne 0x14016b488
movzx edx, word [r10 + 4]
cmp dx, word [rcx + 4]
jne 0x14016b488
movzx edx, byte [r10 + 6]
cmp dl, byte [rcx + 6]
jne 0x14016b488
xor eax, eax
jmp 0x14016b48d
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x14016c317
mov rdx, qword [r15 + 0x78]
mov rcx, r9
mov qword [rsp + 0x90], rsi
call fcn.1401324e0
mov rcx, qword [r9 + 0x10]
xor r9d, r9d
movsxd rsi, eax
mov r8, r10
mov rdx, rsi
mov dword [rsp + 0x54], esi
shl rdx, 5
mov rdx, qword [rdx + rcx]
mov rcx, rbx
mov qword [rsp + 0x20], rdx
lea edx, [r9 + 0x1c]
call fcn.14015d040
test eax, eax
jne 0x14016c30f
mov rax, qword [r15]
mov r8d, dword [r15 + 0x20]
xor r9d, r9d
mov edx, esi
mov rcx, rbx
mov qword [rsp + 0x98], rbp
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x88], r13
call fcn.14014ce20
mov r13d, dword [rbx + 0x54]
mov r9d, dword [rsp + 0x44]
xor r8d, r8d
lea eax, [r13 + 1]
lea edx, [r8 + 0x5e]
mov rcx, rdi
mov dword [rbx + 0x54], eax
mov rbp, qword [r15]
mov dword [rsp + 0x30], r13d
mov dword [rsp + 0x20], 0
call fcn.14014d8e0
mov rsi, qword [rdi + 8]
mov rcx, qword [rdi]
test rsi, rsi
je 0x14016b5af
cmp byte [rcx + 0x2a], 0
jne 0x14016b5af
test eax, eax
jns 0x14016b551
mov eax, dword [rdi + 0x34]
dec eax
cdqe
lea rbx, [rax + rax*2]
movsx edx, byte [rsi + rbx*8 + 1]
mov r8, qword [rsi + rbx*8 + 0x10]
call fcn.14014b390
xor eax, eax
mov qword [rsi + rbx*8 + 0x10], rax
test rbp, rbp
jne 0x14016b57d
mov qword [rsi + rbx*8 + 0x10], rax
mov byte [rsi + rbx*8 + 1], al
jmp 0x14016b5b9
cmp byte [rbp], 0
mov rax, rbp
je 0x14016b58e
inc rax
cmp byte [rax], 0
jne 0x14016b586
mov rcx, qword [rdi]
sub eax, ebp
mov rdx, rbp
and eax, 0x3fffffff
mov r8d, eax
call fcn.1401475c0
mov byte [rsi + rbx*8 + 1], 0xff
mov qword [rsi + rbx*8 + 0x10], rax
jmp 0x14016b5b9
mov r8, rbp
xor edx, edx
call fcn.14014b390
mov r15, qword [r15 + 0x18]
lea rsi, [0x14037feb8]
mov qword [rsp + 0x60], r15
test r15, r15
je 0x14016c138
mov rax, qword [rsp + 0xe0]
nop word [rax + rax]
test rax, rax
je 0x14016b5ee
cmp rax, r15
jne 0x14016c115
mov ebx, dword [r15 + 8]
mov rsi, qword [rsp + 0xd0]
mov rdx, r15
mov rcx, rsi
mov dword [rsp + 0x3c], ebx
call fcn.14016aef0
lea r13d, [rbx + rbx]
lea ecx, [r13 + r14 + 1]
mov rbp, rax
mov dword [rsp + 0x6c], r13d
cmp ecx, dword [rsi + 0x58]
jle 0x14016b622
mov dword [rsi + 0x58], ecx
mov eax, dword [rsp + 0x54]
mov r9d, dword [r15 + 0x28]
mov r8d, dword [rsp + 0x30]
mov edx, 0x26
mov rcx, rdi
mov dword [rsp + 0x20], eax
call fcn.14014d8e0
mov rsi, qword [rdi + 8]
mov rcx, qword [rdi]
test rsi, rsi
je 0x14016b6a0
cmp byte [rcx + 0x2a], 0
jne 0x14016b6a0
test eax, eax
jns 0x14016b65b
mov eax, dword [rdi + 0x34]
dec eax
cdqe
lea rbx, [rax + rax*2]
movsx edx, byte [rsi + rbx*8 + 1]
mov r8, qword [rsi + rbx*8 + 0x10]
call fcn.14014b390
xor r12d, r12d
mov qword [rsi + rbx*8 + 0x10], r12
test rbp, rbp
jne 0x14016b689
mov qword [rsi + rbx*8 + 0x10], r12
mov byte [rsi + rbx*8 + 1], r12b
jmp 0x14016b6b0
mov qword [rsi + rbx*8 + 0x10], rbp
mov byte [rsi + rbx*8 + 1], 0xfa
jmp 0x14016b6b0
mov r8, rbp
mov edx, 0xfffffff0
call fcn.14014b390
xor r12d, r12d
mov r9d, dword [rsp + 0x50]
mov rbp, qword [r15]
xor r8d, r8d
lea edx, [r8 + 0x5e]
mov rcx, rdi
mov dword [rsp + 0x20], r12d
call fcn.14014d8e0
mov rsi, qword [rdi + 8]
mov rcx, qword [rdi]
test rsi, rsi
je 0x14016b749
cmp byte [rcx + 0x2a], 0
jne 0x14016b749
test eax, eax
jns 0x14016b6e7
mov eax, dword [rdi + 0x34]
dec eax
cdqe
lea rbx, [rax + rax*2]
movsx edx, byte [rsi + rbx*8 + 1]
mov r8, qword [rsi + rbx*8 + 0x10]
call fcn.14014b390
mov qword [rsi + rbx*8 + 0x10], r12
test rbp, rbp
jne 0x14016b712
mov qword [rsi + rbx*8 + 0x10], r12
mov byte [rsi + rbx*8 + 1], bpl
jmp 0x14016b753
cmp byte [rbp], 0
mov rax, rbp
je 0x14016b728
nop dword [rax + rax]
inc rax
cmp byte [rax], 0
jne 0x14016b720
mov rcx, qword [rdi]
sub eax, ebp
mov rdx, rbp
and eax, 0x3fffffff
mov r8d, eax
call fcn.1401475c0
mov byte [rsi + rbx*8 + 1], 0xff
mov qword [rsi + rbx*8 + 0x10], rax
jmp 0x14016b753
mov r8, rbp
xor edx, edx
call fcn.14014b390
mov ebp, dword [rsp + 0x3c]
mov ebx, r12d
test ebp, ebp
js 0x14016b77e
nop
xor r8d, r8d
lea r9d, [rbx + r14]
mov rcx, rdi
lea edx, [r8 + 7]
mov dword [rsp + 0x20], r12d
call fcn.14014d8e0
inc ebx
cmp ebx, ebp
jle 0x14016b760
mov ebx, r12d
test ebp, ebp
jle 0x14016b7d4
movsxd rsi, dword [rdi + 0x34]
cmp dword [rdi + 0x38], esi
jg 0x14016b79a
mov rcx, rdi
call fcn.14014b500
test eax, eax
jne 0x14016b7ce
mov rdx, qword [rdi + 8]
inc dword [rdi + 0x34]
lea r8, [rsi + rsi*2]
lea eax, [rbx + rbp]
mov byte [rdx + r8*8 + 3], 0
mov dword [rdx + r8*8 + 4], r12d
lea ecx, [rax + r14 + 1]
mov dword [rdx + r8*8 + 0xc], r12d
mov qword [rdx + r8*8 + 0x10], r12
mov dword [rdx + r8*8 + 8], ecx
mov word [rdx + r8*8], 0xa
inc ebx
cmp ebx, ebp
jl 0x14016b785
mov rcx, rdi
call fcn.14014d800
movsxd rbx, dword [rdi + 0x34]
mov r14d, eax
mov dword [rsp + 0x68], eax
cmp dword [rdi + 0x38], ebx
jg 0x14016b7f8
mov rcx, rdi
call fcn.14014b500
test eax, eax
jne 0x14016b827
mov rax, qword [rdi + 8]
inc dword [rdi + 0x34]
mov esi, dword [rsp + 0x30]
lea rcx, [rbx + rbx*2]
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], esi
mov dword [rax + rcx*8 + 8], r14d
mov dword [rax + rcx*8 + 0xc], r12d
mov qword [rax + rcx*8 + 0x10], r12
mov word [rax + rcx*8], 0x41
jmp 0x14016b82b
mov esi, dword [rsp + 0x30]
movsxd r15, dword [rdi + 0x34]
mov dword [rsp + 0x58], r15d
cmp dword [rdi + 0x38], r15d
jg 0x14016b846
mov rcx, rdi
call fcn.14014b500
test eax, eax
jne 0x14016b875
mov rax, qword [rdi + 8]
inc dword [rdi + 0x34]
mov edx, dword [rsp + 0xf0]
lea rcx, [r15 + r15*2]
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], edx
mov qword [rax + rcx*8 + 8], 1
mov qword [rax + rcx*8 + 0x10], r12
mov word [rax + rcx*8], 0x14
test ebp, ebp
jle 0x14016ba2d
mov r15d, dword [rsp + 0xf0]
mov r14, qword [rsp + 0x60]
xor ebp, ebp
mov r13d, ebp
jmp 0x14016b893
xor ebp, ebp
movsxd rbx, dword [rdi + 0x34]
cmp dword [rdi + 0x38], ebx
jg 0x14016b8a8
mov rcx, rdi
call fcn.14014b500
test eax, eax
jne 0x14016b8d6
mov rax, qword [rdi + 8]
inc dword [rdi + 0x34]
lea rcx, [rbx + rbx*2]
mov dword [rax + rcx*8 + 4], esi
mov esi, dword [rsp + 0x4c]
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 8], r12d
mov qword [rax + rcx*8 + 0x10], rbp
mov word [rax + rcx*8], 0x1c
mov dword [rax + rcx*8 + 0xc], esi
jmp 0x14016b8da
mov esi, dword [rsp + 0x4c]
test r12d, r12d
jne 0x14016b920
movsxd rbx, dword [rdi + 0x34]
cmp dword [rdi + 0x38], ebx
jg 0x14016b8f4
mov rcx, rdi
call fcn.14014b500
test eax, eax
jne 0x14016b920
mov rcx, qword [rdi + 8]
inc dword [rdi + 0x34]
lea rdx, [rbx + rbx*2]
lea eax, [r15 + 1]
mov byte [rcx + rdx*8 + 3], 0
mov qword [rcx + rdx*8 + 8], 0
mov qword [rcx + rdx*8 + 0x10], rbp
mov word [rcx + rdx*8], 0x1b
mov dword [rcx + rdx*8 + 4], eax
mov rdx, qword [r14 + 0x50]
mov rcx, qword [rsp + 0xd0]
mov rdx, qword [rdx + r13]
call fcn.140166b20
movsxd rbx, dword [rdi + 0x34]
mov rbp, rax
cmp dword [rdi + 0x38], ebx
jg 0x14016b954
mov rcx, rdi
call fcn.14014b500
test eax, eax
je 0x14016b954
mov ebx, 1
jmp 0x14016b98f
inc dword [rdi + 0x34]
mov rdx, qword [rdi + 8]
mov eax, dword [rsp + 0x3c]
lea r8, [rbx + rbx*2]
xor r9d, r9d
add eax, r12d
lea ecx, [rax + r15 + 1]
mov byte [rdx + r8*8 + 3], 0
mov dword [rdx + r8*8 + 4], esi
mov dword [rdx + r8*8 + 8], r9d
mov qword [rdx + r8*8 + 0x10], r9
mov word [rdx + r8*8], 0x4b
mov dword [rdx + r8*8 + 0xc], ecx
mov rsi, qword [rdi + 8]
mov rcx, qword [rdi]
test rsi, rsi
je 0x14016b9e3
cmp byte [rcx + 0x2a], 0
jne 0x14016b9e3
test ebx, ebx
jns 0x14016b9aa
mov ebx, dword [rdi + 0x34]
dec ebx
movsxd rax, ebx
lea rbx, [rax + rax*2]
movsx edx, byte [rsi + rbx*8 + 1]
mov r8, qword [rsi + rbx*8 + 0x10]
call fcn.14014b390
xor eax, eax
mov qword [rsi + rbx*8 + 0x10], rax
test rbp, rbp
jne 0x14016b9d7
mov qword [rsi + rbx*8 + 0x10], rax
mov byte [rsi + rbx*8 + 1], al
jmp 0x14016b9f0
mov qword [rsi + rbx*8 + 0x10], rbp
mov byte [rsi + rbx*8 + 1], 0xfc
jmp 0x14016b9f0
mov r8, rbp
mov edx, 0xfffffffc
call fcn.14014b390
mov rdx, qword [rdi + 8]
test rdx, rdx
je 0x14016ba06
movsxd rax, dword [rdi + 0x34]
lea rcx, [rax + rax*2]
mov byte [rdx + rcx*8 - 0x15], 0x80
mov ebp, dword [rsp + 0x3c]
mov esi, dword [rsp + 0x30]
inc r12d
add r13, 8
cmp r12d, ebp
jl 0x14016b891
mov r14d, dword [rsp + 0x68]
mov r15d, dword [rsp + 0x58]
mov r13d, dword [rsp + 0x6c]
mov rax, qword [rsp + 0x70]
cmp byte [rax + 0x2a], 0
jne 0x14016c2ff
movsxd rbx, dword [rdi + 0x34]
cmp dword [rdi + 0x38], ebx
jg 0x14016ba51
mov rcx, rdi
call fcn.14014b500
test eax, eax
jne 0x14016ba80
inc dword [rdi + 0x34]
mov rax, qword [rdi + 8]
lea rcx, [rbx + rbx*2]
xor r12d, r12d
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 8], r14d
mov dword [rax + rcx*8 + 4], r12d
mov dword [rax + rcx*8 + 0xc], r12d
mov qword [rax + rcx*8 + 0x10], r12
mov word [rax + rcx*8], 1
jmp 0x14016ba83
xor r12d, r12d
mov ebx, r12d
test ebp, ebp
jle 0x14016bb81
mov r15d, dword [rsp + 0xf0]
mov r12d, dword [rsp + 0x30]
nop dword [rax + rax]
mov r8d, dword [rdi + 0x34]
mov edx, r8d
sub edx, r13d
test ebx, ebx
jne 0x14016bac5
lea eax, [rdx - 1]
cmp r8d, eax
jle 0x14016bac5
cdqe
lea rcx, [rax + rax*2]
mov rax, qword [rdi + 8]
mov dword [rax + rcx*8 + 8], r8d
mov r8d, dword [rdi + 0x34]
cmp r8d, edx
jle 0x14016bade
movsxd rax, edx
lea rcx, [rax + rax*2]
mov rax, qword [rdi + 8]
mov dword [rax + rcx*8 + 8], r8d
movsxd rsi, dword [rdi + 0x34]
cmp dword [rdi + 0x38], esi
jg 0x14016baf3
mov rcx, rdi
call fcn.14014b500
test eax, eax
jne 0x14016bb22
inc dword [rdi + 0x34]
mov rcx, qword [rdi + 8]
lea rdx, [rsi + rsi*2]
lea eax, [rbx + r15 + 1]
mov byte [rcx + rdx*8 + 3], 0
mov qword [rcx + rdx*8 + 8], 1
mov dword [rcx + rdx*8 + 4], eax
xor eax, eax
mov word [rcx + rdx*8], 0x14
mov qword [rcx + rdx*8 + 0x10], rax
movsxd rsi, dword [rdi + 0x34]
cmp dword [rdi + 0x38], esi
jg 0x14016bb37
mov rcx, rdi
call fcn.14014b500
test eax, eax
jne 0x14016bb6f
mov rdx, qword [rdi + 8]
inc dword [rdi + 0x34]
lea r8, [rsi + rsi*2]
lea eax, [rbx + rbp]
mov byte [rdx + r8*8 + 3], 0
mov dword [rdx + r8*8 + 4], r12d
lea ecx, [rax + r15 + 1]
mov dword [rdx + r8*8 + 8], ebx
mov qword [rdx + r8*8 + 0x10], 0
mov dword [rdx + r8*8 + 0xc], ecx
mov word [rdx + r8*8], 0x1c
inc ebx
cmp ebx, ebp
jl 0x14016baa0
mov r15d, dword [rsp + 0x58]
xor r12d, r12d
mov rcx, qword [rdi + 0x48]
test rcx, rcx
je 0x14016bb9d
movsxd rax, r14d
lea rax, [rax*4 + 4]
sub rcx, rax
mov eax, dword [rdi + 0x34]
mov dword [rcx], eax
movsxd rbx, dword [rdi + 0x34]
cmp dword [rdi + 0x38], ebx
jg 0x14016bbb2
mov rcx, rdi
call fcn.14014b500
test eax, eax
jne 0x14016bbe1
mov rax, qword [rdi + 8]
inc dword [rdi + 0x34]
mov esi, dword [rsp + 0x30]
lea rcx, [rbx + rbx*2]
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], esi
mov dword [rax + rcx*8 + 8], r15d
mov dword [rax + rcx*8 + 0xc], r12d
mov qword [rax + rcx*8 + 0x10], r12
mov word [rax + rcx*8], 0x43
jmp 0x14016bbe5
mov esi, dword [rsp + 0x30]
movsxd rbx, dword [rdi + 0x34]
cmp dword [rdi + 0x38], ebx
jg 0x14016bbfa
mov rcx, rdi
call fcn.14014b500
test eax, eax
jne 0x14016bc22
mov rax, qword [rdi + 8]
inc dword [rdi + 0x34]
lea rcx, [rbx + rbx*2]
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], esi
mov qword [rax + rcx*8 + 8], 0
mov qword [rax + rcx*8 + 0x10], r12
mov word [rax + rcx*8], 0x2b
movsxd rbx, dword [rdi + 0x34]
cmp dword [rdi + 0x38], ebx
jg 0x14016bc37
mov rcx, rdi
call fcn.14014b500
test eax, eax
jne 0x14016bc6e
mov rax, qword [rdi + 8]
inc dword [rdi + 0x34]
mov r14d, dword [rsp + 0xf0]
mov edx, dword [rsp + 0x38]
lea rcx, [rbx + rbx*2]
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], r14d
mov dword [rax + rcx*8 + 8], edx
mov dword [rax + rcx*8 + 0xc], r12d
mov qword [rax + rcx*8 + 0x10], r12
mov word [rax + rcx*8], 0xf
jmp 0x14016bc76
mov r14d, dword [rsp + 0xf0]
cmp dword [rsp + 0x34], 0
jge 0x14016bcc9
movsxd rbx, dword [rdi + 0x34]
mov dword [rsp + 0x34], ebx
cmp dword [rdi + 0x38], ebx
jg 0x14016bca0
mov rcx, rdi
call fcn.14014b500
test eax, eax
je 0x14016bca0
mov dword [rsp + 0x34], 1
jmp 0x14016bcc9
mov rax, qword [rdi + 8]
inc dword [rdi + 0x34]
lea rcx, [rbx + rbx*2]
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], r14d
mov qword [rax + rcx*8 + 8], 0
mov qword [rax + rcx*8 + 0x10], r12
mov word [rax + rcx*8], 0x1b
mov r13d, r12d
test ebp, ebp
jle 0x14016bf63
movsxd rbx, dword [rdi + 0x34]
cmp dword [rdi + 0x38], ebx
jg 0x14016bcf5
mov rcx, rdi
call fcn.14014b500
test eax, eax
je 0x14016bcf5
mov r15d, dword [rsp + 0x5c]
mov ebx, 1
jmp 0x14016bd24
mov rax, qword [rdi + 8]
inc dword [rdi + 0x34]
mov r15d, dword [rsp + 0x5c]
lea rcx, [rbx + rbx*2]
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], r12d
mov dword [rax + rcx*8 + 8], r15d
mov dword [rax + rcx*8 + 0xc], r12d
mov qword [rax + rcx*8 + 0x10], r12
mov word [rax + rcx*8], 0x5e
mov rbp, qword [rdi + 8]
mov rcx, qword [rdi]
test rbp, rbp
je 0x14016bdbd
cmp byte [rcx + 0x2a], 0
jne 0x14016bdbd
test ebx, ebx
jns 0x14016bd47
mov ebx, dword [rdi + 0x34]
dec ebx
movsxd rax, ebx
lea r12, [rax + rax*2]
movsx edx, byte [rbp + r12*8 + 1]
mov r8, qword [rbp + r12*8 + 0x10]
call fcn.14014b390
lea rax, [0x140360904]
mov qword [rbp + r12*8 + 0x10], 0
mov rbx, rax
inc rbx
cmp byte [rbx], 0
jne 0x14016bd71
mov rcx, qword [rdi]
sub ebx, eax
and ebx, 0x3fffffff
lea edx, [rbx + 1]
call fcn.140145220
mov rsi, rax
test rax, rax
je 0x14016bdad
movsxd rbx, ebx
lea rdx, [0x140360904]
mov rcx, rax
mov r8, rbx
call fcn.1400be580
mov byte [rbx + rsi], 0
mov qword [rbp + r12*8 + 0x10], rsi
mov byte [rbp + r12*8 + 1], 0xff
xor r12d, r12d
jmp 0x14016bdcb
lea r8, [0x140360904]
xor edx, edx
call fcn.14014b390
movsxd rbx, dword [rdi + 0x34]
cmp dword [rdi + 0x38], ebx
jg 0x14016bde0
mov rcx, rdi
call fcn.14014b500
test eax, eax
jne 0x14016be0e
mov rax, qword [rdi + 8]
inc dword [rdi + 0x34]
mov esi, dword [rsp + 0x38]
lea rcx, [rbx + rbx*2]
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], r15d
mov dword [rax + rcx*8 + 8], esi
mov dword [rax + rcx*8 + 0xc], esi
mov qword [rax + rcx*8 + 0x10], r12
mov word [rax + rcx*8], 0x5b
jmp 0x14016be12
mov esi, dword [rsp + 0x38]
movsxd rbx, dword [rdi + 0x34]
cmp dword [rdi + 0x38], ebx
jg 0x14016be27
mov rcx, rdi
call fcn.14014b500
test eax, eax
jne 0x14016be55
mov rcx, qword [rdi + 8]
inc dword [rdi + 0x34]
lea rdx, [rbx + rbx*2]
lea eax, [r13 + r14 + 1]
mov byte [rcx + rdx*8 + 3], 0
mov dword [rcx + rdx*8 + 4], r14d
mov dword [rcx + rdx*8 + 0xc], r15d
mov qword [rcx + rdx*8 + 0x10], r12
mov word [rcx + rdx*8], 0x56
mov dword [rcx + rdx*8 + 8], eax
movsxd rbx, dword [rdi + 0x34]
cmp dword [rdi + 0x38], ebx
jg 0x14016be6a
mov rcx, rdi
call fcn.14014b500
test eax, eax
jne 0x14016be97
mov rax, qword [rdi + 8]
inc dword [rdi + 0x34]
lea rcx, [rbx + rbx*2]
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], r15d
mov dword [rax + rcx*8 + 8], 0xffffffff
mov dword [rax + rcx*8 + 0xc], r12d
mov qword [rax + rcx*8 + 0x10], r12
mov word [rax + rcx*8], 0x14
movsxd rbx, dword [rdi + 0x34]
cmp dword [rdi + 0x38], ebx
jg 0x14016beac
mov rcx, rdi
call fcn.14014b500
test eax, eax
jne 0x14016beda
mov rcx, qword [rdi + 8]
inc dword [rdi + 0x34]
lea rdx, [rbx + rbx*2]
lea eax, [r13 + r14 + 1]
mov byte [rcx + rdx*8 + 3], 0
mov dword [rcx + rdx*8 + 8], r15d
mov dword [rcx + rdx*8 + 0xc], r15d
mov qword [rcx + rdx*8 + 0x10], r12
mov word [rcx + rdx*8], 0x59
mov dword [rcx + rdx*8 + 4], eax
movsxd rbx, dword [rdi + 0x34]
cmp dword [rdi + 0x38], ebx
jg 0x14016beef
mov rcx, rdi
call fcn.14014b500
test eax, eax
jne 0x14016bf18
mov rax, qword [rdi + 8]
inc dword [rdi + 0x34]
lea rcx, [rbx + rbx*2]
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], r15d
mov qword [rax + rcx*8 + 8], 0
mov qword [rax + rcx*8 + 0x10], r12
mov word [rax + rcx*8], 0x90
movsxd rbx, dword [rdi + 0x34]
cmp dword [rdi + 0x38], ebx
jg 0x14016bf2d
mov rcx, rdi
call fcn.14014b500
test eax, eax
jne 0x14016bf55
mov rax, qword [rdi + 8]
inc dword [rdi + 0x34]
lea rcx, [rbx + rbx*2]
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], r15d
mov dword [rax + rcx*8 + 8], esi
mov dword [rax + rcx*8 + 0xc], esi
mov qword [rax + rcx*8 + 0x10], r12
mov word [rax + rcx*8], 0x5b
inc r13d
cmp r13d, dword [rsp + 0x3c]
jl 0x14016bcd4
movsxd rbx, dword [rdi + 0x34]
cmp dword [rdi + 0x38], ebx
jg 0x14016bf84
mov rcx, rdi
call fcn.14014b500
test eax, eax
je 0x14016bf84
mov r13d, dword [rsp + 0x40]
mov ebx, 1
jmp 0x14016bfb9
mov rax, qword [rdi + 8]
inc dword [rdi + 0x34]
mov edx, dword [rsp + 0x44]
mov r13d, dword [rsp + 0x40]
lea rcx, [rbx + rbx*2]
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], edx
mov dword [rax + rcx*8 + 8], 3
mov dword [rax + rcx*8 + 0xc], r13d
mov qword [rax + rcx*8 + 0x10], r12
mov word [rax + rcx*8], 0x1e
mov rbp, qword [rdi + 8]
mov rcx, qword [rdi]
test rbp, rbp
je 0x14016c04e
cmp byte [rcx + 0x2a], 0
jne 0x14016c04e
test ebx, ebx
jns 0x14016bfdc
mov ebx, dword [rdi + 0x34]
dec ebx
movsxd rax, ebx
lea r12, [rax + rax*2]
movsx edx, byte [rbp + r12*8 + 1]
mov r8, qword [rbp + r12*8 + 0x10]
call fcn.14014b390
lea rax, [0x14037feb8]
xor r15d, r15d
mov rbx, rax
mov qword [rbp + r12*8 + 0x10], r15
inc rbx
cmp byte [rbx], r15b
jne 0x14016c005
mov rcx, qword [rdi]
sub ebx, eax
and ebx, 0x3fffffff
lea edx, [rbx + 1]
call fcn.140145220
mov rsi, rax
test rax, rax
je 0x14016c041
movsxd rbx, ebx
lea rdx, [0x14037feb8]
mov rcx, rax
mov r8, rbx
call fcn.1400be580
mov byte [rsi + rbx], r15b
mov qword [rbp + r12*8 + 0x10], rsi
mov byte [rbp + r12*8 + 1], 0xff
jmp 0x14016c05f
lea r8, [0x14037feb8]
xor edx, edx
call fcn.14014b390
xor r15d, r15d
movsxd rbx, dword [rdi + 0x34]
cmp dword [rdi + 0x38], ebx
jg 0x14016c074
mov rcx, rdi
call fcn.14014b500
test eax, eax
jne 0x14016c0a9
mov rax, qword [rdi + 8]
inc dword [rdi + 0x34]
mov esi, dword [rsp + 0xe8]
mov ebp, dword [rsp + 0x48]
lea rcx, [rbx + rbx*2]
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], esi
mov dword [rax + rcx*8 + 8], ebp
mov dword [rax + rcx*8 + 0xc], r15d
mov qword [rax + rcx*8 + 0x10], r15
mov word [rax + rcx*8], 0x36
jmp 0x14016c0b4
mov esi, dword [rsp + 0xe8]
mov ebp, dword [rsp + 0x48]
movsxd rbx, dword [rdi + 0x34]
cmp dword [rdi + 0x38], ebx
jg 0x14016c0c9
mov rcx, rdi
call fcn.14014b500
test eax, eax
jne 0x14016c0f1
mov rax, qword [rdi + 8]
inc dword [rdi + 0x34]
lea rcx, [rbx + rbx*2]
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], esi
mov dword [rax + rcx*8 + 8], r13d
mov dword [rax + rcx*8 + 0xc], ebp
mov qword [rax + rcx*8 + 0x10], r15
mov word [rax + rcx*8], 0x37
mov r8, qword [rdi + 8]
mov r15, qword [rsp + 0x60]
test r8, r8
je 0x14016c10d
movsxd rax, dword [rdi + 0x34]
lea rcx, [rax + rax*2]
mov byte [r8 + rcx*8 - 0x15], 8
mov rax, qword [rsp + 0xe0]
mov r15, qword [r15 + 0x38]
mov qword [rsp + 0x60], r15
test r15, r15
jne 0x14016b5e0
mov r12d, dword [rsp + 0x38]
mov r13d, dword [rsp + 0x30]
lea rsi, [0x14037feb8]
mov rax, qword [rsp + 0xd8]
cmp qword [rax + 0x18], 0
jne 0x14016c19d
mov ecx, dword [rsp + 0x54]
mov r9d, dword [rax + 0x20]
mov r8d, r13d
mov dword [rsp + 0x20], ecx
mov rcx, rdi
mov edx, 0x26
call fcn.14014d8e0
xor r14d, r14d
mov r9d, r12d
lea edx, [r14 + 0x1f]
mov r8d, r13d
mov rcx, rdi
mov dword [rsp + 0x20], r14d
call fcn.14014d8e0
lea edx, [r14 + 0x2b]
xor r9d, r9d
mov r8d, r13d
mov rcx, rdi
mov dword [rsp + 0x20], r14d
call fcn.14014d8e0
mov r8d, r12d
lea edx, [r14 + 0x1b]
jmp 0x14016c1c2
mov r8d, dword [rdi + 0x34]
movsxd rax, dword [rsp + 0x34]
cmp r8d, eax
jle 0x14016c1b8
lea rcx, [rax + rax*2]
mov rax, qword [rdi + 8]
mov dword [rax + rcx*8 + 8], r8d
xor r14d, r14d
xor r8d, r8d
lea edx, [r14 + 1]
xor r9d, r9d
mov rcx, rdi
mov dword [rsp + 0x20], r14d
call fcn.14014d8e0
mov r9d, dword [rsp + 0x50]
xor r8d, r8d
lea edx, [r8 + 0xa]
mov rcx, rdi
mov dword [rsp + 0x20], r14d
mov ebp, eax
call fcn.14014d8e0
mov r12d, dword [rsp + 0x40]
mov r8d, dword [rsp + 0x44]
mov r9d, 3
mov rcx, rdi
lea edx, [r9 + 0x1b]
mov dword [rsp + 0x20], r12d
call fcn.14014d8e0
mov rbx, qword [rdi + 8]
mov rcx, qword [rdi]
test rbx, rbx
je 0x14016c279
cmp byte [rcx + 0x2a], 0
jne 0x14016c279
test eax, eax
jns 0x14016c229
mov eax, dword [rdi + 0x34]
dec eax
cdqe
lea rsi, [rax + rax*2]
movsx edx, byte [rbx + rsi*8 + 1]
mov r8, qword [rbx + rsi*8 + 0x10]
call fcn.14014b390
lea rcx, [0x14037feb8]
mov qword [rbx + rsi*8 + 0x10], r14
mov rax, rcx
nop dword [rax]
inc rax
cmp byte [rax], 0
jne 0x14016c250
sub eax, ecx
mov rdx, rcx
mov rcx, qword [rdi]
and eax, 0x3fffffff
mov r8d, eax
call fcn.1401475c0
mov byte [rbx + rsi*8 + 1], 0xff
mov qword [rbx + rsi*8 + 0x10], rax
jmp 0x14016c283
mov r8, rsi
xor edx, edx
call fcn.14014b390
mov esi, dword [rsp + 0x48]
mov ebx, dword [rsp + 0xe8]
mov edx, 0x36
mov rcx, rdi
mov r9d, esi
mov r8d, ebx
mov dword [rsp + 0x20], r14d
call fcn.14014d8e0
mov r9d, r12d
mov r8d, ebx
mov edx, 0x37
mov rcx, rdi
mov dword [rsp + 0x20], esi
call fcn.14014d8e0
mov r11, qword [rdi + 8]
test r11, r11
je 0x14016c2d4
movsxd rax, dword [rdi + 0x34]
lea rcx, [rax + rax*2]
mov byte [r11 + rcx*8 - 0x15], 8
mov rcx, qword [rsp + 0xd0]
mov eax, dword [rcx + 0x58]
cmp eax, r12d
cmovl eax, r12d
mov dword [rcx + 0x58], eax
mov edx, dword [rdi + 0x34]
cmp edx, ebp
jle 0x14016c2ff
movsxd rax, ebp
lea rcx, [rax + rax*2]
mov rax, qword [rdi + 8]
mov dword [rax + rcx*8 + 8], edx
mov rbp, qword [rsp + 0x98]
mov r13, qword [rsp + 0x88]
mov rsi, qword [rsp + 0x90]
add rsp, 0xa0
pop r15
pop r14
pop r12
pop rdi
pop rbx
ret