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

Disassembly:
push rbx
sub rsp, 0x60
mov rax, qword [rcx + 0x20]
mov qword [rsp + 0x50], rdi
mov rdi, rcx
mov rcx, qword [rax + 0x18]
mov qword [rsp + 0x30], r15
mov r15d, edx
test rcx, rcx
je 0x140112309
call qword [0x1404b24f0]
mov rcx, qword [rdi + 0x28]
cmp byte [rcx + 0x11], 0
je 0x140112321
inc dword [rcx + 0x14]
cmp byte [rcx + 0x12], 0
jne 0x140112321
call fcn.140133680
mov rax, qword [rdi]
test rax, rax
je 0x140112338
mov rcx, qword [rax + 0x18]
test rcx, rcx
je 0x140112338
call qword [0x1404b24f0]
mov ebx, dword [rdi + 0x30]
test ebx, ebx
je 0x14011234b
lea eax, [rbx - 5]
cmp eax, 1
ja 0x1401129f4
cmp qword [rdi], 0
mov r9, qword [rdi + 0x28]
mov qword [rsp + 0x78], rbp
mov rdx, qword [r9 + 8]
mov qword [rsp + 0x58], rsi
mov qword [rsp + 0x48], r12
mov rax, qword [rdx]
mov qword [rsp + 0x40], r13
mov dword [rsp + 0x88], 0
mov qword [rsp + 0x28], rax
mov rax, qword [rdi + 8]
mov qword [rsp + 0x38], r14
mov rcx, qword [rax + 8]
mov r13, qword [rcx]
je 0x14011239d
cmp byte [rdx + 0x24], 2
jne 0x14011239d
mov ebx, 5
jmp 0x1401123c7
xor ebx, ebx
test r9, r9
je 0x1401123ad
movzx eax, byte [r9 + 0x10]
test eax, eax
jne 0x1401123c7
xor r8d, r8d
xor edx, edx
mov rcx, r9
call fcn.14017eb50
mov dword [rsp + 0x88], 1
mov ebx, eax
cmp dword [rdi + 0x14], 0
mov esi, 7
jne 0x1401123f8
test ebx, ebx
jne 0x140112421
mov rax, qword [rdi + 0x28]
xor r9d, r9d
xor r8d, r8d
mov rcx, qword [rax + 8]
mov edx, dword [rcx + 0x34]
mov rcx, qword [rdi + 8]
call fcn.140182450
cmp eax, esi
jne 0x1401123fc
mov ebx, esi
jmp 0x140112421
test ebx, ebx
jne 0x140112421
cmp dword [rdi + 0x14], 0
jne 0x140112421
mov rcx, qword [rdi + 8]
lea r8, [rdi + 0x10]
mov edx, 2
call fcn.14017eb50
mov ebx, eax
test eax, eax
jne 0x140112421
mov dword [rdi + 0x14], 1
mov rax, qword [rdi + 0x28]
mov rcx, qword [rax + 8]
mov rax, qword [rdi + 8]
mov rax, qword [rax + 8]
mov edx, dword [rcx + 0x34]
mov r8d, dword [rax + 0x34]
mov rax, qword [rax]
mov dword [rsp + 0x70], edx
movzx r12d, byte [rax + 9]
mov dword [rsp + 0x80], r8d
test ebx, ebx
jne 0x140112461
cmp r12d, 5
jne 0x140112461
mov eax, 8
cmp edx, r8d
cmovne ebx, eax
mov r14d, dword [rcx + 0x40]
xor ebp, ebp
test r15d, r15d
js 0x140112471
cmp ebp, r15d
jge 0x1401124e2
mov esi, dword [rdi + 0x18]
cmp esi, r14d
ja 0x1401124e2
test ebx, ebx
jne 0x140112527
mov rax, qword [rdi + 0x28]
xor edx, edx
mov rcx, qword [rax + 8]
mov eax, dword [0x1404b23a4]
div dword [rcx + 0x34]
inc eax
cmp esi, eax
je 0x1401124db
mov rax, qword [rsp + 0x28]
lea r9d, [rbx + 2]
lea r8, [rsp + 0x20]
mov rcx, rax
mov edx, esi
call qword [rax + 0x108]
mov ebx, eax
test eax, eax
jne 0x1401124db
mov rax, qword [rsp + 0x20]
xor r9d, r9d
mov edx, esi
mov r8, qword [rax + 8]
mov rcx, rdi
call fcn.1401301e0
mov rcx, qword [rsp + 0x20]
mov ebx, eax
call fcn.1401a8cf0
inc dword [rdi + 0x18]
inc ebp
jmp 0x140112467
test ebx, ebx
jne 0x140112527
mov eax, r14d
mov dword [rdi + 0x38], r14d
sub eax, dword [rdi + 0x18]
inc eax
mov dword [rdi + 0x34], eax
cmp dword [rdi + 0x18], r14d
ja 0x140112530
cmp dword [rdi + 0x3c], ebx
jne 0x14011294a
mov rax, qword [rdi + 0x28]
mov rcx, qword [rax + 8]
mov rdx, qword [rcx]
mov rax, qword [rdx + 0x70]
mov qword [rdi + 0x40], rax
mov qword [rdx + 0x70], rdi
mov dword [rdi + 0x3c], 1
jmp 0x14011294a
cmp ebx, 0x65
jne 0x14011294a
test r14d, r14d
jne 0x140112588
mov rsi, qword [rdi + 8]
cmp byte [rsi + 0x11], r14b
je 0x140112550
inc dword [rsi + 0x14]
cmp byte [rsi + 0x12], r14b
jne 0x140112550
mov rcx, rsi
call fcn.140133680
mov rax, qword [rsi + 8]
mov dword [rax + 0x40], 0
mov rcx, qword [rsi + 8]
call fcn.140167f60
cmp byte [rsi + 0x11], 0
mov ebx, eax
je 0x140112579
dec dword [rsi + 0x14]
jne 0x140112579
mov rcx, rsi
call fcn.1401dafc0
mov r14d, 1
test ebx, ebx
je 0x140112588
cmp ebx, 0x65
jne 0x1401125dc
mov rsi, qword [rdi + 8]
mov ebp, dword [rdi + 0x10]
mov rbx, qword [rsi + 8]
inc ebp
cmp byte [rsi + 0x11], 0
je 0x1401125ac
inc dword [rsi + 0x14]
cmp byte [rsi + 0x12], 0
jne 0x1401125ac
mov rcx, rsi
call fcn.140133680
mov rcx, qword [rbx + 0x18]
mov r15, qword [rcx + 0x50]
mov rcx, qword [rcx + 0x70]
call fcn.1401a8e30
mov ebx, eax
test eax, eax
jne 0x1401125c9
bswap ebp
mov dword [r15 + 0x28], ebp
cmp byte [rsi + 0x11], 0
je 0x1401125dc
dec dword [rsi + 0x14]
jne 0x1401125dc
mov rcx, rsi
call fcn.1401dafc0
test ebx, ebx
jne 0x14011294a
mov rcx, qword [rdi]
test rcx, rcx
je 0x1401125f1
call fcn.1401b0010
cmp r12d, 5
jne 0x14011260f
mov rcx, qword [rdi + 8]
lea edx, [r12 - 3]
call fcn.140182660
mov ebx, eax
test eax, eax
jne 0x14011294a
mov ebp, dword [rsp + 0x80]
movsxd r8, dword [rsp + 0x70]
cmp r8d, ebp
jge 0x14011264f
mov eax, ebp
cdq
idiv r8d
mov ecx, eax
dec eax
add eax, r14d
cdq
idiv ecx
xor edx, edx
mov esi, eax
mov rax, qword [rdi + 8]
mov rcx, qword [rax + 8]
mov eax, dword [0x1404b23a4]
div dword [rcx + 0x34]
inc eax
cmp esi, eax
jne 0x14011265b
dec esi
jmp 0x14011265b
mov eax, r8d
cdq
idiv ebp
mov esi, eax
imul esi, r14d
cmp r8d, ebp
jge 0x1401128ab
mov ebp, dword [r13 + 0x20]
movsxd r12, r14d
mov r14, qword [r13 + 0x48]
imul r12, r8
mov r15, r8
cmp esi, ebp
ja 0x140112721
mov rax, qword [rdi + 8]
xor edx, edx
mov rcx, qword [rax + 8]
mov eax, dword [0x1404b23a4]
div dword [rcx + 0x34]
inc eax
cmp esi, eax
je 0x140112715
lea r8, [rsp + 0x20]
xor r9d, r9d
mov edx, esi
mov rcx, r13
call qword [r13 + 0x108]
mov ebx, eax
test eax, eax
jne 0x140112715
mov rcx, qword [rsp + 0x20]
call fcn.1401a8e30
mov r8, qword [rsp + 0x20]
mov ebx, eax
test r8, r8
je 0x140112715
test byte [r8 + 0x34], 0x20
je 0x14011270d
mov r10, qword [r8 + 0x28]
dec dword [r10 + 0x98]
mov rax, qword [r10 + 0xa8]
mov qword [r8 + 0x20], rax
mov rcx, qword [r10 + 0x48]
mov qword [r10 + 0xa8], r8
mov edx, dword [r8 + 0x30]
mov r9, qword [rcx]
mov r8, qword [r8 + 8]
dec edx
imul rdx, qword [r10 + 0xc0]
call qword [r9 + 0x90]
jmp 0x140112715
mov rcx, r8
call fcn.1401aa190
inc esi
test ebx, ebx
je 0x140112676
jmp 0x140112735
test ebx, ebx
jne 0x140112735
lea r8d, [rbx + 1]
xor edx, edx
mov rcx, r13
call fcn.1401a7300
mov ebx, eax
mov eax, dword [rsp + 0x80]
mov rbp, r12
add eax, dword [0x1404b23a4]
movsxd rcx, eax
mov eax, dword [rsp + 0x70]
cmp rcx, r12
cmovl rbp, rcx
add eax, dword [0x1404b23a4]
movsxd rsi, eax
test ebx, ebx
jne 0x14011294a
cmp rsi, rbp
jge 0x14011282e
mov rax, rsi
lea r8, [rsp + 0x80]
xor r9d, r9d
cqo
mov qword [rsp + 0x80], 0
idiv r15
lea edx, [rax + 1]
mov rax, qword [rsp + 0x28]
mov rcx, rax
call qword [rax + 0x108]
mov ebx, eax
test eax, eax
jne 0x1401127c3
mov rax, qword [rsp + 0x80]
mov r10, qword [r14]
mov r8d, dword [rsp + 0x70]
mov rdx, qword [rax + 8]
mov r9, rsi
mov rcx, r14
call qword [r10 + reloc.ODBC32.dll_SQLAllocHandle]
mov ebx, eax
mov r8, qword [rsp + 0x80]
test r8, r8
je 0x14011281e
test byte [r8 + 0x34], 0x20
je 0x140112816
mov r10, qword [r8 + 0x28]
dec dword [r10 + 0x98]
mov rax, qword [r10 + 0xa8]
mov qword [r8 + 0x20], rax
mov rcx, qword [r10 + 0x48]
mov qword [r10 + 0xa8], r8
mov edx, dword [r8 + 0x30]
mov r9, qword [rcx]
mov r8, qword [r8 + 8]
dec edx
imul rdx, qword [r10 + 0xc0]
call qword [r9 + 0x90]
jmp 0x14011281e
mov rcx, r8
call fcn.1401aa190
add rsi, r15
test ebx, ebx
je 0x140112764
jmp 0x14011294a
test ebx, ebx
jne 0x14011294a
mov rax, qword [r14]
lea rdx, [rsp + 0x70]
mov rcx, r14
call qword [rax + 0x30]
mov ebx, eax
test eax, eax
jne 0x14011285f
cmp qword [rsp + 0x70], r12
jle 0x14011285f
mov rax, qword [r14]
mov rdx, r12
mov rcx, r14
call qword [rax + 0x20]
mov ebx, eax
test ebx, ebx
jne 0x14011294a
mov rcx, qword [r13 + 0x48]
mov rax, qword [rcx]
test rax, rax
je 0x140112889
lea edx, [rbx + 0x15]
xor r8d, r8d
call qword [rax + 0x50]
mov ebx, eax
cmp eax, 0xc
je 0x140112889
test eax, eax
jne 0x1401128be
jmp 0x14011288b
xor ebx, ebx
cmp byte [r13 + 0xb], 0
jne 0x1401128be
movzx edx, byte [r13 + 0xe]
mov rcx, qword [r13 + 0x48]
test edx, edx
je 0x1401128a7
mov rax, qword [rcx]
call qword [rax + 0x28]
jmp 0x1401128bc
xor ebx, ebx
jmp 0x1401128be
xor r8d, r8d
xor edx, edx
mov rcx, r13
mov dword [r13 + 0x20], esi
call fcn.1401a7300
mov ebx, eax
test ebx, ebx
jne 0x14011294a
mov rsi, qword [rdi + 8]
cmp byte [rsi + 0x10], bl
je 0x140112945
cmp byte [rsi + 0x11], bl
je 0x1401128e4
inc dword [rsi + 0x14]
cmp byte [rsi + 0x12], bl
jne 0x1401128e4
mov rcx, rsi
call fcn.140133680
cmp byte [rsi + 0x10], 2
jne 0x14011292a
mov r14, qword [rsi + 8]
mov rcx, qword [r14]
call fcn.1401a74e0
mov ebx, eax
test eax, eax
je 0x140112911
cmp byte [rsi + 0x11], 0
je 0x14011294a
dec dword [rsi + 0x14]
jne 0x14011294a
mov rcx, rsi
call fcn.1401dafc0
jmp 0x14011294a
dec dword [rsi + 0x1c]
mov rcx, qword [r14 + 0x60]
mov byte [r14 + 0x24], 1
call fcn.14017e560
mov qword [r14 + 0x60], 0
mov rcx, rsi
call fcn.140133100
cmp byte [rsi + 0x11], 0
je 0x140112945
dec dword [rsi + 0x14]
jne 0x140112945
mov rcx, rsi
call fcn.1401dafc0
mov ebx, 0x65
cmp dword [rsp + 0x88], 0
mov r13, qword [rsp + 0x40]
mov r12, qword [rsp + 0x48]
mov rbp, qword [rsp + 0x78]
je 0x1401129d9
mov rcx, qword [rdi + 0x28]
xor edx, edx
call fcn.14017f2b0
mov rsi, qword [rdi + 0x28]
cmp byte [rsi + 0x10], 0
je 0x1401129d9
cmp byte [rsi + 0x11], 0
je 0x14011298f
inc dword [rsi + 0x14]
cmp byte [rsi + 0x12], 0
jne 0x14011298f
mov rcx, rsi
call fcn.140133680
cmp byte [rsi + 0x10], 2
jne 0x1401129be
mov r14, qword [rsi + 8]
mov rcx, qword [r14]
call fcn.1401a74e0
test eax, eax
jne 0x1401129c6
dec dword [rsi + 0x1c]
mov rcx, qword [r14 + 0x60]
mov byte [r14 + 0x24], 1
call fcn.14017e560
mov qword [r14 + 0x60], 0
mov rcx, rsi
call fcn.140133100
cmp byte [rsi + 0x11], 0
je 0x1401129d9
dec dword [rsi + 0x14]
jne 0x1401129d9
mov rcx, rsi
call fcn.1401dafc0
mov r14, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x58]
cmp ebx, 0xc0a
mov eax, 7
cmove ebx, eax
mov dword [rdi + 0x30], ebx
mov rax, qword [rdi]
mov r15, qword [rsp + 0x30]
test rax, rax
je 0x140112a10
mov rcx, qword [rax + 0x18]
test rcx, rcx
je 0x140112a10
call qword [0x1404b2500]
mov rcx, qword [rdi + 0x28]
cmp byte [rcx + 0x11], 0
je 0x140112a24
dec dword [rcx + 0x14]
jne 0x140112a24
call fcn.1401dafc0
mov rcx, qword [rdi + 0x20]
mov rdi, qword [rsp + 0x50]
mov rcx, qword [rcx + 0x18]
test rcx, rcx
je 0x140112a3c
call qword [0x1404b2500]
mov eax, ebx
add rsp, 0x60
pop rbx
ret