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

Disassembly:
mov qword [rsp + 0x10], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x40
mov rax, qword [rcx + 0x1d8]
xor edi, edi
xor r15d, r15d
mov qword [rsp + 0x80], rax
xor r13d, r13d
mov qword [rcx + 0x1d8], rdi
xor ebp, ebp
mov r14, rax
mov r12, rdx
mov rbx, rcx
nop dword [rax]
cmp ebp, dword [rbx + 0x1b0]
jge 0x14003f5dc
mov rax, qword [r14]
mov rsi, qword [rax + 0x10]
test rsi, rsi
je 0x14003f5d2
mov rax, qword [rsi]
mov rdx, qword [rax + 0x78]
test rdx, rdx
je 0x14003f5d2
mov rcx, rsi
call rdx
mov rdx, rsi
mov rcx, r12
mov edi, eax
call fcn.1400429c0
inc ebp
add r14, 8
test edi, edi
je 0x14003f5a0
mov rax, qword [rsp + 0x80]
xor r12d, r12d
mov qword [rbx + 0x1d8], rax
mov esi, r12d
test edi, edi
jne 0x14003fdb5
mov ebp, r12d
lea r14, [0x140146b68]
cmp esi, dword [rbx + 0x28]
jge 0x14003f659
mov rdx, qword [rbx + 0x20]
mov rax, qword [rdx + rbp + 8]
test rax, rax
je 0x14003f64a
cmp byte [rax + 0x10], 2
jne 0x14003f64a
mov rax, qword [rax + 8]
mov r13d, 1
mov rcx, qword [rax]
cmp byte [rdx + rbp + 0x10], r13b
je 0x14003f643
movzx eax, byte [rcx + 9]
cmp byte [rax + r14], r12b
je 0x14003f643
cmp byte [rcx + 0x10], r12b
jne 0x14003f643
inc r15d
call fcn.1400277b0
mov edi, eax
inc esi
add rbp, 0x20
test edi, edi
je 0x14003f603
jmp 0x14003fdb5
test r13d, r13d
je 0x14003f683
mov rax, qword [rbx + 0x100]
test rax, rax
je 0x14003f683
mov rcx, qword [rbx + 0xf8]
call rax
mov edi, eax
test eax, eax
je 0x14003f683
mov eax, 0x213
jmp 0x14003fdb7
mov rax, qword [rbx + 0x20]
lea r8, [0x14016076c]
mov rcx, qword [rax + 8]
mov rax, qword [rcx + 8]
mov rdx, qword [rax]
movzx r9d, byte [rdx + 0x13]
test r9b, r9b
je 0x14003f6a8
mov rcx, r8
jmp 0x14003f6b8
mov rcx, qword [rdx + 0xd0]
test rcx, rcx
je 0x14003fc3e
mov rax, 0xffffffffffffffff
nop
inc rax
cmp byte [rcx + rax], r12b
jne 0x14003f6c0
and eax, 0x3fffffff
je 0x14003fc3e
cmp r15d, 1
jle 0x14003fc3e
mov r13, qword [rbx]
mov qword [rsp + 0x30], r13
mov qword [rsp + 0x98], r12
test r9b, r9b
jne 0x14003f704
mov r8, qword [rdx + 0xd0]
test r8, r8
jne 0x14003f704
mov r14, r12
jmp 0x14003f720
mov r14, 0xffffffffffffffff
nop dword [rax + rax]
inc r14
cmp byte [r8 + r14], r12b
jne 0x14003f710
and r14d, 0x3fffffff
lea rdx, str._s_mjXXXXXX9XXz
mov rcx, rbx
call fcn.140019b60
mov rsi, rax
test rax, rax
jne 0x14003f73f
lea eax, [rsi + 7]
jmp 0x14003fdb7
mov ebp, r12d
test ebp, ebp
je 0x14003f766
cmp ebp, 0x64
jg 0x14003f7d2
cmp ebp, 1
jne 0x14003f766
mov r8, rsi
lea rdx, str.MJ_collide:__s
lea ecx, [rbp + 0xc]
call fcn.140019dd0
lea rdx, [rsp + 0x80]
mov ecx, 4
inc ebp
call fcn.140019eb0
mov r9d, dword [rsp + 0x80]
lea rdx, [r14 + rsi]
movzx eax, r9b
lea r8, str._mj_06X9_02X
shr r9d, 8
mov ecx, reloc.Cabinet.dll_FCIFlushCabinet
mov dword [rsp + 0x20], eax
call fcn.140019d70
lea r9, [rsp + 0x90]
xor r8d, r8d
mov rdx, rsi
mov rcx, r13
call qword [r13 + 0x38]
mov edi, eax
test eax, eax
jne 0x14003fc0f
cmp dword [rsp + 0x90], r12d
jne 0x14003f742
jmp 0x14003f7fb
mov r8, rsi
lea rdx, str.MJ_delete:__s
mov ecx, reloc.Cabinet.dll_FCIFlushCabinet
call fcn.140019dd0
xor r8d, r8d
mov rdx, rsi
mov rcx, r13
call qword [r13 + 0x30]
test edi, edi
jne 0x14003fc0f
mov r9d, 0x4016
mov qword [rsp + 0x20], r12
lea r8, [rsp + 0x98]
mov rdx, rsi
mov rcx, r13
call fcn.140016aa0
mov edi, eax
test eax, eax
jne 0x14003fc0f
mov r15d, r12d
mov r12, qword [rsp + 0x98]
cmp dword [rbx + 0x28], r15d
jle 0x14003f8d2
xor r14d, r14d
xor r13d, r13d
nop
mov rax, qword [rbx + 0x20]
mov rax, qword [r14 + rax + 8]
test rax, rax
je 0x14003f8bc
cmp byte [rax + 0x10], 2
jne 0x14003f8bc
mov rax, qword [rax + 8]
mov rcx, qword [rax]
mov rbp, qword [rcx + 0xd8]
test rbp, rbp
je 0x14003f8bc
mov rcx, 0xffffffffffffffff
nop
inc rcx
cmp byte [rcx + rbp], 0
jne 0x14003f870
mov rax, qword [r12]
and ecx, 0x3fffffff
mov r9, r13
mov rdx, rbp
lea r8d, [rcx + 1]
mov rcx, r12
call qword [rax + reloc.ODBC32.dll_SQLAllocHandle]
mov edi, eax
mov rax, 0xffffffffffffffff
nop dword [rax]
inc rax
cmp byte [rax + rbp], 0
jne 0x14003f8a0
and eax, 0x3fffffff
inc r13
add r13, rax
test edi, edi
jne 0x14003f99c
inc r15d
add r14, 0x20
cmp r15d, dword [rbx + 0x28]
jl 0x14003f840
mov r13, qword [rsp + 0x30]
mov rax, qword [r12]
mov rcx, r12
call qword [rax + reloc.WLDAP32.dll_Ordinal_96]
bt eax, 0xa
jb 0x14003f9f7
mov rax, qword [r12]
mov edx, 2
mov rcx, r12
call qword [rax + Ordinal_41]
mov edi, eax
test eax, eax
je 0x14003f9f7
mov rax, qword [r12]
test rax, rax
je 0x14003f916
mov rcx, r12
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov qword [r12], 0
cmp dword [0x1401abb60], 0
mov rcx, r12
je 0x14003f93c
call qword [0x1401abb98]
movsxd rcx, eax
sub qword [0x1401b2b20], rcx
mov rcx, r12
dec qword [0x1401b2b68]
call qword [0x1401abb88]
xor r8d, r8d
mov rdx, rsi
mov rcx, r13
call qword [r13 + 0x30]
cmp qword [rbx + 0x298], 0
jne 0x14003f9bf
cmp rsi, qword [rbx + 0x190]
jb 0x14003f96b
cmp rsi, qword [rbx + 0x198]
jb 0x14003f9e1
cmp dword [0x1401abb60], 0
mov rcx, rsi
je 0x14003f991
call qword [0x1401abb98]
movsxd rcx, eax
sub qword [0x1401b2b20], rcx
mov rcx, rsi
dec qword [0x1401b2b68]
call qword [0x1401abb88]
jmp 0x14003fdb5
mov rcx, r12
call fcn.140016b60
mov rax, qword [rsp + 0x30]
xor r8d, r8d
mov rdx, rsi
mov rcx, rax
call qword [rax + 0x30]
cmp qword [rbx + 0x298], 0
je 0x14003f9cf
mov rdx, rsi
mov rcx, rbx
call fcn.1400170b0
jmp 0x14003fdb5
cmp rsi, qword [rbx + 0x190]
jb 0x14003f96b
cmp rsi, qword [rbx + 0x198]
jae 0x14003f96b
mov rax, qword [rbx + 0x188]
mov qword [rsi], rax
mov qword [rbx + 0x188], rsi
jmp 0x14003fdb5
xor ebp, ebp
test edi, edi
jne 0x14003fa5f
xor r15d, r15d
cmp ebp, dword [rbx + 0x28]
jge 0x14003fa5f
mov rax, qword [rbx + 0x20]
mov r14, qword [r15 + rax + 8]
test r14, r14
je 0x14003fa55
xor edi, edi
cmp byte [r14 + 0x10], 2
jne 0x14003fa55
mov r14, qword [r14 + 8]
cmp byte [r14 + 0x21], dil
je 0x14003fa34
mov rcx, r14
call fcn.14002fa00
mov edi, eax
test eax, eax
jne 0x14003fa5f
cmp byte [r14 + 0x23], 0
je 0x14003fa45
mov rdx, qword [r14]
mov eax, dword [r14 + 0x3c]
mov dword [rdx + 0x1c], eax
mov rcx, qword [r14]
xor r8d, r8d
mov rdx, rsi
call fcn.140027820
mov edi, eax
inc ebp
add r15, 0x20
test edi, edi
je 0x14003fa00
mov rax, qword [r12]
test rax, rax
je 0x14003fa76
mov rcx, r12
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov qword [r12], 0
cmp dword [0x1401abb60], 0
mov rcx, r12
je 0x14003fa9c
call qword [0x1401abb98]
movsxd rcx, eax
sub qword [0x1401b2b20], rcx
mov rcx, r12
dec qword [0x1401b2b68]
call qword [0x1401abb88]
test edi, edi
je 0x14003fab9
cmp qword [rbx + 0x298], 0
jne 0x14003f9bf
jmp 0x14003f9cf
mov r8d, 1
mov rdx, rsi
mov rcx, r13
call qword [r13 + 0x30]
cmp qword [rbx + 0x298], 0
mov edi, eax
je 0x14003fae2
mov rdx, rsi
mov rcx, rbx
call fcn.1400170b0
jmp 0x14003fb33
cmp rsi, qword [rbx + 0x190]
jb 0x14003fb07
cmp rsi, qword [rbx + 0x198]
jae 0x14003fb07
mov rax, qword [rbx + 0x188]
mov qword [rsi], rax
mov qword [rbx + 0x188], rsi
jmp 0x14003fb33
cmp dword [0x1401abb60], 0
mov rcx, rsi
je 0x14003fb2d
call qword [0x1401abb98]
movsxd rcx, eax
sub qword [0x1401b2b20], rcx
mov rcx, rsi
dec qword [0x1401b2b68]
call qword [0x1401abb88]
test edi, edi
jne 0x14003fdb5
xor r12d, r12d
mov esi, r12d
cmp dword [rbx + 0x28], r12d
jle 0x14003fb73
mov ebp, r12d
nop word [rax + rax]
mov rax, qword [rbx + 0x20]
mov rcx, qword [rax + rbp + 8]
test rcx, rcx
je 0x14003fb68
mov edx, 1
call fcn.14002fc40
inc esi
add rbp, 0x20
cmp esi, dword [rbx + 0x28]
jl 0x14003fb50
mov r15, qword [rbx + 0x1d8]
test r15, r15
je 0x14003fdb5
mov ebp, r12d
mov qword [rbx + 0x1d8], r12
cmp dword [rbx + 0x1b0], r12d
jle 0x14003fbd7
mov r14, r15
nop dword [rax]
mov rsi, qword [r14]
mov rcx, qword [rsi + 0x10]
test rcx, rcx
je 0x14003fbbd
mov rax, qword [rcx]
mov rdx, qword [rax + 0x80]
test rdx, rdx
je 0x14003fbbd
call rdx
mov rcx, rsi
mov dword [rsi + 0x20], r12d
call fcn.14009f8b0
inc ebp
add r14, 8
cmp ebp, dword [rbx + 0x1b0]
jl 0x14003fba0
cmp qword [rbx + 0x298], r12
jne 0x14003fd50
cmp r15, qword [rbx + 0x190]
jb 0x14003fbfa
cmp r15, qword [rbx + 0x198]
jb 0x14003fd6f
cmp dword [0x1401abb60], r12d
mov rcx, r15
je 0x14003fda8
jmp 0x14003fd8e
cmp qword [rbx + 0x298], r12
jne 0x14003f9bf
cmp rsi, qword [rbx + 0x190]
jb 0x14003fc32
cmp rsi, qword [rbx + 0x198]
jb 0x14003f9e1
cmp dword [0x1401abb60], r12d
jmp 0x14003f972
mov ebp, r12d
test edi, edi
jne 0x14003fca8
mov r14, r12
cmp ebp, dword [rbx + 0x28]
jge 0x14003fca8
mov rax, qword [rbx + 0x20]
mov rsi, qword [r14 + rax + 8]
test rsi, rsi
je 0x14003fc9e
cmp byte [rsi + 0x10], 2
mov edi, r12d
jne 0x14003fc9e
mov rsi, qword [rsi + 8]
cmp byte [rsi + 0x21], dil
je 0x14003fc80
mov rcx, rsi
call fcn.14002fa00
mov edi, eax
test eax, eax
jne 0x14003fdb5
cmp byte [rsi + 0x23], r12b
je 0x14003fc8f
mov rdx, qword [rsi]
mov eax, dword [rsi + 0x3c]
mov dword [rdx + 0x1c], eax
mov rcx, qword [rsi]
xor r8d, r8d
xor edx, edx
call fcn.140027820
mov edi, eax
inc ebp
add r14, 0x20
test edi, edi
je 0x14003fc48
mov esi, r12d
test edi, edi
jne 0x14003fdb5
mov rbp, r12
cmp esi, dword [rbx + 0x28]
jge 0x14003fce1
mov rax, qword [rbx + 0x20]
mov rcx, qword [rax + rbp + 8]
test rcx, rcx
je 0x14003fcd2
xor edx, edx
call fcn.14002fc40
mov edi, eax
inc esi
add rbp, 0x20
test edi, edi
je 0x14003fcb6
jmp 0x14003fdb5
mov r15, qword [rbx + 0x1d8]
test r15, r15
je 0x14003fdb5
mov ebp, r12d
mov qword [rbx + 0x1d8], r12
cmp dword [rbx + 0x1b0], r12d
jle 0x14003fd47
mov r14, r15
nop word [rax + rax]
mov rsi, qword [r14]
mov rcx, qword [rsi + 0x10]
test rcx, rcx
je 0x14003fd2d
mov rax, qword [rcx]
mov rdx, qword [rax + 0x80]
test rdx, rdx
je 0x14003fd2d
call rdx
mov rcx, rsi
mov dword [rsi + 0x20], r12d
call fcn.14009f8b0
inc ebp
add r14, 8
cmp ebp, dword [rbx + 0x1b0]
jl 0x14003fd10
cmp qword [rbx + 0x298], r12
je 0x14003fd5d
mov rdx, r15
mov rcx, rbx
call fcn.1400170b0
jmp 0x14003fdae
cmp r15, qword [rbx + 0x190]
jb 0x14003fd82
cmp r15, qword [rbx + 0x198]
jae 0x14003fd82
mov rax, qword [rbx + 0x188]
mov qword [r15], rax
mov qword [rbx + 0x188], r15
jmp 0x14003fdae
cmp dword [0x1401abb60], r12d
je 0x14003fda5
mov rcx, r15
call qword [0x1401abb98]
movsxd rcx, eax
sub qword [0x1401b2b20], rcx
dec qword [0x1401b2b68]
mov rcx, r15
call qword [0x1401abb88]
mov dword [rbx + 0x1b0], r12d
mov eax, edi
mov rbx, qword [rsp + 0x88]
add rsp, 0x40
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret