Function at 0x14012adc0
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 0x14012ae14
movzx r8d, byte [rsi]
lea eax, [r8 - 0x13]
mov dword [rsp + 0x50], r8d
cmp eax, 0xa2
ja case.0x14012ae3e.48
cdqe
movzx eax, byte [r9 + rax + 0x12c324]
mov ecx, dword [r9 + rax*4 + 0x12c2ac]
add rcx, r9
jmp rcx
mov rsi, qword [rsi + 0x10]
mov qword [rbp + 0x68], rsi
jmp 0x14012ae05
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 0x14012ae72
mov eax, dword [rax + 0x14]
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
cmp byte [rcx + 1], dl
je case.0x14012ae3e.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.140159550
mov rax, qword [rbp + 0x60]
movzx eax, word [rax + 0x18]
test ax, ax
js 0x14012c29c
movsx rax, ax
lea rdx, [rax + rax*2]
mov rax, qword [rdi + 8]
cmp byte [rax + rdx*8 + 0xc], 0x45
jne 0x14012c29c
mov r8d, dword [rbp + 0x78]
mov edx, 0x56
mov rcx, rbx
call fcn.140159470
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 0x14012b03c
mov rdx, qword [rsi + 0x10]
mov r8d, r11d
mov rcx, rdi
call fcn.14012adc0
mov rdx, qword [rsi + 0x40]
mov r11d, eax
mov dword [rbp + 0x70], eax
test rdx, rdx
je 0x14012af33
movsx rcx, word [rsi + 0x30]
test ecx, ecx
js 0x14012af2c
movsx eax, word [rdx + 0x36]
cmp ecx, eax
jge 0x14012af2c
mov rax, qword [rdx + 8]
lea rcx, [rcx + rcx*2]
movzx edx, byte [rax + rcx*8 + 0xc]
movsx eax, dl
jmp 0x14012af37
mov dl, 0x44
movsx eax, dl
jmp 0x14012af37
movsx eax, byte [rsi + 1]
cmp eax, 0x41
jle 0x14012b02d
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 0x14012af81
xor ecx, ecx
mov r8d, r11d
lea r9d, [rcx + 1]
lea edx, [rcx + 0x5f]
mov dword [rsp + 0x20], ecx
mov rcx, rbx
call fcn.1400f9b00
mov r8d, eax
jmp 0x14012afb2
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 0x14012afd6
mov r8, rdi
or rdx, 0xffffffffffffffff
call fcn.1400e1ec0
mov eax, dword [rbp + 0x70]
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
test r8d, r8d
jns 0x14012afe5
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 0x14012b01f
or r9, 0xffffffffffffffff
mov r8, rdi
mov rdx, r10
mov rcx, rbx
call fcn.140179760
mov eax, dword [rbp + 0x70]
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
test rdi, rdi
je 0x14012b02d
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 0x14012b11e
mov eax, dword [rdi + 0x40]
test eax, eax
jns 0x14012b11a
movsx rdx, word [rsi + 0x30]
mov r8, qword [rsi + 0x40]
mov qword [rbp + 0x60], r8
test edx, edx
jns 0x14012b075
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.1401542b0
movzx ecx, word [rsi + 0x12]
cwde
sub eax, dword [rdi + 0x40]
mov dword [rbp + 0x70], eax
test cl, 0x60
je 0x14012b0f8
mov edx, 0x100
test dx, cx
je 0x14012b0c3
mov r8, qword [rsi]
lea rdx, str.generated_column_loop_on___s_
mov rcx, rdi
call fcn.140127e60
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 0x14012b0e3
mov rdx, qword [rbp + 0x60]
mov r9d, eax
mov r8, rsi
mov rcx, rdi
call fcn.1401293a0
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 0x14012c29f
mov r9d, r11d
mov r8d, eax
mov edx, 0x50
mov rcx, rbx
call fcn.1401594e0
jmp 0x14012aebd
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.140129610
movzx r8d, byte [rbp + 0x70]
test r8b, r8b
je 0x14012b182
mov rdx, qword [rdi + 0x10]
mov ecx, dword [rdx + 0x98]
mov rax, qword [rdx]
dec ecx
cmp byte [rax + 0x67], 0
je 0x14012b163
lea rcx, [0x1402978e8]
jmp 0x14012b175
movsxd rax, ecx
lea rcx, [rax + rax*2]
mov rax, qword [rdx + 0x90]
lea rcx, [rax + rcx*8]
cmp byte [rcx], 0x5d
jne 0x14012b182
movzx eax, r8b
mov word [rcx + 2], ax
cmp qword [rsi + 0x40], 0
jne 0x14012c29c
cmp byte [rsi + 1], 0x45
jmp 0x14012aeb7
mov r9d, r11d
xor r8d, r8d
mov rdx, rsi
mov rcx, rdi
call fcn.1400d3c90
mov eax, dword [rbp + 0x78]
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
test rsi, rsi
je 0x14012b1d2
nop dword [rax + rax]
test dword [rsi + 4], 0x1000
je 0x14012b1d2
mov rsi, qword [rsi + 0x10]
test rsi, rsi
jne 0x14012b1c0
mov rax, qword [rsi + 8]
cmp byte [rax + 4], dl
mov rax, rdx
mov edx, SQLBindParameter
sete al
mov r8d, eax
jmp 0x14012c291
mov rdx, qword [rsi + 8]
mov r9d, r11d
xor r8d, r8d
mov rcx, rbx
call fcn.1400d3fa0
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.1401639d0
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 0x14012b24f
or rdx, 0xffffffffffffffff
nop dword [rax]
inc rdx
cmp byte [rax + rdx], 0
jne 0x14012b240
and edx, 0x3fffffff
mov rdi, qword [rsp + 0x68]
lea ebx, [rdx - 1]
mov rdx, rax
mov rcx, qword [rdi]
mov r8d, ebx
call fcn.14013cae0
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 0x14012b2a1
xor ecx, ecx
mov r9d, ebx
mov r8d, eax
lea edx, [rcx + 0x4c]
mov dword [rsp + 0x20], ecx
mov rcx, rdi
call fcn.1400f9b00
mov r8d, eax
jmp 0x14012b2d1
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 0x14012b2f5
mov r8, rsi
mov edx, 0xfffffff9
call fcn.1400e1ec0
mov eax, ebx
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
test r8d, r8d
jns 0x14012b304
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 0x14012b33c
mov r9d, 0xfffffff9
mov r8, rsi
mov rcx, rdi
call fcn.140179760
mov eax, ebx
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
test rsi, rsi
je 0x14012b349
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.1401594e0
mov rax, qword [rsi + 8]
cmp byte [rax + 1], 0
je 0x14012c29c
mov rdx, qword [rdi + 0x138]
test rdx, rdx
je 0x14012b3a6
mov r8d, dword [rdx + 4]
movsx r9d, word [rsi + 0x30]
mov eax, 2
movsxd rcx, eax
cmp dword [rdx + rcx*4], r9d
je 0x14012b3ac
add eax, dword [rdx + rcx*4 + 4]
cmp eax, r8d
jl 0x14012b394
xor ecx, ecx
mov eax, ecx
jmp 0x14012b3b8
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.140159a30
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.14012adc0
mov edi, dword [rbp + 0x78]
mov dword [rbp + 0x70], eax
cmp eax, edi
je 0x14012b416
mov r9d, edi
mov r8d, eax
mov edx, 0x50
mov rcx, rbx
call fcn.1401594e0
mov dword [rbp + 0x70], edi
mov rcx, qword [rsi + 8]
xor edx, edx
call fcn.140116ef0
mov r8d, edi
mov edx, 0x57
movsx r9d, al
mov rcx, rbx
call fcn.1401594e0
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.14012dd90
mov rcx, rdi
test eax, eax
je 0x14012b49d
mov byte [rsp + 0x20], dl
movzx r9d, r8b
mov r8d, r11d
mov rdx, rsi
call fcn.1400d4d60
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.14012c3d0
mov rdx, qword [rsi + 0x18]
lea r8, [rsp + 0x70]
mov rcx, rdi
mov dword [rbp + 0x68], eax
call fcn.14012c3d0
mov r9d, dword [rbp + 0x78]
mov edx, SQLBindParameter
lea r8d, [rdx - 0x46]
mov rcx, rbx
mov dword [rbp + 0x60], eax
call fcn.1401594e0
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.1400d2c80
cmp dword [rsp + 0x58], 0x80
mov r9d, dword [rbp + 0x78]
mov rcx, rbx
jne 0x14012b53e
xor r8d, r8d
lea edx, [r8 + 0x47]
call fcn.1401594e0
jmp 0x14012b7ab
mov eax, dword [rbp + 0x60]
mov r8d, dword [rbp + 0x68]
mov edx, 0x5b
mov dword [rsp + 0x20], eax
call fcn.140159550
jmp 0x14012b7ab
mov rdx, qword [rsi + 0x10]
lea r8, [rbp + 0x70]
mov rcx, rdi
call fcn.14012c3d0
mov rdx, qword [rsi + 0x18]
lea r8, [rsp + 0x70]
mov rcx, rdi
mov ebx, eax
call fcn.14012c3d0
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.140159550
jmp 0x14012b7ab
mov rax, qword [rsi + 0x10]
movzx ecx, byte [rax]
cmp cl, 0x9b
jne 0x14012b5cc
mov r9d, r11d
mov r8d, 1
mov rdx, rax
mov rcx, rdi
call fcn.1400d3c90
mov eax, dword [rbp + 0x78]
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
cmp cl, 0x99
jne 0x14012b5f5
mov rdx, qword [rax + 8]
mov r9d, r11d
mov r8d, 1
mov rcx, rbx
call fcn.1400d3fa0
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.14012c3d0
mov rdx, qword [rsi + 0x10]
lea r8, [rsp + 0x70]
mov rcx, rdi
mov ebx, eax
call fcn.14012c3d0
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.140159550
jmp 0x14012b7ab
mov rdx, qword [rsi + 0x10]
lea r8, [rbp + 0x70]
mov rcx, rdi
call fcn.14012c3d0
mov r9d, dword [rbp + 0x78]
mov edx, dword [rsp + 0x50]
mov r8d, eax
mov rcx, rbx
call fcn.1401594e0
jmp 0x14012b7ab
mov rdx, qword [rsi + 0x10]
lea r8, [rbp + 0x70]
mov rcx, rdi
call fcn.14012c3d0
mov r8d, eax
mov rax, qword [rsi + 0x18]
test rax, rax
je 0x14012b6a2
nop dword [rax + rax]
test dword [rax + 4], 0x1000
je 0x14012b6a2
mov rax, qword [rax + 0x10]
test rax, rax
jne 0x14012b690
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 0x14012b6fa
mov r9d, dword [rbp + 0x78]
mov edx, 0x5a
mov rcx, rbx
mov dword [rsp + 0x20], r11d
call fcn.1400f9b00
mov r10d, dword [rbp + 0x60]
mov r9d, eax
jmp 0x14012b72e
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 0x14012b7ab
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 0x14012b7ab
mov edx, SQLBindParameter
mov r9d, r11d
mov rcx, rbx
lea r8d, [rdx - 0x46]
call fcn.1401594e0
mov rdx, qword [rsi + 0x10]
lea r8, [rbp + 0x70]
mov rcx, rdi
call fcn.14012c3d0
mov edx, dword [rsp + 0x50]
mov rcx, rbx
mov r8d, eax
call fcn.140159470
mov r9d, dword [rbp + 0x78]
mov rcx, qword [rsp + 0x68]
xor r8d, r8d
mov ebx, eax
lea edx, [r8 + 0x47]
call fcn.1401594e0
mov rcx, qword [rsp + 0x68]
mov edx, ebx
call fcn.140163460
mov ecx, dword [rbp + 0x70]
test ecx, ecx
je 0x14012b7c7
movzx eax, byte [rdi + 0x1f]
cmp al, 8
jae 0x14012b7c7
movzx eax, al
mov dword [rdi + rax*4 + 0xd8], ecx
inc byte [rdi + 0x1f]
mov ecx, dword [rsp + 0x70]
test ecx, ecx
je 0x14012c277
movzx eax, byte [rdi + 0x1f]
cmp al, 8
jae 0x14012c277
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 0x14012b835
movzx ecx, word [rsi + 0x32]
test cx, cx
js 0x14012b835
movsx eax, cx
cmp eax, dword [rdx + 0x38]
jge 0x14012b835
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.140127e60
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 0x14012b88e
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 0x14012b8c5
mov rcx, rsi
call fcn.14012db70
test eax, eax
je 0x14012b8ba
or r8, 0xffffffffffffffff
mov rdx, rsi
mov rcx, rdi
call fcn.14012aba0
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 0x14012b8d6
mov eax, dword [rax]
jmp 0x14012b8d8
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.14012eed0
mov r10, rax
mov qword [rsp + 0x60], rax
test rax, rax
je 0x14012bc3b
cmp qword [rax + 0x20], 0
jne 0x14012bc3b
mov eax, dword [rax + 4]
bt eax, 0x16
jae 0x14012b938
mov r9d, dword [rbp + 0x78]
mov r8d, dword [r10 + 8]
mov rdx, qword [rbp - 0x78]
mov rcx, rdi
call fcn.1400dc100
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
test eax, 0x280000
je 0x14012b96e
test dword [rsi + 4], 0x40000000
je 0x14012b96e
bt eax, 0x13
jb 0x14012b957
mov rax, qword [rdi]
test byte [rax + 0x30], 0x80
jne 0x14012b96e
lea rdx, str.unsafe_use_of__T__
mov r8, rsi
mov rcx, rdi
call fcn.140127e60
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 0x14012ba1a
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 0x14012b9c5
mov rcx, qword [rbx]
call fcn.14012db10
mov r10, qword [rsp + 0x60]
mov edx, dword [rsp + 0x70]
mov r8, qword [rbp - 0x80]
test eax, eax
mov eax, dword [rsp + 0x50]
je 0x14012b9c5
or dword [rbp + 0x60], eax
test byte [r10 + 4], 0x20
je 0x14012b9f0
test rsi, rsi
jne 0x14012b9f0
mov rdx, qword [rbx]
mov rcx, rdi
call fcn.14012c530
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 0x14012b9a0
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 0x14012ba7f
cmp dword [rbp + 0x60], 0
je 0x14012ba36
mov eax, dword [rdi + 0x38]
lea edx, [rax + 1]
add eax, ecx
mov dword [rdi + 0x38], eax
jmp 0x14012ba42
mov edx, ecx
mov rcx, rdi
call fcn.14013bb60
mov edx, eax
test byte [r10 + 4], 0xc0
mov dword [rbp + 0x68], edx
je 0x14012ba63
mov rcx, qword [r11 + 8]
movzx eax, byte [rcx]
add al, 0x59
test al, 0xfd
jne 0x14012ba63
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.140129080
mov r11, qword [rbp - 0x78]
jmp 0x14012ba86
mov dword [rbp + 0x68], 0
mov eax, dword [rbp + 0x70]
cmp eax, 2
jl 0x14012bab1
test byte [rsi + 4], 0x80
je 0x14012bab1
mov r9, qword [r11 + 0x28]
mov rdx, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x78]
mov r8d, eax
call fcn.140168e30
mov qword [rsp + 0x60], rax
jmp 0x14012bad7
test eax, eax
jle 0x14012bad2
mov r9, qword [r11 + 8]
mov rdx, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x78]
mov r8d, eax
call fcn.140168e30
mov qword [rsp + 0x60], rax
jmp 0x14012bad7
mov rax, qword [rsp + 0x60]
test byte [rax + 4], 0x20
je 0x14012bbb8
cmp qword [rsp + 0x58], 0
jne 0x14012baf7
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 0x14012bb26
xor r9d, r9d
xor r8d, r8d
mov rcx, rbx
lea edx, [r9 + 0x54]
mov dword [rsp + 0x20], 0
call fcn.1400f9b00
mov r8d, eax
jmp 0x14012bb4f
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 0x14012bb69
mov r8, qword [rsp + 0x58]
mov edx, 0xfffffffe
call fcn.1400e1ec0
jmp 0x14012bbb8
test r8d, r8d
jns 0x14012bb78
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 0x14012bba6
mov r8, qword [rsp + 0x58]
mov r9d, 0xfffffffe
mov rcx, rbx
call fcn.140179760
jmp 0x14012bbb8
mov rax, qword [rsp + 0x58]
test rax, rax
je 0x14012bbb8
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.140159240
test esi, esi
je 0x14012bc2d
cmp dword [rbp + 0x60], 0
jne 0x14012bc2d
cmp esi, 1
jne 0x14012bc1f
mov ecx, dword [rbp + 0x68]
test ecx, ecx
je 0x14012bc2d
movzx eax, byte [rdi + 0x1f]
cmp al, 8
jae 0x14012bc2d
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 0x14012bc2d
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.140127e60
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 0x14012b0b5
cmp r8d, 0x8a
jne 0x14012bcc0
test dword [rsi + 4], 0x800
je 0x14012bcc0
mov rax, qword [rsi + 0x20]
mov rcx, qword [rax + 0x20]
mov r8d, dword [rcx]
cmp r8d, 1
je 0x14012bcc0
cmp dword [rdi + 0x30], edx
jne 0x14012c27b
lea rdx, str.sub_select_returns__d_columns___expected__d
mov r9d, 1
mov rcx, rdi
call fcn.140127e60
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.140120c90
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov rdx, qword [rsi + 0x10]
cmp dword [rdx + 0x2c], 0
jne 0x14012bcf2
mov rcx, rdi
call fcn.140120c90
mov ecx, eax
mov rax, qword [rsi + 0x10]
mov dword [rax + 0x2c], ecx
mov rcx, qword [rsi + 0x10]
call fcn.14012ec20
mov r8d, dword [rsi + 0x2c]
cmp r8d, eax
je 0x14012bd16
lea rdx, str._d_columns_assigned__d_values
mov r9d, eax
mov rcx, rdi
call fcn.140127e60
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.1401594e0
mov rcx, qword [rbp + 0x60]
lea r8d, [rbx - 1]
mov r9d, edi
mov rdx, rsi
call fcn.140129810
mov rsi, qword [rsp + 0x68]
mov r9d, dword [rbp + 0x78]
mov edx, SQLBindParameter
mov rcx, rsi
lea r8d, [rdx - 0x46]
call fcn.1401594e0
lea edx, [rbx - 1]
mov rcx, rsi
call fcn.140166720
mov r8d, dword [rbp + 0x78]
xor r9d, r9d
lea edx, [r9 + 0x55]
mov rcx, rsi
call fcn.1401594e0
mov edx, edi
mov rcx, rsi
call fcn.140166720
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.1400dbf20
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.1401542b0
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.1401594e0
movsxd rax, dword [rbp + 0x70]
test eax, eax
js 0x14012c277
lea rcx, [rax + rax*2]
mov rax, qword [rdi + 8]
cmp byte [rax + rcx*8 + 0xc], 0x45
jne 0x14012c277
mov r8d, dword [rbp + 0x78]
mov edx, 0x56
mov rcx, rbx
call fcn.140159470
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.140127e60
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.140159470
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.14012adc0
mov rcx, qword [rsp + 0x68]
mov edx, edi
mov r11d, eax
mov rax, qword [rbp + 0x60]
mov byte [rax + 0x23], bl
call fcn.140163460
mov rcx, qword [rsp + 0x68]
mov r8d, r11d
mov edx, edi
call fcn.140159bb0
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 0x14012bfc5
xor r9d, r9d
xor r8d, r8d
mov rdx, r10
mov rcx, r11
call fcn.1400dc700
mov rsi, rax
mov qword [rsp + 0x68], rax
mov rax, qword [rsp + 0x60]
cmp byte [rax + 0x67], 0
je 0x14012bf68
test rsi, rsi
je 0x14012c277
mov rdx, rsi
mov rcx, rax
call fcn.14012cc10
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.1400dc400
mov rcx, rsi
mov edx, eax
call fcn.1400ddd50
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 0x14012c08a
dec rax
shr rax, 1
inc rax
mov qword [rbp - 0x78], rax
test r10, r10
je 0x14012bff2
mov rax, qword [rcx]
mov qword [rbp - 0x58], rax
jmp 0x14012bffa
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.14012d030
mov rdx, qword [rsp + 0x78]
mov r8d, esi
mov rdx, qword [rdx + 0x20]
mov rcx, rdi
call fcn.140128fb0
mov edx, dword [rbp + 0x68]
mov rcx, rbx
call fcn.140162c70
mov r9, qword [rbx + 0x18]
mov ecx, dword [rbp + 0x70]
mov eax, dword [r9 + 0x48]
not ecx
add eax, dword [r9 + 0x44]
jns 0x14012c055
mov r8d, ecx
mov rdx, rbx
mov rcx, r9
call fcn.1401103b0
jmp 0x14012c065
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 0x14012bfe4
mov r8d, dword [rbp + 0x60]
test r8b, 1
je 0x14012c0ae
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.140128fb0
jmp 0x14012c0c0
xor r8d, r8d
mov r9d, esi
mov rcx, rbx
lea edx, [r8 + 0x4a]
call fcn.1401594e0
mov rax, qword [rsp + 0x68]
test rax, rax
je 0x14012c0d7
mov rcx, qword [rsp + 0x60]
mov rdx, rax
call fcn.14012cc10
mov rcx, rbx
call fcn.1401154e0
mov rcx, qword [rbx + 0x18]
mov edx, dword [rbp + 0x68]
mov eax, dword [rcx + 0x48]
not edx
add eax, dword [rcx + 0x44]
jns 0x14012c10e
mov r8d, edx
mov rdx, rbx
call fcn.1401103b0
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 0x14012c15c
cmp byte [rdi + 0x1e], dl
jne 0x14012c15c
lea rdx, str.RAISE___may_only_be_used_within_a_trigger_program
mov rcx, rdi
call fcn.140127e60
xor eax, eax
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
cmp byte [rsi + 1], 2
jne 0x14012c177
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 0x14012c248
movsxd r8, dword [rbx + 0x98]
mov rdi, qword [rsi + 8]
cmp dword [rbx + 0x9c], r8d
jg 0x14012c1b5
mov r9d, 4
mov dword [rsp + 0x20], edx
xor r8d, r8d
lea edx, [r9 + 0x42]
mov rcx, rbx
call fcn.1400f9b00
mov r8d, eax
jmp 0x14012c1e0
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 0x14012c206
mov r8, rdi
xor edx, edx
call fcn.1400e1ec0
mov r11d, dword [rbp + 0x78]
mov eax, r11d
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
test r8d, r8d
jns 0x14012c215
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.140179760
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.14013c720
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.1401594e0
mov eax, dword [rbp + 0x78]
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret