Function at 0x14018eb20
Capabilities:
Parse pe header

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push rdi
lea rbp, [rsp - 0x38]
sub rsp, 0x138
mov rbx, qword [rcx + 0x10]
mov rsi, rdx
xor edx, edx
mov r11d, r8d
mov dword [rbp + 0x78], r8d
mov rdi, rcx
mov qword [rsp + 0x68], rbx
mov qword [rsp + 0x58], rdx
mov dword [rbp + 0x70], edx
mov dword [rsp + 0x70], edx
lea r9, [0x140000000]
mov r8d, 0x79
test rsi, rsi
je 0x14018eb74
movzx r8d, byte [rsi]
lea eax, [r8 - 0x13]
mov dword [rsp + 0x50], r8d
cmp eax, 0xa2
ja case.0x14018eb9e.48
cdqe
movzx eax, byte [r9 + rax + 0x190084]
mov ecx, dword [r9 + rax*4 + 0x19000c]
add rcx, r9
jmp rcx
mov rsi, qword [rsi + 0x10]
mov qword [rbp + 0x68], rsi
jmp 0x14018eb65
mov rcx, qword [rsi + 0x38]
movsx rax, word [rsi + 0x32]
shl rax, 5
add rax, qword [rcx + 0x20]
mov qword [rbp + 0x60], rax
cmp byte [rcx], dl
jne 0x14018ebd2
mov eax, dword [rax + 0x14]
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
cmp byte [rcx + 1], dl
je case.0x14018eb9e.37
mov r8d, dword [rcx + 8]
movsx r9d, word [rax + 0x1a]
mov rdi, qword [rax]
mov edx, 0x5d
mov rcx, rbx
mov dword [rsp + 0x20], r11d
call fcn.1401bd2b0
mov rax, qword [rbp + 0x60]
movzx eax, word [rax + 0x18]
test ax, ax
js 0x14018fffc
movsx rax, ax
lea rdx, [rax + rax*2]
mov rax, qword [rdi + 8]
cmp byte [rax + rdx*8 + 0xc], 0x45
jne 0x14018fffc
mov r8d, dword [rbp + 0x78]
mov edx, 0x56
mov rcx, rbx
call fcn.1401bd1d0
mov eax, dword [rbp + 0x78]
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
test byte [rsi + 4], 8
mov r8d, dword [rsi + 0x2c]
je 0x14018ed9c
mov rdx, qword [rsi + 0x10]
mov r8d, r11d
mov rcx, rdi
call fcn.14018eb20
mov rdx, qword [rsi + 0x40]
mov r11d, eax
mov dword [rbp + 0x70], eax
test rdx, rdx
je 0x14018ec93
movsx rcx, word [rsi + 0x30]
test ecx, ecx
js 0x14018ec8c
movsx eax, word [rdx + 0x36]
cmp ecx, eax
jge 0x14018ec8c
mov rax, qword [rdx + 8]
lea rcx, [rcx + rcx*2]
movzx edx, byte [rax + rcx*8 + 0xc]
movsx eax, dl
jmp 0x14018ec97
mov dl, 0x44
movsx eax, dl
jmp 0x14018ec97
movsx eax, byte [rsi + 1]
cmp eax, 0x41
jle 0x14018ed8d
movsxd r8, dword [rbx + 0x98]
lea eax, [rax*2 - 0x84]
movsxd rdi, eax
lea rax, str.BCDE
add rdi, rax
cmp dword [rbx + 0x9c], r8d
jg 0x14018ece1
xor ecx, ecx
mov r8d, r11d
lea r9d, [rcx + 1]
lea edx, [rcx + 0x5f]
mov dword [rsp + 0x20], ecx
mov rcx, rbx
call fcn.14015d860
mov r8d, eax
jmp 0x14018ed12
lea rcx, [r8 + r8*2]
lea eax, [r8 + 1]
xor edx, edx
mov dword [rbx + 0x98], eax
mov rax, qword [rbx + 0x90]
mov dword [rax + rcx*8], 0x5f
mov dword [rax + rcx*8 + 4], r11d
mov qword [rax + rcx*8 + 8], 1
mov qword [rax + rcx*8 + 0x10], rdx
mov rcx, qword [rbx]
cmp byte [rcx + 0x67], 0
je 0x14018ed36
mov r8, rdi
or rdx, 0xffffffffffffffff
call fcn.140145c20
mov eax, dword [rbp + 0x70]
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
test r8d, r8d
jns 0x14018ed45
mov r8d, dword [rbx + 0x98]
dec r8d
movsxd rax, r8d
lea rcx, [rax + rax*2]
mov rax, qword [rbx + 0x90]
cmp byte [rax + rcx*8 + 1], 0
lea r10, [rax + rcx*8]
je 0x14018ed7f
or r9, 0xffffffffffffffff
mov r8, rdi
mov rdx, r10
mov rcx, rbx
call fcn.1401dd4c0
mov eax, dword [rbp + 0x70]
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
test rdi, rdi
je 0x14018ed8d
mov qword [r10 + 0x10], rdi
mov byte [r10 + 1], 0xff
mov eax, dword [rbp + 0x70]
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
test r8d, r8d
jns 0x14018ee7e
mov eax, dword [rdi + 0x40]
test eax, eax
jns 0x14018ee7a
movsx rdx, word [rsi + 0x30]
mov r8, qword [rsi + 0x40]
mov qword [rbp + 0x60], r8
test edx, edx
jns 0x14018edd5
or rdx, 0xffffffffffffffff
sub edx, eax
mov eax, edx
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov rax, qword [r8 + 8]
lea rcx, [rdx + rdx*2]
lea rsi, [rax + rcx*8]
mov rcx, r8
call fcn.1401b8010
movzx ecx, word [rsi + 0x12]
cwde
sub eax, dword [rdi + 0x40]
mov dword [rbp + 0x70], eax
test cl, 0x60
je 0x14018ee58
mov edx, 0x100
test dx, cx
je 0x14018ee23
mov r8, qword [rsi]
lea rdx, str.generated_column_loop_on___s_
mov rcx, rdi
call fcn.14018bbc0
xor eax, eax
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
or cx, dx
mov word [rsi + 0x12], cx
test cl, cl
jns 0x14018ee43
mov rdx, qword [rbp + 0x60]
mov r9d, eax
mov r8, rsi
mov rcx, rdi
call fcn.14018d100
mov eax, dword [rbp + 0x70]
mov ecx, 0xfe7f
and word [rsi + 0x12], cx
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
cmp byte [rsi + 0xc], 0x45
jne 0x14018ffff
mov r9d, r11d
mov r8d, eax
mov edx, 0x50
mov rcx, rbx
call fcn.1401bd240
jmp 0x14018ec1d
lea r8d, [rax - 1]
movzx eax, byte [rsi + 2]
movsx r9d, word [rsi + 0x30]
mov rdx, qword [rsi + 0x40]
mov rcx, rbx
mov byte [rbp + 0x70], al
mov dword [rsp + 0x20], r11d
call fcn.14018d370
movzx r8d, byte [rbp + 0x70]
test r8b, r8b
je 0x14018eee2
mov rdx, qword [rdi + 0x10]
mov ecx, dword [rdx + 0x98]
mov rax, qword [rdx]
dec ecx
cmp byte [rax + 0x67], 0
je 0x14018eec3
lea rcx, [0x140539bf8]
jmp 0x14018eed5
movsxd rax, ecx
lea rcx, [rax + rax*2]
mov rax, qword [rdx + 0x90]
lea rcx, [rax + rcx*8]
cmp byte [rcx], 0x5d
jne 0x14018eee2
movzx eax, r8b
mov word [rcx + 2], ax
cmp qword [rsi + 0x40], 0
jne 0x14018fffc
cmp byte [rsi + 1], 0x45
jmp 0x14018ec17
mov r9d, r11d
xor r8d, r8d
mov rdx, rsi
mov rcx, rdi
call fcn.1401379f0
mov eax, dword [rbp + 0x78]
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
test rsi, rsi
je 0x14018ef32
nop dword [rax + rax]
test dword [rsi + 4], 0x1000
je 0x14018ef32
mov rsi, qword [rsi + 0x10]
test rsi, rsi
jne 0x14018ef20
mov rax, qword [rsi + 8]
cmp byte [rax + 4], dl
mov rax, rdx
mov edx, SQLBindParameter
sete al
mov r8d, eax
jmp 0x14018fff1
mov rdx, qword [rsi + 8]
mov r9d, r11d
xor r8d, r8d
mov rcx, rbx
call fcn.140137d00
mov eax, dword [rbp + 0x78]
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov r8, qword [rsi + 8]
mov edx, r11d
mov rcx, rbx
call fcn.1401c7730
mov eax, dword [rbp + 0x78]
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov rax, qword [rsi + 8]
add rax, 2
je 0x14018efaf
or rdx, 0xffffffffffffffff
nop dword [rax]
inc rdx
cmp byte [rax + rdx], 0
jne 0x14018efa0
and edx, 0x3fffffff
mov rdi, qword [rsp + 0x68]
lea ebx, [rdx - 1]
mov rdx, rax
mov rcx, qword [rdi]
mov r8d, ebx
call fcn.1401a0840
movsxd r8, dword [rdi + 0x98]
mov rsi, rax
mov eax, ebx
mov ebx, dword [rbp + 0x78]
cdq
sub eax, edx
sar eax, 1
mov r10d, eax
cmp dword [rdi + 0x9c], r8d
jg 0x14018f001
xor ecx, ecx
mov r9d, ebx
mov r8d, eax
lea edx, [rcx + 0x4c]
mov dword [rsp + 0x20], ecx
mov rcx, rdi
call fcn.14015d860
mov r8d, eax
jmp 0x14018f031
lea rcx, [r8 + r8*2]
lea eax, [r8 + 1]
xor edx, edx
mov dword [rdi + 0x98], eax
mov rax, qword [rdi + 0x90]
mov dword [rax + rcx*8], 0x4c
mov dword [rax + rcx*8 + 4], r10d
mov dword [rax + rcx*8 + 8], ebx
mov dword [rax + rcx*8 + 0xc], edx
mov qword [rax + rcx*8 + 0x10], rdx
mov rcx, qword [rdi]
cmp byte [rcx + 0x67], 0
je 0x14018f055
mov r8, rsi
mov edx, 0xfffffff9
call fcn.140145c20
mov eax, ebx
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
test r8d, r8d
jns 0x14018f064
mov r8d, dword [rdi + 0x98]
dec r8d
movsxd rax, r8d
lea rcx, [rax + rax*2]
mov rax, qword [rdi + 0x90]
cmp byte [rax + rcx*8 + 1], 0
lea rdx, [rax + rcx*8]
je 0x14018f09c
mov r9d, 0xfffffff9
mov r8, rsi
mov rcx, rdi
call fcn.1401dd4c0
mov eax, ebx
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
test rsi, rsi
je 0x14018f0a9
mov qword [rdx + 0x10], rsi
mov byte [rdx + 1], 0xf9
mov eax, ebx
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
movsx r8d, word [rsi + 0x30]
mov r9d, r11d
mov edx, 0x4d
mov rcx, rbx
call fcn.1401bd240
mov rax, qword [rsi + 8]
cmp byte [rax + 1], 0
je 0x14018fffc
mov rdx, qword [rdi + 0x138]
test rdx, rdx
je 0x14018f106
mov r8d, dword [rdx + 4]
movsx r9d, word [rsi + 0x30]
mov eax, 2
movsxd rcx, eax
cmp dword [rdx + rcx*4], r9d
je 0x14018f10c
add eax, dword [rdx + rcx*4 + 4]
cmp eax, r8d
jl 0x14018f0f4
xor ecx, ecx
mov eax, ecx
jmp 0x14018f118
add eax, 2
movsxd rcx, eax
lea rax, [rdx + rcx*4]
xor ecx, ecx
mov dword [rdx], ecx
or r8, 0xffffffffffffffff
mov rdx, rax
mov rcx, rbx
call fcn.1401bd790
mov eax, dword [rbp + 0x78]
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov eax, dword [rsi + 0x2c]
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov rdx, qword [rsi + 0x10]
mov r8d, r11d
mov rcx, rdi
call fcn.14018eb20
mov edi, dword [rbp + 0x78]
mov dword [rbp + 0x70], eax
cmp eax, edi
je 0x14018f176
mov r9d, edi
mov r8d, eax
mov edx, 0x50
mov rcx, rbx
call fcn.1401bd240
mov dword [rbp + 0x70], edi
mov rcx, qword [rsi + 8]
xor edx, edx
call fcn.14017ac50
mov r8d, edi
mov edx, 0x57
movsx r9d, al
mov rcx, rbx
call fcn.1401bd240
mov eax, dword [rbp + 0x70]
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
cmp r8d, 0x2d
sete dl
add edx, 0x34
mov r8d, edx
mov dword [rsp + 0x50], edx
mov edx, pe_nt_image_headers64
mov qword [rsp + 0x58], rdx
mov r9, qword [rsi + 0x10]
mov rcx, r9
mov qword [rsp + 0x78], r9
call fcn.140191af0
mov rcx, rdi
test eax, eax
je 0x14018f1fd
mov byte [rsp + 0x20], dl
movzx r9d, r8b
mov r8d, r11d
mov rdx, rsi
call fcn.140138ac0
mov r11d, dword [rbp + 0x78]
mov eax, r11d
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
lea r8, [rbp + 0x70]
mov rdx, r9
call fcn.140190130
mov rdx, qword [rsi + 0x18]
lea r8, [rsp + 0x70]
mov rcx, rdi
mov dword [rbp + 0x68], eax
call fcn.140190130
mov r9d, dword [rbp + 0x78]
mov edx, SQLBindParameter
lea r8d, [rdx - 0x46]
mov rcx, rbx
mov dword [rbp + 0x60], eax
call fcn.1401bd240
mov ecx, dword [rsi + 4]
mov eax, dword [rbx + 0x98]
mov r9d, dword [rsp + 0x50]
mov r8, qword [rsi + 0x18]
mov rdx, qword [rsp + 0x78]
shr ecx, 9
add eax, 2
and ecx, 1
mov dword [rsp + 0x40], ecx
mov rcx, qword [rsp + 0x58]
mov dword [rsp + 0x38], ecx
mov dword [rsp + 0x30], eax
mov eax, dword [rbp + 0x60]
mov dword [rsp + 0x28], eax
mov eax, dword [rbp + 0x68]
mov rcx, rdi
mov dword [rsp + 0x20], eax
call fcn.1401369e0
cmp dword [rsp + 0x58], 0x80
mov r9d, dword [rbp + 0x78]
mov rcx, rbx
jne 0x14018f29e
xor r8d, r8d
lea edx, [r8 + 0x47]
call fcn.1401bd240
jmp 0x14018f50b
mov eax, dword [rbp + 0x60]
mov r8d, dword [rbp + 0x68]
mov edx, 0x5b
mov dword [rsp + 0x20], eax
call fcn.1401bd2b0
jmp 0x14018f50b
mov rdx, qword [rsi + 0x10]
lea r8, [rbp + 0x70]
mov rcx, rdi
call fcn.140190130
mov rdx, qword [rsi + 0x18]
lea r8, [rsp + 0x70]
mov rcx, rdi
mov ebx, eax
call fcn.140190130
mov r8d, dword [rbp + 0x78]
mov edx, dword [rsp + 0x50]
mov rcx, qword [rsp + 0x68]
mov dword [rsp + 0x20], r8d
mov r9d, ebx
mov r8d, eax
call fcn.1401bd2b0
jmp 0x14018f50b
mov rax, qword [rsi + 0x10]
movzx ecx, byte [rax]
cmp cl, 0x9b
jne 0x14018f32c
mov r9d, r11d
mov r8d, 1
mov rdx, rax
mov rcx, rdi
call fcn.1401379f0
mov eax, dword [rbp + 0x78]
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
cmp cl, 0x99
jne 0x14018f355
mov rdx, qword [rax + 8]
mov r9d, r11d
mov r8d, 1
mov rcx, rbx
call fcn.140137d00
mov eax, dword [rbp + 0x78]
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
lea r8, [rbp + 0x70]
lea rdx, [rbp - 0x20]
mov rcx, rdi
mov byte [rbp - 0x20], 0x9b
mov qword [rbp - 0x1c], 0x4400
call fcn.140190130
mov rdx, qword [rsi + 0x10]
lea r8, [rsp + 0x70]
mov rcx, rdi
mov ebx, eax
call fcn.140190130
mov r8d, dword [rbp + 0x78]
mov rcx, qword [rsp + 0x68]
mov dword [rsp + 0x20], r8d
mov r9d, ebx
mov r8d, eax
mov edx, reloc.ODBC32.dll_SQLConnectW
call fcn.1401bd2b0
jmp 0x14018f50b
mov rdx, qword [rsi + 0x10]
lea r8, [rbp + 0x70]
mov rcx, rdi
call fcn.140190130
mov r9d, dword [rbp + 0x78]
mov edx, dword [rsp + 0x50]
mov r8d, eax
mov rcx, rbx
call fcn.1401bd240
jmp 0x14018f50b
mov rdx, qword [rsi + 0x10]
lea r8, [rbp + 0x70]
mov rcx, rdi
call fcn.140190130
mov r8d, eax
mov rax, qword [rsi + 0x18]
test rax, rax
je 0x14018f402
nop dword [rax + rax]
test dword [rax + 4], 0x1000
je 0x14018f402
mov rax, qword [rax + 0x10]
test rax, rax
jne 0x14018f3f0
mov rax, qword [rax + 8]
movsxd r9, dword [rbx + 0x98]
xor edx, edx
mov ecx, edx
mov r10d, edx
mov r11d, edx
cmp byte [rax + 4], cl
sete cl
cmp byte [rsi + 2], 0x2d
sete r10b
test ecx, ecx
mov dword [rbp + 0x68], ecx
sete r11b
mov dword [rbp + 0x60], r10d
cmp dword [rbx + 0x9c], r9d
jg 0x14018f45a
mov r9d, dword [rbp + 0x78]
mov edx, 0x5a
mov rcx, rbx
mov dword [rsp + 0x20], r11d
call fcn.14015d860
mov r10d, dword [rbp + 0x60]
mov r9d, eax
jmp 0x14018f48e
lea rcx, [r9 + r9*2]
lea eax, [r9 + 1]
mov dword [rbx + 0x98], eax
mov rax, qword [rbx + 0x90]
mov dword [rax + rcx*8 + 4], r8d
mov r8d, dword [rbp + 0x78]
mov dword [rax + rcx*8], 0x5a
mov dword [rax + rcx*8 + 0xc], r11d
mov qword [rax + rcx*8 + 0x10], rdx
mov dword [rax + rcx*8 + 8], r8d
mov rax, qword [rbx]
cmp byte [rax + 0x67], 0
jne 0x14018f50b
xor r10d, dword [rbp + 0x68]
movsxd rax, r9d
lea rcx, [rax + rax*2]
mov rax, qword [rbx + 0x90]
mov byte [rax + rcx*8 + 1], 0xfd
mov dword [rax + rcx*8 + 0x10], r10d
jmp 0x14018f50b
mov edx, SQLBindParameter
mov r9d, r11d
mov rcx, rbx
lea r8d, [rdx - 0x46]
call fcn.1401bd240
mov rdx, qword [rsi + 0x10]
lea r8, [rbp + 0x70]
mov rcx, rdi
call fcn.140190130
mov edx, dword [rsp + 0x50]
mov rcx, rbx
mov r8d, eax
call fcn.1401bd1d0
mov r9d, dword [rbp + 0x78]
mov rcx, qword [rsp + 0x68]
xor r8d, r8d
mov ebx, eax
lea edx, [r8 + 0x47]
call fcn.1401bd240
mov rcx, qword [rsp + 0x68]
mov edx, ebx
call fcn.1401c71c0
mov ecx, dword [rbp + 0x70]
test ecx, ecx
je 0x14018f527
movzx eax, byte [rdi + 0x1f]
cmp al, 8
jae 0x14018f527
movzx eax, al
mov dword [rdi + rax*4 + 0xd8], ecx
inc byte [rdi + 0x1f]
mov ecx, dword [rsp + 0x70]
test ecx, ecx
je 0x14018ffd7
movzx eax, byte [rdi + 0x1f]
cmp al, 8
jae 0x14018ffd7
mov r11d, dword [rbp + 0x78]
movzx eax, al
mov dword [rdi + rax*4 + 0xd8], ecx
inc byte [rdi + 0x1f]
mov eax, r11d
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov rdx, qword [rsi + 0x38]
test rdx, rdx
je 0x14018f595
movzx ecx, word [rsi + 0x32]
test cx, cx
js 0x14018f595
movsx eax, cx
cmp eax, dword [rdx + 0x38]
jge 0x14018f595
mov rax, qword [rdx + 0x30]
movsx rcx, cx
shl rcx, 5
mov eax, dword [rcx + rax + 0x10]
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
lea rdx, str.misuse_of_aggregate:__T__
mov r8, rsi
mov rcx, rdi
call fcn.14018bbc0
mov r11d, dword [rbp + 0x78]
mov eax, r11d
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
test dword [rsi + 4], 0x1000000
mov r10, qword [rdi]
mov dword [rbp + 0x60], edx
movzx ecx, byte [r10 + 0x64]
mov qword [rsp + 0x78], r10
mov qword [rsp + 0x58], rdx
mov byte [rbp + 0x70], cl
je 0x14018f5ee
mov rax, qword [rsi + 0x40]
mov eax, dword [rax + 0x60]
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
cmp byte [rdi + 0x23], dl
je 0x14018f625
mov rcx, rsi
call fcn.1401918d0
test eax, eax
je 0x14018f61a
or r8, 0xffffffffffffffff
mov rdx, rsi
mov rcx, rdi
call fcn.14018e900
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
movzx ecx, byte [rbp + 0x70]
mov r10, qword [rsp + 0x78]
xor edx, edx
mov rax, qword [rsi + 0x20]
mov qword [rbp - 0x78], rax
test rax, rax
je 0x14018f636
mov eax, dword [rax]
jmp 0x14018f638
mov eax, edx
mov rdx, qword [rsi + 8]
movzx r9d, cl
mov r8d, eax
mov rcx, r10
mov dword [rbp + 0x70], eax
mov byte [rsp + 0x20], 0
call fcn.140192c30
mov r10, rax
mov qword [rsp + 0x60], rax
test rax, rax
je 0x14018f99b
cmp qword [rax + 0x20], 0
jne 0x14018f99b
mov eax, dword [rax + 4]
bt eax, 0x16
jae 0x14018f698
mov r9d, dword [rbp + 0x78]
mov r8d, dword [r10 + 8]
mov rdx, qword [rbp - 0x78]
mov rcx, rdi
call fcn.14013fe60
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
test eax, 0x280000
je 0x14018f6ce
test dword [rsi + 4], 0x40000000
je 0x14018f6ce
bt eax, 0x13
jb 0x14018f6b7
mov rax, qword [rdi]
test byte [rax + 0x30], 0x80
jne 0x14018f6ce
lea rdx, str.unsafe_use_of__T__
mov r8, rsi
mov rcx, rdi
call fcn.14018bbc0
mov r10, qword [rsp + 0x60]
movsxd rcx, dword [rbp + 0x70]
xor edx, edx
mov dword [rsp + 0x70], edx
mov r8, rcx
mov qword [rbp - 0x80], rcx
test ecx, ecx
jle 0x14018f77a
mov rbx, qword [rbp - 0x78]
mov eax, 1
mov esi, edx
add rbx, 8
mov dword [rsp + 0x50], eax
nop word [rax + rax]
cmp edx, 0x20
jge 0x14018f725
mov rcx, qword [rbx]
call fcn.140191870
mov r10, qword [rsp + 0x60]
mov edx, dword [rsp + 0x70]
mov r8, qword [rbp - 0x80]
test eax, eax
mov eax, dword [rsp + 0x50]
je 0x14018f725
or dword [rbp + 0x60], eax
test byte [r10 + 4], 0x20
je 0x14018f750
test rsi, rsi
jne 0x14018f750
mov rdx, qword [rbx]
mov rcx, rdi
call fcn.140190290
mov r10, qword [rsp + 0x60]
mov edx, dword [rsp + 0x70]
mov r8, qword [rbp - 0x80]
mov rsi, rax
mov eax, dword [rsp + 0x50]
rol eax, 1
inc edx
add rbx, 0x20
dec r8
mov dword [rsp + 0x70], edx
mov dword [rsp + 0x50], eax
mov qword [rbp - 0x80], r8
jne 0x14018f700
mov rbx, qword [rsp + 0x68]
mov ecx, dword [rbp + 0x70]
mov qword [rsp + 0x58], rsi
mov rsi, qword [rbp + 0x68]
mov r11, qword [rbp - 0x78]
test r11, r11
je 0x14018f7df
cmp dword [rbp + 0x60], 0
je 0x14018f796
mov eax, dword [rdi + 0x38]
lea edx, [rax + 1]
add eax, ecx
mov dword [rdi + 0x38], eax
jmp 0x14018f7a2
mov edx, ecx
mov rcx, rdi
call fcn.14019f8c0
mov edx, eax
test byte [r10 + 4], 0xc0
mov dword [rbp + 0x68], edx
je 0x14018f7c3
mov rcx, qword [r11 + 8]
movzx eax, byte [rcx]
add al, 0x59
test al, 0xfd
jne 0x14018f7c3
movzx eax, byte [r10 + 4]
and al, 0xc0
mov byte [rcx + 2], al
mov r8d, edx
xor r9d, r9d
mov rcx, rdi
mov rdx, r11
mov byte [rsp + 0x20], 3
call fcn.14018cde0
mov r11, qword [rbp - 0x78]
jmp 0x14018f7e6
mov dword [rbp + 0x68], 0
mov eax, dword [rbp + 0x70]
cmp eax, 2
jl 0x14018f811
test byte [rsi + 4], 0x80
je 0x14018f811
mov r9, qword [r11 + 0x28]
mov rdx, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x78]
mov r8d, eax
call fcn.1401ccb90
mov qword [rsp + 0x60], rax
jmp 0x14018f837
test eax, eax
jle 0x14018f832
mov r9, qword [r11 + 8]
mov rdx, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x78]
mov r8d, eax
call fcn.1401ccb90
mov qword [rsp + 0x60], rax
jmp 0x14018f837
mov rax, qword [rsp + 0x60]
test byte [rax + 4], 0x20
je 0x14018f918
cmp qword [rsp + 0x58], 0
jne 0x14018f857
mov rax, qword [rsp + 0x78]
mov rax, qword [rax + 0x10]
mov qword [rsp + 0x58], rax
movsxd r8, dword [rbx + 0x98]
cmp dword [rbx + 0x9c], r8d
jg 0x14018f886
xor r9d, r9d
xor r8d, r8d
mov rcx, rbx
lea edx, [r9 + 0x54]
mov dword [rsp + 0x20], 0
call fcn.14015d860
mov r8d, eax
jmp 0x14018f8af
lea rcx, [r8 + r8*2]
lea eax, [r8 + 1]
xor edx, edx
mov dword [rbx + 0x98], eax
mov rax, qword [rbx + 0x90]
mov qword [rax + rcx*8], 0x54
mov qword [rax + rcx*8 + 8], rdx
mov qword [rax + rcx*8 + 0x10], rdx
mov rcx, qword [rbx]
cmp byte [rcx + 0x67], 0
je 0x14018f8c9
mov r8, qword [rsp + 0x58]
mov edx, 0xfffffffe
call fcn.140145c20
jmp 0x14018f918
test r8d, r8d
jns 0x14018f8d8
mov r8d, dword [rbx + 0x98]
dec r8d
movsxd rax, r8d
lea rcx, [rax + rax*2]
mov rax, qword [rbx + 0x90]
cmp byte [rax + rcx*8 + 1], 0
lea rdx, [rax + rcx*8]
je 0x14018f906
mov r8, qword [rsp + 0x58]
mov r9d, 0xfffffffe
mov rcx, rbx
call fcn.1401dd4c0
jmp 0x14018f918
mov rax, qword [rsp + 0x58]
test rax, rax
je 0x14018f918
mov qword [rdx + 0x10], rax
mov byte [rdx + 1], 0xfe
movzx eax, byte [rsi + 2]
mov ebx, dword [rbp + 0x78]
mov esi, dword [rbp + 0x70]
mov r8d, dword [rbp + 0x68]
mov edx, dword [rbp + 0x60]
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0x60]
mov r9d, ebx
mov rcx, rdi
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], esi
call fcn.1401bcfa0
test esi, esi
je 0x14018f98d
cmp dword [rbp + 0x60], 0
jne 0x14018f98d
cmp esi, 1
jne 0x14018f97f
mov ecx, dword [rbp + 0x68]
test ecx, ecx
je 0x14018f98d
movzx eax, byte [rdi + 0x1f]
cmp al, 8
jae 0x14018f98d
movzx eax, al
mov dword [rdi + rax*4 + 0xd8], ecx
inc byte [rdi + 0x1f]
mov eax, ebx
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
cmp esi, dword [rdi + 0x28]
jle 0x14018f98d
mov eax, dword [rbp + 0x68]
mov dword [rdi + 0x28], esi
mov dword [rdi + 0x2c], eax
mov eax, ebx
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
lea rdx, str.unknown_function:__T__
mov r8, rsi
mov rcx, rdi
call fcn.14018bbc0
mov r11d, dword [rbp + 0x78]
mov eax, r11d
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov rax, qword [rdi]
cmp byte [rax + 0x67], dl
jne 0x14018ee15
cmp r8d, 0x8a
jne 0x14018fa20
test dword [rsi + 4], 0x800
je 0x14018fa20
mov rax, qword [rsi + 0x20]
mov rcx, qword [rax + 0x20]
mov r8d, dword [rcx]
cmp r8d, 1
je 0x14018fa20
cmp dword [rdi + 0x30], edx
jne 0x14018ffdb
lea rdx, str.sub_select_returns__d_columns___expected__d
mov r9d, 1
mov rcx, rdi
call fcn.14018bbc0
mov r11d, dword [rbp + 0x78]
mov eax, r11d
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov rdx, rsi
mov rcx, rdi
call fcn.1401849f0
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov rdx, qword [rsi + 0x10]
cmp dword [rdx + 0x2c], 0
jne 0x14018fa52
mov rcx, rdi
call fcn.1401849f0
mov ecx, eax
mov rax, qword [rsi + 0x10]
mov dword [rax + 0x2c], ecx
mov rcx, qword [rsi + 0x10]
call fcn.140192980
mov r8d, dword [rsi + 0x2c]
cmp r8d, eax
je 0x14018fa76
lea rdx, str._d_columns_assigned__d_values
mov r9d, eax
mov rcx, rdi
call fcn.14018bbc0
mov rax, qword [rsi + 0x10]
movsx ecx, word [rsi + 0x30]
add ecx, dword [rax + 0x2c]
mov eax, ecx
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov ebx, dword [rdi + 0x44]
mov rax, qword [rbp + 0x60]
mov rcx, qword [rsp + 0x68]
xor r8d, r8d
lea edi, [rbx - 2]
mov r9d, r11d
lea edx, [r8 + 0x4a]
mov dword [rax + 0x44], edi
call fcn.1401bd240
mov rcx, qword [rbp + 0x60]
lea r8d, [rbx - 1]
mov r9d, edi
mov rdx, rsi
call fcn.14018d570
mov rsi, qword [rsp + 0x68]
mov r9d, dword [rbp + 0x78]
mov edx, SQLBindParameter
mov rcx, rsi
lea r8d, [rdx - 0x46]
call fcn.1401bd240
lea edx, [rbx - 1]
mov rcx, rsi
call fcn.1401ca480
mov r8d, dword [rbp + 0x78]
xor r9d, r9d
lea edx, [r9 + 0x55]
mov rcx, rsi
call fcn.1401bd240
mov edx, edi
mov rcx, rsi
call fcn.1401ca480
mov eax, dword [rbp + 0x78]
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov dword [rsp + 0x20], edx
xor r9d, r9d
mov r8d, r11d
mov rdx, rsi
mov rcx, rdi
call fcn.14013fc80
mov eax, dword [rbp + 0x78]
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
movsx eax, word [rsi + 0x30]
mov rdi, qword [rsi + 0x40]
movzx edx, ax
mov rcx, rdi
mov dword [rbp + 0x70], eax
call fcn.1401b8010
movsx r8d, word [rdi + 0x36]
mov r9d, r11d
inc r8d
movsx ecx, ax
mov edx, 0x9c
inc ecx
imul r8d, dword [rsi + 0x2c]
add r8d, ecx
mov rcx, rbx
call fcn.1401bd240
movsxd rax, dword [rbp + 0x70]
test eax, eax
js 0x14018ffd7
lea rcx, [rax + rax*2]
mov rax, qword [rdi + 8]
cmp byte [rax + rcx*8 + 0xc], 0x45
jne 0x14018ffd7
mov r8d, dword [rbp + 0x78]
mov edx, 0x56
mov rcx, rbx
call fcn.1401bd1d0
mov r11d, dword [rbp + 0x78]
mov eax, r11d
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
lea rdx, str.row_value_misused
mov rcx, rdi
call fcn.14018bbc0
mov r11d, dword [rbp + 0x78]
mov eax, r11d
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov r8d, dword [rsi + 0x2c]
mov rcx, qword [rsp + 0x68]
movzx ebx, byte [rdi + 0x23]
mov edx, SafeArrayPutElement
call fcn.1401bd1d0
mov r8d, dword [rbp + 0x78]
mov edi, eax
mov rax, qword [rbp + 0x60]
mov byte [rax + 0x23], 0
mov rdx, qword [rsi + 0x10]
mov rcx, rax
call fcn.14018eb20
mov rcx, qword [rsp + 0x68]
mov edx, edi
mov r11d, eax
mov rax, qword [rbp + 0x60]
mov byte [rax + 0x23], bl
call fcn.1401c71c0
mov rcx, qword [rsp + 0x68]
mov r8d, r11d
mov edx, edi
call fcn.1401bd910
mov eax, r11d
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov rax, qword [rsi + 0x20]
mov r11, qword [rdi]
mov qword [rsp + 0x68], rdx
mov r8d, dword [rax]
dec dword [rdi + 0x44]
mov r10, qword [rsi + 0x10]
lea rcx, [rax + 8]
mov qword [rsp + 0x70], rax
mov eax, dword [rdi + 0x44]
mov qword [rsp + 0x60], r11
mov qword [rsp + 0x78], rcx
mov dword [rbp + 0x60], r8d
mov dword [rbp + 0x68], eax
mov qword [rbp - 0x80], r10
test r10, r10
je 0x14018fd25
xor r9d, r9d
xor r8d, r8d
mov rdx, r10
mov rcx, r11
call fcn.140140460
mov rsi, rax
mov qword [rsp + 0x68], rax
mov rax, qword [rsp + 0x60]
cmp byte [rax + 0x67], 0
je 0x14018fcc8
test rsi, rsi
je 0x14018ffd7
mov rdx, rsi
mov rcx, rax
call fcn.140190970
mov r11d, dword [rbp + 0x78]
mov eax, r11d
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
lea r8, [rbp + 0x70]
mov rdx, rsi
mov rcx, rdi
call fcn.140140160
mov rcx, rsi
mov edx, eax
call fcn.140141ab0
mov rcx, qword [rsp + 0x78]
mov r10, qword [rbp - 0x80]
mov r8d, dword [rbp + 0x60]
xor edx, edx
mov qword [rbp - 0x70], rdx
mov qword [rbp - 0x60], rdx
mov qword [rbp - 0x68], rdx
mov qword [rbp - 0x58], rdx
mov qword [rbp - 0x50], rdx
mov qword [rbp - 0x48], rdx
mov qword [rbp - 0x40], rdx
mov qword [rbp - 0x38], rdx
mov qword [rbp - 0x30], rdx
lea rdx, [rbp - 0x70]
mov byte [rbp - 0x70], 0x35
mov qword [rbp - 0x60], rsi
mov qword [rsp + 0x58], rdx
mov esi, dword [rbp + 0x78]
lea eax, [r8 - 1]
cdqe
test rax, rax
jle 0x14018fdea
dec rax
shr rax, 1
inc rax
mov qword [rbp - 0x78], rax
test r10, r10
je 0x14018fd52
mov rax, qword [rcx]
mov qword [rbp - 0x58], rax
jmp 0x14018fd5a
mov rdx, qword [rcx]
mov qword [rsp + 0x58], rdx
dec dword [rdi + 0x44]
mov r8d, dword [rdi + 0x44]
mov r9d, reloc.WS2_32.dll_recv
mov rcx, rdi
mov dword [rbp + 0x70], r8d
call fcn.140190d90
mov rdx, qword [rsp + 0x78]
mov r8d, esi
mov rdx, qword [rdx + 0x20]
mov rcx, rdi
call fcn.14018cd10
mov edx, dword [rbp + 0x68]
mov rcx, rbx
call fcn.1401c69d0
mov r9, qword [rbx + 0x18]
mov ecx, dword [rbp + 0x70]
mov eax, dword [r9 + 0x48]
not ecx
add eax, dword [r9 + 0x44]
jns 0x14018fdb5
mov r8d, ecx
mov rdx, rbx
mov rcx, r9
call fcn.140174110
jmp 0x14018fdc5
mov eax, dword [rbx + 0x98]
movsxd rdx, ecx
mov rcx, qword [r9 + 0x50]
mov dword [rcx + rdx*4], eax
mov rcx, qword [rsp + 0x78]
mov rdx, qword [rsp + 0x58]
mov r10, qword [rbp - 0x80]
add rcx, 0x40
dec qword [rbp - 0x78]
mov qword [rsp + 0x78], rcx
jne 0x14018fd44
mov r8d, dword [rbp + 0x60]
test r8b, 1
je 0x14018fe0e
mov rax, qword [rsp + 0x70]
movsxd rdx, r8d
mov rcx, rdi
shl rdx, 5
mov r8d, esi
mov rdx, qword [rdx + rax - 0x18]
call fcn.14018cd10
jmp 0x14018fe20
xor r8d, r8d
mov r9d, esi
mov rcx, rbx
lea edx, [r8 + 0x4a]
call fcn.1401bd240
mov rax, qword [rsp + 0x68]
test rax, rax
je 0x14018fe37
mov rcx, qword [rsp + 0x60]
mov rdx, rax
call fcn.140190970
mov rcx, rbx
call fcn.140179240
mov rcx, qword [rbx + 0x18]
mov edx, dword [rbp + 0x68]
mov eax, dword [rcx + 0x48]
not edx
add eax, dword [rcx + 0x44]
jns 0x14018fe6e
mov r8d, edx
mov rdx, rbx
call fcn.140174110
mov r11d, dword [rbp + 0x78]
mov eax, r11d
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov eax, dword [rbx + 0x98]
mov rcx, qword [rcx + 0x50]
mov r11d, dword [rbp + 0x78]
movsxd rdx, edx
mov dword [rcx + rdx*4], eax
mov eax, r11d
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
cmp qword [rdi + 0xa8], rdx
jne 0x14018febc
cmp byte [rdi + 0x1e], dl
jne 0x14018febc
lea rdx, str.RAISE___may_only_be_used_within_a_trigger_program
mov rcx, rdi
call fcn.14018bbc0
xor eax, eax
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
cmp byte [rsi + 1], 2
jne 0x14018fed7
mov rax, qword [rdi + 0xa0]
mov rcx, rdi
test rax, rax
cmovne rcx, rax
mov byte [rcx + 0x21], 1
movzx eax, byte [rsi + 1]
cmp al, 4
jne 0x14018ffa8
movsxd r8, dword [rbx + 0x98]
mov rdi, qword [rsi + 8]
cmp dword [rbx + 0x9c], r8d
jg 0x14018ff15
mov r9d, 4
mov dword [rsp + 0x20], edx
xor r8d, r8d
lea edx, [r9 + 0x42]
mov rcx, rbx
call fcn.14015d860
mov r8d, eax
jmp 0x14018ff40
lea rcx, [r8 + r8*2]
lea eax, [r8 + 1]
mov dword [rbx + 0x98], eax
mov rax, qword [rbx + 0x90]
mov qword [rax + rcx*8], reloc.msi.dll_MsiGetPropertyW
mov qword [rax + rcx*8 + 8], 4
mov qword [rax + rcx*8 + 0x10], rdx
mov rcx, qword [rbx]
cmp byte [rcx + 0x67], 0
je 0x14018ff66
mov r8, rdi
xor edx, edx
call fcn.140145c20
mov r11d, dword [rbp + 0x78]
mov eax, r11d
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
test r8d, r8d
jns 0x14018ff75
mov r8d, dword [rbx + 0x98]
dec r8d
movsxd rax, r8d
xor r9d, r9d
mov r8, rdi
lea rcx, [rax + rax*2]
mov rax, qword [rbx + 0x90]
lea rdx, [rax + rcx*8]
mov rcx, rbx
call fcn.1401dd4c0
mov r11d, dword [rbp + 0x78]
mov eax, r11d
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
cmp qword [rdi + 0xa8], 0
mov r9, qword [rsi + 8]
movsx r8d, al
mov edx, 1
mov eax, 0x713
mov rcx, rdi
cmovne edx, eax
mov byte [rsp + 0x28], 0
mov byte [rsp + 0x20], 0
call fcn.1401a0480
mov r11d, dword [rbp + 0x78]
mov eax, r11d
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
xor r8d, r8d
lea edx, [r8 + 0x4a]
mov r9d, r11d
mov rcx, rbx
call fcn.1401bd240
mov eax, dword [rbp + 0x78]
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret