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

Disassembly:
mov dword [rsp + 0x18], r8d
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rdi
push r12
push r13
sub rsp, 0x98
mov rdi, qword [rcx + 0x18]
mov r8, qword [rcx]
lea r12d, [r9 + 1]
mov dword [rsp + 0x50], r12d
inc r12d
mov r13, rdx
mov dword [rsp + 0x38], r12d
inc r12d
mov rbp, rcx
mov dword [rsp + 0x60], r12d
inc r12d
mov qword [rsp + 0x58], r8
mov dword [rsp + 0x40], r12d
inc r12d
mov dword [rsp + 0x48], r9d
mov dword [rsp + 0x54], r12d
inc r12d
mov dword [rsp + 0x4c], r12d
inc r12d
mov dword [rsp + 0xd8], r12d
test rdi, rdi
jne 0x180039751
mov rcx, r8
call fcn.1800213a0
mov rdi, rax
mov qword [rbp + 0x18], rax
test rax, rax
je 0x180039743
xor r9d, r9d
xor r8d, r8d
mov edx, 0x84
mov rcx, rax
mov dword [rsp + 0x20], 0
call fcn.180021570
mov r8, qword [rsp + 0x58]
test rdi, rdi
je 0x18003ac76
test r13, r13
je 0x18003ac76
cmp qword [r13 + 0x20], 0
je 0x18003ac76
mov rdx, qword [r13 + 0x80]
mov qword [rsp + 0x88], rsi
mov esi, 0xfff0bdc0
mov dword [rsp + 0x3c], esi
test rdx, rdx
je 0x1800397ab
mov ecx, dword [r8 + 8]
xor esi, esi
mov dword [rsp + 0x3c], esi
test ecx, ecx
jle 0x1800397ab
mov rax, qword [r8 + 0x10]
add rax, 0x18
cmp qword [rax], rdx
je 0x1800397a7
inc esi
add rax, 0x20
cmp esi, ecx
jl 0x180039798
mov dword [rsp + 0x3c], esi
mov rax, qword [r8 + 0x10]
mov r8, qword [r13 + 8]
xor r9d, r9d
movsxd rcx, esi
lea edx, [r9 + 0x1c]
shl rcx, 5
mov rcx, qword [rcx + rax]
mov qword [rsp + 0x20], rcx
mov rcx, rbp
call fcn.18003c3b0
test eax, eax
jne 0x18003ac6e
mov rax, qword [r13 + 8]
mov r8d, dword [r13 + 0x28]
xor r9d, r9d
mov edx, esi
mov rcx, rbp
mov qword [rsp + 0x90], rbx
mov qword [rsp + 0x20], rax
call fcn.18003c470
mov ebx, dword [rbp + 0x54]
lea eax, [rbx + 1]
mov dword [rsp + 0x30], ebx
mov dword [rbp + 0x54], eax
mov r13, qword [r13 + 0x20]
mov qword [rsp + 0x68], r13
test r13, r13
je 0x18003ac66
mov qword [rsp + 0x80], r14
mov qword [rsp + 0x78], r15
nop dword [rax + rax]
mov r15d, dword [r13 + 8]
mov rdx, r13
mov rcx, rbp
call fcn.1800430e0
lea r14d, [r15 + r15]
mov rbp, rax
mov rax, qword [rsp + 0xc0]
lea ecx, [r14 + r12 + 1]
cmp ecx, dword [rax + 0x58]
jle 0x18003985b
mov dword [rax + 0x58], ecx
mov r9d, dword [r13 + 0x28]
mov r8d, ebx
mov edx, 0x26
mov rcx, rdi
mov dword [rsp + 0x20], esi
call fcn.180021570
mov rsi, qword [rdi + 0x20]
mov rcx, qword [rdi]
test rsi, rsi
je 0x1800398d0
cmp byte [rcx + 0x2a], 0
jne 0x1800398d0
test eax, eax
jns 0x18003988e
mov eax, dword [rdi + 0x18]
dec eax
cdqe
lea rbx, [rax + rax*2]
movsx edx, byte [rsi + rbx*8 + 1]
mov r8, qword [rsi + rbx*8 + 0x10]
call fcn.180021a30
xor ecx, ecx
mov qword [rsi + rbx*8 + 0x10], rcx
test rbp, rbp
jne 0x1800398ba
mov qword [rsi + rbx*8 + 0x10], rcx
mov byte [rsi + rbx*8 + 1], cl
jmp 0x1800398df
mov qword [rsi + rbx*8 + 0x10], rbp
mov byte [rsi + rbx*8 + 1], 0xfa
jmp 0x1800398df
mov r8, rbp
mov edx, 0xfffffff0
call fcn.180021a30
xor ecx, ecx
mov rax, qword [rsp + 0xc8]
cmp qword [rax + 0x20], r13
jne 0x180039993
mov r9d, dword [rsp + 0x48]
mov rbp, qword [rax + 8]
xor r8d, r8d
mov dword [rsp + 0x20], ecx
lea edx, [r8 + 0x5e]
mov rcx, rdi
call fcn.180021570
mov rsi, qword [rdi + 0x20]
mov rcx, qword [rdi]
test rsi, rsi
je 0x180039989
cmp byte [rcx + 0x2a], 0
jne 0x180039989
test eax, eax
jns 0x180039928
mov eax, dword [rdi + 0x18]
dec eax
cdqe
lea rbx, [rax + rax*2]
movsx edx, byte [rsi + rbx*8 + 1]
mov r8, qword [rsi + rbx*8 + 0x10]
call fcn.180021a30
xor eax, eax
mov qword [rsi + rbx*8 + 0x10], rax
test rbp, rbp
jne 0x180039954
mov qword [rsi + rbx*8 + 0x10], rax
mov byte [rsi + rbx*8 + 1], al
jmp 0x180039993
cmp byte [rbp], 0
mov rax, rbp
je 0x180039968
nop dword [rax]
inc rax
cmp byte [rax], 0
jne 0x180039960
mov rcx, qword [rdi]
sub eax, ebp
mov rdx, rbp
and eax, 0x3fffffff
mov r8d, eax
call fcn.1800078f0
mov byte [rsi + rbx*8 + 1], 0xff
mov qword [rsi + rbx*8 + 0x10], rax
jmp 0x180039993
mov r8, rbp
xor edx, edx
call fcn.180021a30
mov rbp, qword [r13]
mov r9d, dword [rsp + 0x50]
xor r13d, r13d
lea edx, [r13 + 0x5e]
xor r8d, r8d
mov rcx, rdi
mov dword [rsp + 0x20], r13d
call fcn.180021570
mov rsi, qword [rdi + 0x20]
mov rcx, qword [rdi]
test rsi, rsi
je 0x180039a2b
cmp byte [rcx + 0x2a], r13b
jne 0x180039a2b
test eax, eax
jns 0x1800399ce
mov eax, dword [rdi + 0x18]
dec eax
cdqe
lea rbx, [rax + rax*2]
movsx edx, byte [rsi + rbx*8 + 1]
mov r8, qword [rsi + rbx*8 + 0x10]
call fcn.180021a30
mov qword [rsi + rbx*8 + 0x10], r13
test rbp, rbp
jne 0x1800399f9
mov qword [rsi + rbx*8 + 0x10], rbp
mov byte [rsi + rbx*8 + 1], bpl
jmp 0x180039a37
mov rax, rbp
cmp byte [rbp], r13b
je 0x180039a0a
inc rax
cmp byte [rax], r13b
jne 0x180039a02
mov rcx, qword [rdi]
sub eax, ebp
mov rdx, rbp
and eax, 0x3fffffff
mov r8d, eax
call fcn.1800078f0
mov byte [rsi + rbx*8 + 1], 0xff
mov qword [rsi + rbx*8 + 0x10], rax
jmp 0x180039a35
mov r8, rbp
xor edx, edx
call fcn.180021a30
xor ebp, ebp
mov ebx, ebp
test r15d, r15d
js 0x180039a8e
nop
movsxd rsi, dword [rdi + 0x18]
cmp dword [rdi + 0x1c], esi
jg 0x180039a55
mov rcx, rdi
call fcn.1800214d0
test eax, eax
jne 0x180039a87
mov rcx, qword [rdi + 0x20]
inc dword [rdi + 0x18]
lea rdx, [rsi + rsi*2]
lea eax, [rbx + r12]
mov byte [rcx + rdx*8 + 3], r13b
mov dword [rcx + rdx*8 + 4], ebp
mov dword [rcx + rdx*8 + 0xc], ebp
mov qword [rcx + rdx*8 + 0x10], rbp
mov word [rcx + rdx*8], 7
mov dword [rcx + rdx*8 + 8], eax
mov byte [rdi + 0xa2], r13b
inc ebx
cmp ebx, r15d
jle 0x180039a40
mov ebx, ebp
test r15d, r15d
jle 0x180039aec
movsxd rsi, dword [rdi + 0x18]
cmp dword [rdi + 0x1c], esi
jg 0x180039aaa
mov rcx, rdi
call fcn.1800214d0
test eax, eax
jne 0x180039ae5
mov rdx, qword [rdi + 0x20]
inc dword [rdi + 0x18]
lea r8, [rsi + rsi*2]
lea eax, [rbx + r15]
mov byte [rdx + r8*8 + 3], r13b
mov dword [rdx + r8*8 + 4], ebp
lea ecx, [rax + r12 + 1]
mov dword [rdx + r8*8 + 0xc], ebp
mov qword [rdx + r8*8 + 0x10], rbp
mov dword [rdx + r8*8 + 8], ecx
mov word [rdx + r8*8], 0xa
mov byte [rdi + 0xa2], r13b
inc ebx
cmp ebx, r15d
jl 0x180039a95
movsxd r12, dword [rdi + 0x28]
mov r8d, dword [rdi + 0x2c]
lea eax, [r12 + 1]
mov dword [rdi + 0x28], eax
cmp r12d, r8d
jl 0x180039ba5
mov rsi, qword [rdi + 0x30]
mov rbx, qword [rdi]
lea r8d, [r8 + r8 + 5]
mov rdx, rsi
mov rcx, rbx
shl r8d, 2
call fcn.180007700
mov rbp, rax
test rax, rax
jne 0x180039b65
test rbx, rbx
je 0x180039b5d
test rsi, rsi
je 0x180039b5d
cmp rsi, qword [rbx + 0x158]
jb 0x180039b5d
cmp rsi, qword [rbx + 0x160]
jae 0x180039b5d
mov rax, qword [rbx + 0x150]
mov qword [rsi], rax
dec dword [rbx + 0x144]
mov qword [rbx + 0x150], rsi
jmp 0x180039b65
mov rcx, rsi
call sym.sqlite3.dll_sqlite3_free
mov rax, qword [rdi]
mov qword [rdi + 0x30], rbp
test rax, rax
je 0x180039b91
test rbp, rbp
je 0x180039b91
cmp rbp, qword [rax + 0x158]
jb 0x180039b91
cmp rbp, qword [rax + 0x160]
jae 0x180039b91
movzx eax, word [rax + 0x140]
jmp 0x180039b9a
mov rcx, rbp
call qword [0x1800ac420]
cdqe
shr rax, 2
xor ebp, ebp
mov dword [rdi + 0x2c], eax
mov rcx, qword [rdi + 0x30]
test rcx, rcx
je 0x180039bb6
mov dword [rcx + r12*4], 0xffffffff
movsxd rbx, dword [rdi + 0x18]
or r13d, 0xffffffff
sub r13d, r12d
mov dword [rsp + 0x44], r13d
cmp dword [rdi + 0x1c], ebx
jg 0x180039bd7
mov rcx, rdi
call fcn.1800214d0
test eax, eax
jne 0x180039c0a
mov rax, qword [rdi + 0x20]
inc dword [rdi + 0x18]
mov edx, dword [rsp + 0x30]
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], r13d
mov dword [rax + rcx*8 + 0xc], ebp
mov qword [rax + rcx*8 + 0x10], rbp
mov word [rax + rcx*8], 0x40
mov byte [rdi + 0xa2], 0
movsxd r12, dword [rdi + 0x18]
mov dword [rsp + 0x34], r12d
cmp dword [rdi + 0x1c], r12d
jg 0x180039c25
mov rcx, rdi
call fcn.1800214d0
test eax, eax
jne 0x180039c5b
mov rax, qword [rdi + 0x20]
inc dword [rdi + 0x18]
mov edx, dword [rsp + 0xd8]
lea rcx, [r12 + r12*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], rbp
mov word [rax + rcx*8], 0x14
mov byte [rdi + 0xa2], 0
test r15d, r15d
jle 0x180039e1d
mov r14d, dword [rsp + 0xd8]
mov r13d, dword [rsp + 0x30]
mov r12d, dword [rsp + 0x60]
nop word [rax + rax]
movsxd rsi, dword [rdi + 0x18]
mov eax, dword [rdi + 0x1c]
cmp eax, esi
jg 0x180039cfb
test eax, eax
je 0x180039c93
add eax, eax
jmp 0x180039c98
mov eax, 0x2a
mov rdx, qword [rdi + 0x20]
mov rcx, qword [rdi]
lea r8d, [rax + rax*2]
shl r8d, 3
call fcn.180007700
mov rbx, rax
test rax, rax
je 0x180039d2f
mov rcx, qword [rdi]
test rcx, rcx
je 0x180039cd7
cmp rax, qword [rcx + 0x158]
jb 0x180039cd7
cmp rax, qword [rcx + 0x160]
jae 0x180039cd7
movzx eax, word [rcx + 0x140]
jmp 0x180039ce0
mov rcx, rax
call qword [0x1800ac420]
movsxd rcx, eax
movabs rax, 0xaaaaaaaaaaaaaaab
mov qword [rdi + 0x20], rbx
mul rcx
shr rdx, 4
mov dword [rdi + 0x1c], edx
mov rax, qword [rdi + 0x20]
inc dword [rdi + 0x18]
lea rcx, [rsi + rsi*2]
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], r13d
mov dword [rax + rcx*8 + 8], ebp
mov dword [rax + rcx*8 + 0xc], r12d
mov qword [rax + rcx*8 + 0x10], 0
mov word [rax + rcx*8], 0x1c
mov byte [rdi + 0xa2], 0
movsxd rsi, dword [rdi + 0x18]
mov eax, dword [rdi + 0x1c]
cmp eax, esi
jg 0x180039dae
test eax, eax
je 0x180039d42
add eax, eax
jmp 0x180039d47
mov eax, 0x2a
mov rdx, qword [rdi + 0x20]
mov rcx, qword [rdi]
lea r8d, [rax + rax*2]
shl r8d, 3
call fcn.180007700
mov rbx, rax
test rax, rax
je 0x180039dee
mov rcx, qword [rdi]
test rcx, rcx
je 0x180039d8a
cmp rax, qword [rcx + 0x158]
jb 0x180039d8a
cmp rax, qword [rcx + 0x160]
jae 0x180039d8a
movzx eax, word [rcx + 0x140]
jmp 0x180039d93
mov rcx, rax
call qword [0x1800ac420]
movsxd rcx, eax
movabs rax, 0xaaaaaaaaaaaaaaab
mov qword [rdi + 0x20], rbx
mul rcx
shr rdx, 4
mov dword [rdi + 0x1c], edx
inc dword [rdi + 0x18]
mov rdx, qword [rdi + 0x20]
lea r8, [rsi + rsi*2]
xor r9d, r9d
lea eax, [rbp + r15]
mov byte [rdx + r8*8 + 3], 0
lea ecx, [rax + r14 + 1]
mov dword [rdx + r8*8 + 4], r12d
mov word [rdx + r8*8], 0x4b
mov dword [rdx + r8*8 + 8], r9d
mov qword [rdx + r8*8 + 0x10], r9
mov dword [rdx + r8*8 + 0xc], ecx
mov byte [rdi + 0xa2], r9b
mov rdx, qword [rdi + 0x20]
test rdx, rdx
je 0x180039e04
movsxd rax, dword [rdi + 0x18]
lea rcx, [rax + rax*2]
mov byte [rdx + rcx*8 - 0x15], 8
inc ebp
cmp ebp, r15d
jl 0x180039c80
mov r13d, dword [rsp + 0x44]
mov r12d, dword [rsp + 0x34]
lea r14d, [r15 + r15]
mov rax, qword [rsp + 0x58]
cmp byte [rax + 0x2a], 0
jne 0x18003ac59
movsxd rbx, dword [rdi + 0x18]
cmp dword [rdi + 0x1c], ebx
jg 0x180039e41
mov rcx, rdi
call fcn.1800214d0
test eax, eax
jne 0x180039e77
inc dword [rdi + 0x18]
mov rax, qword [rdi + 0x20]
lea rcx, [rbx + rbx*2]
xor r8d, r8d
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 8], r13d
mov dword [rax + rcx*8 + 4], r8d
mov dword [rax + rcx*8 + 0xc], r8d
mov qword [rax + rcx*8 + 0x10], r8
mov word [rax + rcx*8], 1
mov byte [rdi + 0xa2], r8b
jmp 0x180039e7a
xor r8d, r8d
mov ebp, r8d
test r15d, r15d
jle 0x18003a03a
mov r12d, dword [rsp + 0xd8]
mov r13d, dword [rsp + 0x30]
mov edx, dword [rdi + 0x18]
mov eax, edx
sub eax, r14d
cmp edx, eax
jle 0x180039ead
cdqe
lea rcx, [rax + rax*2]
mov rax, qword [rdi + 0x20]
mov dword [rax + rcx*8 + 8], edx
movsxd rsi, dword [rdi + 0x18]
mov eax, dword [rdi + 0x1c]
cmp eax, esi
jg 0x180039f2b
test eax, eax
je 0x180039ec0
add eax, eax
jmp 0x180039ec5
mov eax, 0x2a
mov rdx, qword [rdi + 0x20]
mov rcx, qword [rdi]
lea r8d, [rax + rax*2]
shl r8d, 3
call fcn.180007700
mov rbx, rax
test rax, rax
je 0x180039f5f
mov rcx, qword [rdi]
test rcx, rcx
je 0x180039f04
cmp rax, qword [rcx + 0x158]
jb 0x180039f04
cmp rax, qword [rcx + 0x160]
jae 0x180039f04
movzx eax, word [rcx + 0x140]
jmp 0x180039f0d
mov rcx, rax
call qword [0x1800ac420]
movsxd rcx, eax
movabs rax, 0xaaaaaaaaaaaaaaab
mov qword [rdi + 0x20], rbx
mul rcx
shr rdx, 4
xor r8d, r8d
mov dword [rdi + 0x1c], edx
mov rcx, qword [rdi + 0x20]
inc dword [rdi + 0x18]
lea rdx, [rsi + rsi*2]
lea eax, [rbp + r12 + 1]
mov byte [rcx + rdx*8 + 3], 0
mov qword [rcx + rdx*8 + 8], 1
mov qword [rcx + rdx*8 + 0x10], r8
mov word [rcx + rdx*8], 0x14
mov dword [rcx + rdx*8 + 4], eax
mov byte [rdi + 0xa2], 0
movsxd rsi, dword [rdi + 0x18]
mov eax, dword [rdi + 0x1c]
cmp eax, esi
jg 0x180039fde
test eax, eax
je 0x180039f72
add eax, eax
jmp 0x180039f77
mov eax, 0x2a
mov rdx, qword [rdi + 0x20]
mov rcx, qword [rdi]
lea r8d, [rax + rax*2]
shl r8d, 3
call fcn.180007700
mov rbx, rax
test rax, rax
je 0x18003a01f
mov rcx, qword [rdi]
test rcx, rcx
je 0x180039fba
cmp rax, qword [rcx + 0x158]
jb 0x180039fba
cmp rax, qword [rcx + 0x160]
jae 0x180039fba
movzx eax, word [rcx + 0x140]
jmp 0x180039fc3
mov rcx, rax
call qword [0x1800ac420]
movsxd rcx, eax
movabs rax, 0xaaaaaaaaaaaaaaab
mov qword [rdi + 0x20], rbx
mul rcx
shr rdx, 4
mov dword [rdi + 0x1c], edx
mov rdx, qword [rdi + 0x20]
inc dword [rdi + 0x18]
lea r8, [rsi + rsi*2]
lea eax, [rbp + r15]
mov byte [rdx + r8*8 + 3], 0
mov dword [rdx + r8*8 + 4], r13d
lea ecx, [rax + r12 + 1]
mov dword [rdx + r8*8 + 8], ebp
mov qword [rdx + r8*8 + 0x10], 0
mov dword [rdx + r8*8 + 0xc], ecx
mov word [rdx + r8*8], 0x1c
mov byte [rdi + 0xa2], 0
inc ebp
mov r8d, 0
cmp ebp, r15d
jl 0x180039e93
mov r13d, dword [rsp + 0x44]
mov r12d, dword [rsp + 0x34]
mov rcx, qword [rdi + 0x30]
test rcx, rcx
je 0x18003a056
movsxd rax, r13d
lea rax, [rax*4 + 4]
sub rcx, rax
mov eax, dword [rdi + 0x18]
mov dword [rcx], eax
movsxd rsi, dword [rdi + 0x18]
mov eax, dword [rdi + 0x1c]
cmp eax, esi
jg 0x18003a0d5
test eax, eax
je 0x18003a069
add eax, eax
jmp 0x18003a06e
mov eax, 0x2a
mov rdx, qword [rdi + 0x20]
mov rcx, qword [rdi]
lea r8d, [rax + rax*2]
shl r8d, 3
call fcn.180007700
mov rbx, rax
test rax, rax
je 0x18003a10e
mov rcx, qword [rdi]
test rcx, rcx
je 0x18003a0b1
cmp rax, qword [rcx + 0x158]
jb 0x18003a0b1
cmp rax, qword [rcx + 0x160]
jae 0x18003a0b1
movzx eax, word [rcx + 0x140]
jmp 0x18003a0ba
mov rcx, rax
call qword [0x1800ac420]
movsxd rcx, eax
movabs rax, 0xaaaaaaaaaaaaaaab
mov qword [rdi + 0x20], rbx
mul rcx
shr rdx, 4
mov dword [rdi + 0x1c], edx
inc dword [rdi + 0x18]
mov rax, qword [rdi + 0x20]
mov ebp, dword [rsp + 0x30]
lea rcx, [rsi + rsi*2]
mov dword [rax + rcx*8 + 8], r12d
xor r12d, r12d
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], ebp
mov word [rax + rcx*8], 0x42
mov dword [rax + rcx*8 + 0xc], r12d
mov qword [rax + rcx*8 + 0x10], r12
mov byte [rdi + 0xa2], r12b
jmp 0x18003a115
mov ebp, dword [rsp + 0x30]
xor r12d, r12d
movsxd rsi, dword [rdi + 0x18]
mov eax, dword [rdi + 0x1c]
cmp eax, esi
jg 0x18003a190
test eax, eax
je 0x18003a128
add eax, eax
jmp 0x18003a12d
mov eax, 0x2a
mov rdx, qword [rdi + 0x20]
mov rcx, qword [rdi]
lea r8d, [rax + rax*2]
shl r8d, 3
call fcn.180007700
mov rbx, rax
test rax, rax
je 0x18003a1bf
mov rcx, qword [rdi]
test rcx, rcx
je 0x18003a16c
cmp rax, qword [rcx + 0x158]
jb 0x18003a16c
cmp rax, qword [rcx + 0x160]
jae 0x18003a16c
movzx eax, word [rcx + 0x140]
jmp 0x18003a175
mov rcx, rax
call qword [0x1800ac420]
movsxd rcx, eax
movabs rax, 0xaaaaaaaaaaaaaaab
mov qword [rdi + 0x20], rbx
mul rcx
shr rdx, 4
mov dword [rdi + 0x1c], edx
mov rax, qword [rdi + 0x20]
inc dword [rdi + 0x18]
lea rcx, [rsi + rsi*2]
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], ebp
mov qword [rax + rcx*8 + 8], 0
mov qword [rax + rcx*8 + 0x10], r12
mov word [rax + rcx*8], 0x2a
mov byte [rdi + 0xa2], 0
movsxd r14, dword [rdi + 0x18]
mov eax, dword [rdi + 0x1c]
mov dword [rsp + 0x34], r14d
cmp eax, r14d
jg 0x18003a244
test eax, eax
je 0x18003a1d8
add eax, eax
jmp 0x18003a1dd
mov eax, 0x2a
mov rdx, qword [rdi + 0x20]
mov rcx, qword [rdi]
lea r8d, [rax + rax*2]
shl r8d, 3
call fcn.180007700
mov rbx, rax
test rax, rax
je 0x18003a291
mov rcx, qword [rdi]
test rcx, rcx
je 0x18003a220
cmp rax, qword [rcx + 0x158]
jb 0x18003a220
cmp rax, qword [rcx + 0x160]
jae 0x18003a220
movzx eax, word [rcx + 0x140]
jmp 0x18003a229
mov rcx, rax
call qword [0x1800ac420]
movsxd rcx, eax
movabs rax, 0xaaaaaaaaaaaaaaab
mov qword [rdi + 0x20], rbx
mul rcx
shr rdx, 4
mov dword [rdi + 0x1c], edx
mov rax, qword [rdi + 0x20]
inc dword [rdi + 0x18]
mov ebp, dword [rsp + 0xd8]
lea rcx, [r14 + r14*2]
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], ebp
mov qword [rax + rcx*8 + 8], 0
mov qword [rax + rcx*8 + 0x10], r12
mov word [rax + rcx*8], 0x1b
mov byte [rdi + 0xa2], 0
movsxd rsi, dword [rdi + 0x18]
mov eax, dword [rdi + 0x1c]
cmp eax, esi
jg 0x18003a30d
test eax, eax
je 0x18003a2a5
add eax, eax
jmp 0x18003a2aa
mov ebp, dword [rsp + 0xd8]
mov r14d, 1
mov dword [rsp + 0x34], r14d
jmp 0x18003a27a
mov eax, 0x2a
mov rdx, qword [rdi + 0x20]
mov rcx, qword [rdi]
lea r8d, [rax + rax*2]
shl r8d, 3
call fcn.180007700
mov rbx, rax
test rax, rax
je 0x18003a343
mov rcx, qword [rdi]
test rcx, rcx
je 0x18003a2e9
cmp rax, qword [rcx + 0x158]
jb 0x18003a2e9
cmp rax, qword [rcx + 0x160]
jae 0x18003a2e9
movzx eax, word [rcx + 0x140]
jmp 0x18003a2f2
mov rcx, rax
call qword [0x1800ac420]
movsxd rcx, eax
movabs rax, 0xaaaaaaaaaaaaaaab
mov qword [rdi + 0x20], rbx
mul rcx
shr rdx, 4
mov dword [rdi + 0x1c], edx
inc dword [rdi + 0x18]
mov rax, qword [rdi + 0x20]
mov edx, dword [rsp + 0x38]
lea rcx, [rsi + rsi*2]
mov dword [rax + rcx*8 + 4], ebp
xor ebp, ebp
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 8], edx
mov word [rax + rcx*8], 0xf
mov dword [rax + rcx*8 + 0xc], ebp
mov qword [rax + rcx*8 + 0x10], rbp
mov byte [rdi + 0xa2], bpl
jmp 0x18003a345
xor ebp, ebp
mov r13d, ebp
test r15d, r15d
jle 0x18003a913
mov r14d, dword [rsp + 0x54]
nop word [rax + rax]
movsxd rsi, dword [rdi + 0x18]
mov eax, dword [rdi + 0x1c]
cmp eax, esi
jg 0x18003a3df
test eax, eax
je 0x18003a373
add eax, eax
jmp 0x18003a378
mov eax, 0x2a
mov rdx, qword [rdi + 0x20]
mov rcx, qword [rdi]
lea r8d, [rax + rax*2]
shl r8d, 3
call fcn.180007700
mov rbx, rax
test rax, rax
je 0x18003a4ab
mov rcx, qword [rdi]
test rcx, rcx
je 0x18003a3bb
cmp rax, qword [rcx + 0x158]
jb 0x18003a3bb
cmp rax, qword [rcx + 0x160]
jae 0x18003a3bb
movzx eax, word [rcx + 0x140]
jmp 0x18003a3c4
mov rcx, rax
call qword [0x1800ac420]
movsxd rcx, eax
movabs rax, 0xaaaaaaaaaaaaaaab
mov qword [rdi + 0x20], rbx
mul rcx
shr rdx, 4
mov dword [rdi + 0x1c], edx
mov rax, qword [rdi + 0x20]
inc dword [rdi + 0x18]
lea rcx, [rsi + rsi*2]
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], ebp
mov dword [rax + rcx*8 + 8], r14d
mov dword [rax + rcx*8 + 0xc], ebp
mov qword [rax + rcx*8 + 0x10], rbp
mov word [rax + rcx*8], 0x5e
mov byte [rdi + 0xa2], 0
mov r12, qword [rdi + 0x20]
mov rcx, qword [rdi]
test r12, r12
je 0x18003a4b5
cmp byte [rcx + 0x2a], 0
jne 0x18003a4b5
test esi, esi
jns 0x18003a431
mov esi, dword [rdi + 0x18]
dec esi
movsxd rax, esi
lea rbp, [rax + rax*2]
movsx edx, byte [r12 + rbp*8 + 1]
mov r8, qword [r12 + rbp*8 + 0x10]
call fcn.180021a30
lea rax, [0x18009c9d8]
mov qword [r12 + rbp*8 + 0x10], 0
mov rbx, rax
nop dword [rax + rax]
inc rbx
cmp byte [rbx], 0
jne 0x18003a460
mov rcx, qword [rdi]
sub ebx, eax
and ebx, 0x3fffffff
lea edx, [rbx + 1]
call fcn.180007670
mov rsi, rax
test rax, rax
je 0x18003a49c
movsxd rbx, ebx
lea rdx, [0x18009c9d8]
mov rcx, rax
mov r8, rbx
call fcn.180087310
mov byte [rsi + rbx], 0
mov qword [r12 + rbp*8 + 0x10], rsi
mov byte [r12 + rbp*8 + 1], 0xff
xor ebp, ebp
jmp 0x18003a4c3
mov esi, 1
jmp 0x18003a40e
lea r8, [0x18009c9d8]
xor edx, edx
call fcn.180021a30
movsxd rsi, dword [rdi + 0x18]
mov eax, dword [rdi + 0x1c]
cmp eax, esi
jg 0x18003a53e
test eax, eax
je 0x18003a4d6
add eax, eax
jmp 0x18003a4db
mov eax, 0x2a
mov rdx, qword [rdi + 0x20]
mov rcx, qword [rdi]
lea r8d, [rax + rax*2]
shl r8d, 3
call fcn.180007700
mov rbx, rax
test rax, rax
je 0x18003a576
mov rcx, qword [rdi]
test rcx, rcx
je 0x18003a51a
cmp rax, qword [rcx + 0x158]
jb 0x18003a51a
cmp rax, qword [rcx + 0x160]
jae 0x18003a51a
movzx eax, word [rcx + 0x140]
jmp 0x18003a523
mov rcx, rax
call qword [0x1800ac420]
movsxd rcx, eax
movabs rax, 0xaaaaaaaaaaaaaaab
mov qword [rdi + 0x20], rbx
mul rcx
shr rdx, 4
mov dword [rdi + 0x1c], edx
mov rax, qword [rdi + 0x20]
inc dword [rdi + 0x18]
mov r12d, dword [rsp + 0x38]
lea rcx, [rsi + rsi*2]
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], r14d
mov dword [rax + rcx*8 + 8], r12d
mov dword [rax + rcx*8 + 0xc], r12d
mov qword [rax + rcx*8 + 0x10], rbp
mov word [rax + rcx*8], 0x5b
mov byte [rdi + 0xa2], 0
jmp 0x18003a57b
mov r12d, dword [rsp + 0x38]
movsxd rsi, dword [rdi + 0x18]
mov eax, dword [rdi + 0x1c]
cmp eax, esi
jg 0x18003a5fa
test eax, eax
je 0x18003a58e
add eax, eax
jmp 0x18003a593
mov eax, 0x2a
mov rdx, qword [rdi + 0x20]
mov rcx, qword [rdi]
lea r8d, [rax + rax*2]
shl r8d, 3
call fcn.180007700
mov rbx, rax
test rax, rax
je 0x18003a63b
mov rcx, qword [rdi]
test rcx, rcx
je 0x18003a5d6
cmp rax, qword [rcx + 0x158]
jb 0x18003a5d6
cmp rax, qword [rcx + 0x160]
jae 0x18003a5d6
movzx eax, word [rcx + 0x140]
jmp 0x18003a5df
mov rcx, rax
call qword [0x1800ac420]
movsxd rcx, eax
movabs rax, 0xaaaaaaaaaaaaaaab
mov qword [rdi + 0x20], rbx
mul rcx
shr rdx, 4
mov dword [rdi + 0x1c], edx
mov rcx, qword [rdi + 0x20]
inc dword [rdi + 0x18]
mov ebp, dword [rsp + 0xd8]
lea rdx, [rsi + rsi*2]
lea eax, [r13 + rbp + 1]
mov dword [rcx + rdx*8 + 8], eax
mov byte [rcx + rdx*8 + 3], 0
mov dword [rcx + rdx*8 + 4], ebp
mov dword [rcx + rdx*8 + 0xc], r14d
mov qword [rcx + rdx*8 + 0x10], 0
mov word [rcx + rdx*8], 0x56
mov byte [rdi + 0xa2], 0
jmp 0x18003a642
mov ebp, dword [rsp + 0xd8]
movsxd rsi, dword [rdi + 0x18]
mov eax, dword [rdi + 0x1c]
cmp eax, esi
jg 0x18003a6bd
test eax, eax
je 0x18003a655
add eax, eax
jmp 0x18003a65a
mov eax, 0x2a
mov rdx, qword [rdi + 0x20]
mov rcx, qword [rdi]
lea r8d, [rax + rax*2]
shl r8d, 3
call fcn.180007700
mov rbx, rax
test rax, rax
je 0x18003a6f1
mov rcx, qword [rdi]
test rcx, rcx
je 0x18003a699
cmp rax, qword [rcx + 0x158]
jb 0x18003a699
cmp rax, qword [rcx + 0x160]
jae 0x18003a699
movzx eax, word [rcx + 0x140]
jmp 0x18003a6a2
mov rcx, rax
call qword [0x1800ac420]
movsxd rcx, eax
movabs rax, 0xaaaaaaaaaaaaaaab
mov qword [rdi + 0x20], rbx
mul rcx
shr rdx, 4
mov dword [rdi + 0x1c], edx
inc dword [rdi + 0x18]
mov rax, qword [rdi + 0x20]
lea rcx, [rsi + rsi*2]
xor edx, edx
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], r14d
mov dword [rax + rcx*8 + 8], 0xffffffff
mov word [rax + rcx*8], 0x14
mov dword [rax + rcx*8 + 0xc], edx
mov qword [rax + rcx*8 + 0x10], rdx
mov byte [rdi + 0xa2], dl
movsxd rsi, dword [rdi + 0x18]
mov eax, dword [rdi + 0x1c]
cmp eax, esi
jg 0x18003a770
test eax, eax
je 0x18003a704
add eax, eax
jmp 0x18003a709
mov eax, 0x2a
mov rdx, qword [rdi + 0x20]
mov rcx, qword [rdi]
lea r8d, [rax + rax*2]
shl r8d, 3
call fcn.180007700
mov rbx, rax
test rax, rax
je 0x18003a7a9
mov rcx, qword [rdi]
test rcx, rcx
je 0x18003a74c
cmp rax, qword [rcx + 0x158]
jb 0x18003a74c
cmp rax, qword [rcx + 0x160]
jae 0x18003a74c
movzx eax, word [rcx + 0x140]
jmp 0x18003a755
mov rcx, rax
call qword [0x1800ac420]
movsxd rcx, eax
movabs rax, 0xaaaaaaaaaaaaaaab
mov qword [rdi + 0x20], rbx
mul rcx
shr rdx, 4
mov dword [rdi + 0x1c], edx
inc dword [rdi + 0x18]
mov rcx, qword [rdi + 0x20]
lea rdx, [rsi + rsi*2]
lea eax, [r13 + rbp + 1]
xor ebp, ebp
mov byte [rcx + rdx*8 + 3], 0
mov dword [rcx + rdx*8 + 8], r14d
mov dword [rcx + rdx*8 + 0xc], r14d
mov word [rcx + rdx*8], 0x59
mov dword [rcx + rdx*8 + 4], eax
mov qword [rcx + rdx*8 + 0x10], rbp
mov byte [rdi + 0xa2], bpl
jmp 0x18003a7ab
xor ebp, ebp
movsxd rsi, dword [rdi + 0x18]
mov eax, dword [rdi + 0x1c]
cmp eax, esi
jg 0x18003a826
test eax, eax
je 0x18003a7be
add eax, eax
jmp 0x18003a7c3
mov eax, 0x2a
mov rdx, qword [rdi + 0x20]
mov rcx, qword [rdi]
lea r8d, [rax + rax*2]
shl r8d, 3
call fcn.180007700
mov rbx, rax
test rax, rax
je 0x18003a856
mov rcx, qword [rdi]
test rcx, rcx
je 0x18003a802
cmp rax, qword [rcx + 0x158]
jb 0x18003a802
cmp rax, qword [rcx + 0x160]
jae 0x18003a802
movzx eax, word [rcx + 0x140]
jmp 0x18003a80b
mov rcx, rax
call qword [0x1800ac420]
movsxd rcx, eax
movabs rax, 0xaaaaaaaaaaaaaaab
mov qword [rdi + 0x20], rbx
mul rcx
shr rdx, 4
mov dword [rdi + 0x1c], edx
mov rax, qword [rdi + 0x20]
inc dword [rdi + 0x18]
lea rcx, [rsi + rsi*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], rbp
mov word [rax + rcx*8], 0x90
mov byte [rdi + 0xa2], 0
movsxd rsi, dword [rdi + 0x18]
mov eax, dword [rdi + 0x1c]
cmp eax, esi
jg 0x18003a8d1
test eax, eax
je 0x18003a869
add eax, eax
jmp 0x18003a86e
mov eax, 0x2a
mov rdx, qword [rdi + 0x20]
mov rcx, qword [rdi]
lea r8d, [rax + rax*2]
shl r8d, 3
call fcn.180007700
mov rbx, rax
test rax, rax
je 0x18003a902
mov rcx, qword [rdi]
test rcx, rcx
je 0x18003a8ad
cmp rax, qword [rcx + 0x158]
jb 0x18003a8ad
cmp rax, qword [rcx + 0x160]
jae 0x18003a8ad
movzx eax, word [rcx + 0x140]
jmp 0x18003a8b6
mov rcx, rax
call qword [0x1800ac420]
movsxd rcx, eax
movabs rax, 0xaaaaaaaaaaaaaaab
mov qword [rdi + 0x20], rbx
mul rcx
shr rdx, 4
mov dword [rdi + 0x1c], edx
mov rax, qword [rdi + 0x20]
inc dword [rdi + 0x18]
lea rcx, [rsi + rsi*2]
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], r14d
mov dword [rax + rcx*8 + 8], r12d
mov dword [rax + rcx*8 + 0xc], r12d
mov qword [rax + rcx*8 + 0x10], rbp
mov word [rax + rcx*8], 0x5b
mov byte [rdi + 0xa2], 0
inc r13d
cmp r13d, r15d
jl 0x18003a360
mov r14d, dword [rsp + 0x34]
movsxd rsi, dword [rdi + 0x18]
mov eax, dword [rdi + 0x1c]
cmp eax, esi
jg 0x18003a992
test eax, eax
je 0x18003a926
add eax, eax
jmp 0x18003a92b
mov eax, 0x2a
mov rdx, qword [rdi + 0x20]
mov rcx, qword [rdi]
lea r8d, [rax + rax*2]
shl r8d, 3
call fcn.180007700
mov rbx, rax
test rax, rax
je 0x18003aa69
mov rcx, qword [rdi]
test rcx, rcx
je 0x18003a96e
cmp rax, qword [rcx + 0x158]
jb 0x18003a96e
cmp rax, qword [rcx + 0x160]
jae 0x18003a96e
movzx eax, word [rcx + 0x140]
jmp 0x18003a977
mov rcx, rax
call qword [0x1800ac420]
movsxd rcx, eax
movabs rax, 0xaaaaaaaaaaaaaaab
mov qword [rdi + 0x20], rbx
mul rcx
shr rdx, 4
mov dword [rdi + 0x1c], edx
mov rax, qword [rdi + 0x20]
inc dword [rdi + 0x18]
mov edx, dword [rsp + 0x48]
mov r13d, dword [rsp + 0x40]
lea rcx, [rsi + rsi*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], rbp
mov word [rax + rcx*8], 0x1e
mov byte [rdi + 0xa2], 0
mov rbp, qword [rdi + 0x20]
mov rcx, qword [rdi]
test rbp, rbp
je 0x18003aa78
cmp byte [rcx + 0x2a], 0
jne 0x18003aa78
test esi, esi
jns 0x18003a9f1
mov esi, dword [rdi + 0x18]
dec esi
movsxd rax, esi
lea r12, [rax + rax*2]
movsx edx, byte [rbp + r12*8 + 1]
mov r8, qword [rbp + r12*8 + 0x10]
call fcn.180021a30
lea rax, [0x18009c9dc]
xor r15d, r15d
mov rbx, rax
mov qword [rbp + r12*8 + 0x10], r15
nop word [rax + rax]
inc rbx
cmp byte [rbx], r15b
jne 0x18003aa20
mov rcx, qword [rdi]
sub ebx, eax
and ebx, 0x3fffffff
lea edx, [rbx + 1]
call fcn.180007670
mov rsi, rax
test rax, rax
je 0x18003aa5c
movsxd rbx, ebx
lea rdx, [0x18009c9dc]
mov rcx, rax
mov r8, rbx
call fcn.180087310
mov byte [rsi + rbx], r15b
mov qword [rbp + r12*8 + 0x10], rsi
mov byte [rbp + r12*8 + 1], 0xff
jmp 0x18003aa89
mov r13d, dword [rsp + 0x40]
mov esi, 1
jmp 0x18003a9ce
lea r8, [0x18009c9dc]
xor edx, edx
call fcn.180021a30
xor r15d, r15d
movsxd rsi, dword [rdi + 0x18]
mov eax, dword [rdi + 0x1c]
cmp eax, esi
jg 0x18003ab08
test eax, eax
je 0x18003aa9c
add eax, eax
jmp 0x18003aaa1
mov eax, 0x2a
mov rdx, qword [rdi + 0x20]
mov rcx, qword [rdi]
lea r8d, [rax + rax*2]
shl r8d, 3
call fcn.180007700
mov rbx, rax
test rax, rax
je 0x18003ab46
mov rcx, qword [rdi]
test rcx, rcx
je 0x18003aae4
cmp rax, qword [rcx + 0x158]
jb 0x18003aae4
cmp rax, qword [rcx + 0x160]
jae 0x18003aae4
movzx eax, word [rcx + 0x140]
jmp 0x18003aaed
mov rcx, rax
call qword [0x1800ac420]
movsxd rcx, eax
movabs rax, 0xaaaaaaaaaaaaaaab
mov qword [rdi + 0x20], rbx
mul rcx
shr rdx, 4
mov dword [rdi + 0x1c], edx
mov rax, qword [rdi + 0x20]
inc dword [rdi + 0x18]
mov ebp, dword [rsp + 0xd0]
mov r12d, dword [rsp + 0x4c]
lea rcx, [rsi + rsi*2]
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], ebp
mov dword [rax + rcx*8 + 8], r12d
mov dword [rax + rcx*8 + 0xc], r15d
mov qword [rax + rcx*8 + 0x10], r15
mov word [rax + rcx*8], 0x35
mov byte [rdi + 0xa2], 0
jmp 0x18003ab52
mov ebp, dword [rsp + 0xd0]
mov r12d, dword [rsp + 0x4c]
movsxd rsi, dword [rdi + 0x18]
mov eax, dword [rdi + 0x1c]
cmp eax, esi
jg 0x18003abcd
test eax, eax
je 0x18003ab65
add eax, eax
jmp 0x18003ab6a
mov eax, 0x2a
mov rdx, qword [rdi + 0x20]
mov rcx, qword [rdi]
lea r8d, [rax + rax*2]
shl r8d, 3
call fcn.180007700
mov rbx, rax
test rax, rax
je 0x18003abfd
mov rcx, qword [rdi]
test rcx, rcx
je 0x18003aba9
cmp rax, qword [rcx + 0x158]
jb 0x18003aba9
cmp rax, qword [rcx + 0x160]
jae 0x18003aba9
movzx eax, word [rcx + 0x140]
jmp 0x18003abb2
mov rcx, rax
call qword [0x1800ac420]
movsxd rcx, eax
movabs rax, 0xaaaaaaaaaaaaaaab
mov qword [rdi + 0x20], rbx
mul rcx
shr rdx, 4
mov dword [rdi + 0x1c], edx
mov rax, qword [rdi + 0x20]
inc dword [rdi + 0x18]
lea rcx, [rsi + rsi*2]
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], ebp
mov dword [rax + rcx*8 + 8], r13d
mov dword [rax + rcx*8 + 0xc], r12d
mov qword [rax + rcx*8 + 0x10], r15
mov word [rax + rcx*8], 0x36
mov byte [rdi + 0xa2], 0
mov rdx, qword [rdi + 0x20]
test rdx, rdx
je 0x18003ac13
movsxd rax, dword [rdi + 0x18]
lea rcx, [rax + rax*2]
mov byte [rdx + rcx*8 - 0x15], 8
mov edx, dword [rdi + 0x18]
cmp edx, r14d
jle 0x18003ac2a
movsxd rax, r14d
lea rcx, [rax + rax*2]
mov rax, qword [rdi + 0x20]
mov dword [rax + rcx*8 + 8], edx
mov r13, qword [rsp + 0x68]
mov r12d, dword [rsp + 0xd8]
mov ebx, dword [rsp + 0x30]
mov r13, qword [r13 + 0x38]
mov esi, dword [rsp + 0x3c]
mov rbp, qword [rsp + 0xc0]
mov qword [rsp + 0x68], r13
test r13, r13
jne 0x180039830
mov r14, qword [rsp + 0x80]
mov r15, qword [rsp + 0x78]
mov rbx, qword [rsp + 0x90]
mov rsi, qword [rsp + 0x88]
add rsp, 0x98
pop r13
pop r12
pop rdi
pop rbp
ret