Function at 0x140185170
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 rbp
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x90
mov r14d, dword [rsp + 0xf0]
mov rbp, qword [rcx]
mov r12, rdx
mov r15d, r14d
mov dword [rsp + 0x54], r14d
inc r14d
mov dword [rsp + 0x4c], r14d
inc r14d
mov rbx, rcx
mov r13d, r14d
mov dword [rsp + 0x34], r14d
inc r14d
mov dword [rsp + 0x50], r14d
inc r14d
mov qword [rsp + 0x78], rbp
mov dword [rsp + 0x40], r14d
inc r14d
mov dword [rsp + 0x38], 0xffffffff
mov dword [rsp + 0x58], r14d
inc r14d
mov dword [rsp + 0x44], r14d
inc r14d
mov dword [rsp + 0xf0], r14d
call fcn.1401689a0
mov rdi, rax
test rax, rax
je 0x14018611a
test r12, r12
je 0x14018611a
cmp dword [r12 + 0x20], 0
je 0x14018611a
mov r10, qword [r12]
lea rcx, str.sqlite_
mov edx, dword [r10]
cmp edx, dword [rcx]
jne 0x14018524b
movzx edx, word [r10 + 4]
cmp dx, word [rcx + 4]
jne 0x14018524b
movzx edx, byte [r10 + 6]
cmp dl, byte [rcx + 6]
jne 0x14018524b
xor eax, eax
jmp 0x140185250
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x14018611a
mov rdx, qword [r12 + 0x78]
mov rcx, rbp
mov qword [rsp + 0x88], rsi
call fcn.14014fc70
mov rcx, qword [rbp + 0x10]
xor r9d, r9d
movsxd rsi, eax
mov r8, r10
mov rdx, rsi
mov dword [rsp + 0x5c], esi
shl rdx, 5
mov rdx, qword [rdx + rcx]
mov rcx, rbx
mov qword [rsp + 0x20], rdx
lea edx, [r9 + 0x1c]
call fcn.140165010
test eax, eax
jne 0x140186112
mov rax, qword [r12]
mov r8d, dword [r12 + 0x20]
xor r9d, r9d
mov edx, esi
mov rcx, rbx
mov qword [rsp + 0x20], rax
call fcn.14015af70
mov eax, dword [rbx + 0x54]
xor r8d, r8d
mov dword [rsp + 0x30], eax
inc eax
lea edx, [r8 + 0x5e]
mov dword [rbx + 0x54], eax
mov rbp, qword [r12]
mov r9d, r15d
mov rcx, rdi
mov dword [rsp + 0x20], 0
call fcn.1401583c0
mov rsi, qword [rdi + 8]
mov rcx, qword [rdi]
test rsi, rsi
je 0x140185360
cmp byte [rcx + 0x2a], 0
jne 0x140185360
test eax, eax
jns 0x140185302
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.140158690
xor eax, eax
mov qword [rsi + rbx*8 + 0x10], rax
test rbp, rbp
jne 0x14018532e
mov qword [rsi + rbx*8 + 0x10], rax
mov byte [rsi + rbx*8 + 1], al
jmp 0x14018536a
cmp byte [rbp], 0
mov rax, rbp
je 0x14018533f
inc rax
cmp byte [rax], 0
jne 0x140185337
mov rcx, qword [rdi]
sub eax, ebp
mov rdx, rbp
and eax, 0x3fffffff
mov r8d, eax
call fcn.140154540
mov byte [rsi + rbx*8 + 1], 0xff
mov qword [rsi + rbx*8 + 0x10], rax
jmp 0x14018536a
mov r8, rbp
xor edx, edx
call fcn.140158690
mov r15, qword [r12 + 0x18]
lea rsi, [0x14024aacc]
mov r12d, 1
mov qword [rsp + 0x68], r15
test r15, r15
je 0x140185f14
mov rax, qword [rsp + 0xe0]
test rax, rax
je 0x1401853a0
cmp rax, r15
jne 0x140185ef6
mov ebx, dword [r15 + 8]
mov rsi, qword [rsp + 0xd0]
mov rdx, r15
mov rcx, rsi
mov dword [rsp + 0x3c], ebx
call fcn.14017d2d0
lea r13d, [rbx + rbx]
lea ecx, [r13 + r14 + 1]
mov rbp, rax
mov dword [rsp + 0x70], r13d
cmp ecx, dword [rsi + 0x58]
jle 0x1401853d4
mov dword [rsi + 0x58], ecx
mov eax, dword [rsp + 0x5c]
mov r9d, dword [r15 + 0x28]
mov r8d, dword [rsp + 0x30]
mov edx, 0x26
mov rcx, rdi
mov dword [rsp + 0x20], eax
call fcn.1401583c0
mov rsi, qword [rdi + 8]
mov rcx, qword [rdi]
test rsi, rsi
je 0x140185450
cmp byte [rcx + 0x2a], 0
jne 0x140185450
test eax, eax
jns 0x14018540d
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.140158690
xor eax, eax
mov qword [rsi + rbx*8 + 0x10], rax
test rbp, rbp
jne 0x140185439
mov qword [rsi + rbx*8 + 0x10], rax
mov byte [rsi + rbx*8 + 1], al
jmp 0x14018545d
mov qword [rsi + rbx*8 + 0x10], rbp
mov byte [rsi + rbx*8 + 1], 0xfa
jmp 0x14018545d
mov r8, rbp
mov edx, 0xfffffff0
call fcn.140158690
mov rbp, qword [r15]
mov r9d, dword [rsp + 0x4c]
xor r15d, r15d
lea edx, [r15 + 0x5e]
xor r8d, r8d
mov rcx, rdi
mov dword [rsp + 0x20], r15d
call fcn.1401583c0
mov rsi, qword [rdi + 8]
mov rcx, qword [rdi]
test rsi, rsi
je 0x1401854f9
cmp byte [rcx + 0x2a], r15b
jne 0x1401854f9
test eax, eax
jns 0x140185497
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.140158690
mov qword [rsi + rbx*8 + 0x10], r15
test rbp, rbp
jne 0x1401854c2
mov qword [rsi + rbx*8 + 0x10], r15
mov byte [rsi + rbx*8 + 1], r15b
jmp 0x140185503
mov rax, rbp
cmp byte [rbp], r15b
je 0x1401854d8
nop dword [rax + rax]
inc rax
cmp byte [rax], r15b
jne 0x1401854d0
mov rcx, qword [rdi]
sub eax, ebp
mov rdx, rbp
and eax, 0x3fffffff
mov r8d, eax
call fcn.140154540
mov byte [rsi + rbx*8 + 1], 0xff
mov qword [rsi + rbx*8 + 0x10], rax
jmp 0x140185503
mov r8, rbp
xor edx, edx
call fcn.140158690
mov ebp, dword [rsp + 0x3c]
mov ebx, r15d
test ebp, ebp
js 0x14018552e
nop
xor r8d, r8d
lea r9d, [rbx + r14]
mov rcx, rdi
lea edx, [r8 + 7]
mov dword [rsp + 0x20], r15d
call fcn.1401583c0
inc ebx
cmp ebx, ebp
jle 0x140185510
mov ebx, r15d
test ebp, ebp
jle 0x140185583
movsxd rsi, dword [rdi + 0x34]
cmp dword [rdi + 0x38], esi
jg 0x14018554a
mov rcx, rdi
call fcn.140158320
test eax, eax
jne 0x14018557d
mov rdx, qword [rdi + 8]
inc dword [rdi + 0x34]
lea r8, [rsi + rsi*2]
lea eax, [rbx + rbp]
mov byte [rdx + r8*8 + 3], r15b
mov dword [rdx + r8*8 + 4], r15d
lea ecx, [rax + r14 + 1]
mov dword [rdx + r8*8 + 0xc], r15d
mov qword [rdx + r8*8 + 0x10], r15
mov dword [rdx + r8*8 + 8], ecx
mov word [rdx + r8*8], 0xa
inc ebx
cmp ebx, ebp
jl 0x140185535
mov rcx, rdi
call fcn.1401584c0
movsxd rbx, dword [rdi + 0x34]
mov r14d, eax
mov dword [rsp + 0x48], eax
cmp dword [rdi + 0x38], ebx
jg 0x1401855a7
mov rcx, rdi
call fcn.140158320
test eax, eax
jne 0x1401855d6
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], r15b
mov dword [rax + rcx*8 + 4], esi
mov dword [rax + rcx*8 + 8], r14d
mov dword [rax + rcx*8 + 0xc], r15d
mov qword [rax + rcx*8 + 0x10], r15
mov word [rax + rcx*8], 0x41
jmp 0x1401855da
mov esi, dword [rsp + 0x30]
movsxd r15, dword [rdi + 0x34]
mov dword [rsp + 0x60], r15d
cmp dword [rdi + 0x38], r15d
jg 0x1401855f5
mov rcx, rdi
call fcn.140158320
test eax, eax
jne 0x140185628
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], 0
mov word [rax + rcx*8], SafeArrayGetElement
xor r12d, r12d
test ebp, ebp
jle 0x1401857fa
mov r15d, dword [rsp + 0xf0]
xor ebp, ebp
lea r14d, [r12 + 1]
mov r13d, ebp
jmp 0x140185652
xor ebp, ebp
movsxd rbx, dword [rdi + 0x34]
cmp dword [rdi + 0x38], ebx
jg 0x140185667
mov rcx, rdi
call fcn.140158320
test eax, eax
jne 0x140185695
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 + 0x50]
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 0x140185699
mov esi, dword [rsp + 0x50]
test r12d, r12d
jne 0x1401856df
movsxd rbx, dword [rdi + 0x34]
cmp dword [rdi + 0x38], ebx
jg 0x1401856b3
mov rcx, rdi
call fcn.140158320
test eax, eax
jne 0x1401856df
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 rax, qword [rsp + 0x68]
mov rcx, qword [rsp + 0xd0]
mov rdx, qword [rax + 0x50]
mov rdx, qword [r13 + rdx]
call fcn.14017d200
movsxd rbx, dword [rdi + 0x34]
mov rbp, rax
cmp dword [rdi + 0x38], ebx
jg 0x140185717
mov rcx, rdi
call fcn.140158320
test eax, eax
je 0x140185717
mov ebx, r14d
jmp 0x140185752
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 0x1401857b0
cmp byte [rcx + 0x2a], 0
jne 0x1401857b0
test ebx, ebx
jns 0x14018576d
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.140158690
xor eax, eax
mov qword [rsi + rbx*8 + 0x10], rax
test rbp, rbp
jne 0x14018579a
mov qword [rsi + rbx*8 + 0x10], rax
mov byte [rsi + rbx*8 + 1], al
jmp 0x1401857bd
mov qword [rsi + rbx*8 + 0x10], rbp
mov byte [rsi + rbx*8 + 1], 0xfc
jmp 0x1401857bd
mov r8, rbp
mov edx, 0xfffffffc
call fcn.140158690
mov rdx, qword [rdi + 8]
test rdx, rdx
je 0x1401857d3
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 0x140185650
mov r14d, dword [rsp + 0x48]
mov r15d, dword [rsp + 0x60]
mov r13d, dword [rsp + 0x70]
mov rax, qword [rsp + 0x78]
cmp byte [rax + 0x2a], 0
jne 0x140186112
movsxd rbx, dword [rdi + 0x34]
cmp dword [rdi + 0x38], ebx
jg 0x14018581e
mov rcx, rdi
call fcn.140158320
test eax, eax
jne 0x140185852
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], 0
mov dword [rax + rcx*8 + 8], r14d
mov dword [rax + rcx*8 + 0xc], 0
mov qword [rax + rcx*8 + 0x10], 0
mov word [rax + rcx*8], 1
xor ebx, ebx
lea r12d, [rbx + 1]
test ebp, ebp
jle 0x140185951
mov r15d, dword [rsp + 0xf0]
mov r14d, dword [rsp + 0x30]
nop dword [rax]
mov r8d, dword [rdi + 0x34]
mov edx, r8d
sub edx, r13d
test ebx, ebx
jne 0x140185895
lea eax, [rdx - 1]
cmp r8d, eax
jle 0x140185895
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 0x1401858ae
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 0x1401858c3
mov rcx, rdi
call fcn.140158320
test eax, eax
jne 0x1401858f0
mov rcx, qword [rdi + 8]
inc dword [rdi + 0x34]
lea rdx, [rsi + rsi*2]
lea eax, [rbx + r15 + 1]
mov byte [rcx + rdx*8 + 3], 0
mov qword [rcx + rdx*8 + 8], r12
mov qword [rcx + rdx*8 + 0x10], 0
mov word [rcx + rdx*8], SafeArrayGetElement
mov dword [rcx + rdx*8 + 4], eax
movsxd rsi, dword [rdi + 0x34]
cmp dword [rdi + 0x38], esi
jg 0x140185905
mov rcx, rdi
call fcn.140158320
test eax, eax
jne 0x14018593d
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], r14d
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 0x140185870
mov r14d, dword [rsp + 0x48]
mov r15d, dword [rsp + 0x60]
mov rcx, qword [rdi + 0x48]
test rcx, rcx
je 0x14018596d
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 0x140185982
mov rcx, rdi
call fcn.140158320
test eax, eax
jne 0x1401859b4
inc dword [rdi + 0x34]
mov rax, qword [rdi + 8]
mov esi, dword [rsp + 0x30]
lea rcx, [rbx + rbx*2]
xor r13d, r13d
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], r13d
mov qword [rax + rcx*8 + 0x10], r13
mov word [rax + rcx*8], 0x43
jmp 0x1401859bb
mov esi, dword [rsp + 0x30]
xor r13d, r13d
movsxd rbx, dword [rdi + 0x34]
cmp dword [rdi + 0x38], ebx
jg 0x1401859d0
mov rcx, rdi
call fcn.140158320
test eax, eax
jne 0x1401859f8
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], r13
mov word [rax + rcx*8], 0x2b
movsxd rbx, dword [rdi + 0x34]
cmp dword [rdi + 0x38], ebx
jg 0x140185a0d
mov rcx, rdi
call fcn.140158320
test eax, eax
jne 0x140185a44
mov rax, qword [rdi + 8]
inc dword [rdi + 0x34]
mov r14d, dword [rsp + 0xf0]
mov edx, dword [rsp + 0x34]
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], r13d
mov qword [rax + rcx*8 + 0x10], r13
mov word [rax + rcx*8], 0xf
jmp 0x140185a4c
mov r14d, dword [rsp + 0xf0]
cmp dword [rsp + 0x38], 0
jge 0x140185a9c
movsxd rbx, dword [rdi + 0x34]
mov dword [rsp + 0x38], ebx
cmp dword [rdi + 0x38], ebx
jg 0x140185a73
mov rcx, rdi
call fcn.140158320
test eax, eax
je 0x140185a73
mov dword [rsp + 0x38], r12d
jmp 0x140185a9c
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], r13
mov word [rax + rcx*8], 0x1b
xor r12d, r12d
mov r13d, r12d
test ebp, ebp
jle 0x140185d42
nop word [rax + rax]
movsxd rbx, dword [rdi + 0x34]
cmp dword [rdi + 0x38], ebx
jg 0x140185ad1
mov rcx, rdi
call fcn.140158320
test eax, eax
je 0x140185ad1
mov r15d, dword [rsp + 0x58]
mov ebx, 1
jmp 0x140185b00
mov rax, qword [rdi + 8]
inc dword [rdi + 0x34]
mov r15d, dword [rsp + 0x58]
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 0x140185b9c
cmp byte [rcx + 0x2a], 0
jne 0x140185b9c
test ebx, ebx
jns 0x140185b23
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.140158690
lea rax, [0x1401eb500]
mov qword [rbp + r12*8 + 0x10], 0
mov rbx, rax
nop dword [rax]
inc rbx
cmp byte [rbx], 0
jne 0x140185b50
mov rcx, qword [rdi]
sub ebx, eax
and ebx, 0x3fffffff
lea edx, [rbx + 1]
call fcn.140154320
mov rsi, rax
test rax, rax
je 0x140185b8c
movsxd rbx, ebx
lea rdx, [0x1401eb500]
mov rcx, rax
mov r8, rbx
call fcn.14010c9b0
mov byte [rbx + rsi], 0
mov qword [rbp + r12*8 + 0x10], rsi
mov byte [rbp + r12*8 + 1], 0xff
xor r12d, r12d
jmp 0x140185baa
lea r8, [0x1401eb500]
xor edx, edx
call fcn.140158690
movsxd rbx, dword [rdi + 0x34]
cmp dword [rdi + 0x38], ebx
jg 0x140185bbf
mov rcx, rdi
call fcn.140158320
test eax, eax
jne 0x140185bed
mov rax, qword [rdi + 8]
inc dword [rdi + 0x34]
mov esi, dword [rsp + 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
jmp 0x140185bf1
mov esi, dword [rsp + 0x34]
movsxd rbx, dword [rdi + 0x34]
cmp dword [rdi + 0x38], ebx
jg 0x140185c06
mov rcx, rdi
call fcn.140158320
test eax, eax
jne 0x140185c34
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 0x140185c49
mov rcx, rdi
call fcn.140158320
test eax, eax
jne 0x140185c76
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], SafeArrayGetElement
movsxd rbx, dword [rdi + 0x34]
cmp dword [rdi + 0x38], ebx
jg 0x140185c8b
mov rcx, rdi
call fcn.140158320
test eax, eax
jne 0x140185cb9
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 0x140185cce
mov rcx, rdi
call fcn.140158320
test eax, eax
jne 0x140185cf7
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 0x140185d0c
mov rcx, rdi
call fcn.140158320
test eax, eax
jne 0x140185d34
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 0x140185ab0
movsxd rbx, dword [rdi + 0x34]
cmp dword [rdi + 0x38], ebx
jg 0x140185d63
mov rcx, rdi
call fcn.140158320
test eax, eax
je 0x140185d63
mov r13d, dword [rsp + 0x40]
mov ebx, 1
jmp 0x140185d98
mov rax, qword [rdi + 8]
inc dword [rdi + 0x34]
mov edx, dword [rsp + 0x54]
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 0x140185e29
cmp byte [rcx + 0x2a], 0
jne 0x140185e29
test ebx, ebx
jns 0x140185db7
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.140158690
lea rax, [0x14024aacc]
xor r15d, r15d
mov rbx, rax
mov qword [rbp + r12*8 + 0x10], r15
inc rbx
cmp byte [rbx], r15b
jne 0x140185de0
mov rcx, qword [rdi]
sub ebx, eax
and ebx, 0x3fffffff
lea edx, [rbx + 1]
call fcn.140154320
mov rsi, rax
test rax, rax
je 0x140185e1c
movsxd rbx, ebx
lea rdx, [0x14024aacc]
mov rcx, rax
mov r8, rbx
call fcn.14010c9b0
mov byte [rsi + rbx], r15b
mov qword [rbp + r12*8 + 0x10], rsi
mov byte [rbp + r12*8 + 1], 0xff
jmp 0x140185e3a
lea r8, [0x14024aacc]
xor edx, edx
call fcn.140158690
xor r15d, r15d
movsxd rbx, dword [rdi + 0x34]
cmp dword [rdi + 0x38], ebx
jg 0x140185e4f
mov rcx, rdi
call fcn.140158320
test eax, eax
jne 0x140185e84
mov rax, qword [rdi + 8]
inc dword [rdi + 0x34]
mov esi, dword [rsp + 0xe8]
mov ebp, dword [rsp + 0x44]
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 0x140185e8f
mov esi, dword [rsp + 0xe8]
mov ebp, dword [rsp + 0x44]
movsxd rbx, dword [rdi + 0x34]
cmp dword [rdi + 0x38], ebx
jg 0x140185ea4
mov rcx, rdi
call fcn.140158320
test eax, eax
jne 0x140185ecc
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 + 0x68]
mov r12d, 1
test r8, r8
je 0x140185eee
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 + 0x68], r15
test r15, r15
jne 0x140185392
mov r13d, dword [rsp + 0x34]
lea rsi, [0x14024aacc]
mov rax, qword [rsp + 0xd8]
cmp qword [rax + 0x18], 0
jne 0x140185f90
mov ecx, dword [rsp + 0x5c]
mov ebx, dword [rsp + 0x30]
mov r9d, dword [rax + 0x20]
mov dword [rsp + 0x20], ecx
mov r8d, ebx
mov edx, 0x26
mov rcx, rdi
call fcn.1401583c0
xor r14d, r14d
mov r9d, r13d
lea edx, [r14 + 0x1f]
mov r8d, ebx
mov rcx, rdi
mov dword [rsp + 0x20], r14d
call fcn.1401583c0
lea edx, [r14 + 0x2b]
xor r9d, r9d
mov r8d, ebx
mov rcx, rdi
mov dword [rsp + 0x20], r14d
call fcn.1401583c0
lea edx, [r14 + 0x1b]
xor r9d, r9d
mov r8d, r13d
mov rcx, rdi
mov dword [rsp + 0x20], r14d
call fcn.1401583c0
mov r12d, eax
jmp 0x140185fed
mov edx, dword [rdi + 0x34]
movsxd rax, dword [rsp + 0x38]
cmp edx, eax
jle 0x140185fa8
lea rcx, [rax + rax*2]
mov rax, qword [rdi + 8]
mov dword [rax + rcx*8 + 8], edx
movsxd rbx, dword [rdi + 0x34]
cmp dword [rdi + 0x38], ebx
jg 0x140185fc2
mov rcx, rdi
call fcn.140158320
test eax, eax
je 0x140185fc2
xor r14d, r14d
jmp 0x140185fed
inc dword [rdi + 0x34]
mov rax, qword [rdi + 8]
lea rcx, [rbx + rbx*2]
xor r14d, r14d
mov r12d, ebx
mov byte [rax + rcx*8 + 3], 0
mov qword [rax + rcx*8 + 4], r14
mov dword [rax + rcx*8 + 0xc], r14d
mov qword [rax + rcx*8 + 0x10], r14
mov word [rax + rcx*8], 1
mov r9d, dword [rsp + 0x4c]
xor r8d, r8d
mov rcx, rdi
lea edx, [r8 + 0xa]
mov dword [rsp + 0x20], r14d
call fcn.1401583c0
mov ebp, dword [rsp + 0x40]
mov r8d, dword [rsp + 0x54]
mov r9d, 3
mov rcx, rdi
mov dword [rsp + 0x20], ebp
lea edx, [r9 + 0x1b]
call fcn.1401583c0
mov rbx, qword [rdi + 8]
mov rcx, qword [rdi]
test rbx, rbx
je 0x14018608d
cmp byte [rcx + 0x2a], 0
jne 0x14018608d
test eax, eax
jns 0x140186040
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.140158690
lea rcx, [0x14024aacc]
mov qword [rbx + rsi*8 + 0x10], r14
mov rax, rcx
inc rax
cmp byte [rax], 0
jne 0x140186064
sub eax, ecx
mov rdx, rcx
mov rcx, qword [rdi]
and eax, 0x3fffffff
mov r8d, eax
call fcn.140154540
mov byte [rbx + rsi*8 + 1], 0xff
mov qword [rbx + rsi*8 + 0x10], rax
jmp 0x140186097
mov r8, rsi
xor edx, edx
call fcn.140158690
mov esi, dword [rsp + 0x44]
mov ebx, dword [rsp + 0xe8]
mov edx, 0x36
mov rcx, rdi
mov r9d, esi
mov r8d, ebx
mov dword [rsp + 0x20], r14d
call fcn.1401583c0
mov r9d, ebp
mov r8d, ebx
mov edx, 0x37
mov rcx, rdi
mov dword [rsp + 0x20], esi
call fcn.1401583c0
mov r11, qword [rdi + 8]
test r11, r11
je 0x1401860e8
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, ebp
cmovl eax, ebp
mov dword [rcx + 0x58], eax
mov edx, dword [rdi + 0x34]
cmp edx, r12d
jle 0x140186112
movsxd rax, r12d
lea rcx, [rax + rax*2]
mov rax, qword [rdi + 8]
mov dword [rax + rcx*8 + 8], edx
mov rsi, qword [rsp + 0x88]
add rsp, 0x90
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rbp
pop rbx
ret