Function at 0x14018d730
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 0x14018d784
movzx r8d, byte [rsi]
lea eax, [r8 - 0x13]
mov dword [rsp + 0x50], r8d
cmp eax, 0xa2
ja case.0x14018d7ae.48
cdqe
movzx eax, byte [r9 + rax + 0x18ec94]
mov ecx, dword [r9 + rax*4 + 0x18ec1c]
add rcx, r9
jmp rcx
mov rsi, qword [rsi + 0x10]
mov qword [rbp + 0x68], rsi
jmp 0x14018d775
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 0x14018d7e2
mov eax, dword [rax + 0x14]
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
cmp byte [rcx + 1], dl
je case.0x14018d7ae.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.1401bbec0
mov rax, qword [rbp + 0x60]
movzx eax, word [rax + 0x18]
test ax, ax
js 0x14018ec0c
movsx rax, ax
lea rdx, [rax + rax*2]
mov rax, qword [rdi + 8]
cmp byte [rax + rdx*8 + 0xc], 0x45
jne 0x14018ec0c
mov r8d, dword [rbp + 0x78]
mov edx, 0x56
mov rcx, rbx
call fcn.1401bbde0
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 0x14018d9ac
mov rdx, qword [rsi + 0x10]
mov r8d, r11d
mov rcx, rdi
call fcn.14018d730
mov rdx, qword [rsi + 0x40]
mov r11d, eax
mov dword [rbp + 0x70], eax
test rdx, rdx
je 0x14018d8a3
movsx rcx, word [rsi + 0x30]
test ecx, ecx
js 0x14018d89c
movsx eax, word [rdx + 0x36]
cmp ecx, eax
jge 0x14018d89c
mov rax, qword [rdx + 8]
lea rcx, [rcx + rcx*2]
movzx edx, byte [rax + rcx*8 + 0xc]
movsx eax, dl
jmp 0x14018d8a7
mov dl, 0x44
movsx eax, dl
jmp 0x14018d8a7
movsx eax, byte [rsi + 1]
cmp eax, 0x41
jle 0x14018d99d
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 0x14018d8f1
xor ecx, ecx
mov r8d, r11d
lea r9d, [rcx + 1]
lea edx, [rcx + 0x5f]
mov dword [rsp + 0x20], ecx
mov rcx, rbx
call fcn.14015c470
mov r8d, eax
jmp 0x14018d922
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 0x14018d946
mov r8, rdi
or rdx, 0xffffffffffffffff
call fcn.140144830
mov eax, dword [rbp + 0x70]
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
test r8d, r8d
jns 0x14018d955
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 0x14018d98f
or r9, 0xffffffffffffffff
mov r8, rdi
mov rdx, r10
mov rcx, rbx
call fcn.1401dc0d0
mov eax, dword [rbp + 0x70]
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
test rdi, rdi
je 0x14018d99d
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 0x14018da8e
mov eax, dword [rdi + 0x40]
test eax, eax
jns 0x14018da8a
movsx rdx, word [rsi + 0x30]
mov r8, qword [rsi + 0x40]
mov qword [rbp + 0x60], r8
test edx, edx
jns 0x14018d9e5
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.1401b6c20
movzx ecx, word [rsi + 0x12]
cwde
sub eax, dword [rdi + 0x40]
mov dword [rbp + 0x70], eax
test cl, 0x60
je 0x14018da68
mov edx, 0x100
test dx, cx
je 0x14018da33
mov r8, qword [rsi]
lea rdx, str.generated_column_loop_on___s_
mov rcx, rdi
call fcn.14018a7d0
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 0x14018da53
mov rdx, qword [rbp + 0x60]
mov r9d, eax
mov r8, rsi
mov rcx, rdi
call fcn.14018bd10
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 0x14018ec0f
mov r9d, r11d
mov r8d, eax
mov edx, 0x50
mov rcx, rbx
call fcn.1401bbe50
jmp 0x14018d82d
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.14018bf80
movzx r8d, byte [rbp + 0x70]
test r8b, r8b
je 0x14018daf2
mov rdx, qword [rdi + 0x10]
mov ecx, dword [rdx + 0x98]
mov rax, qword [rdx]
dec ecx
cmp byte [rax + 0x67], 0
je 0x14018dad3
lea rcx, [0x1405376c8]
jmp 0x14018dae5
movsxd rax, ecx
lea rcx, [rax + rax*2]
mov rax, qword [rdx + 0x90]
lea rcx, [rax + rcx*8]
cmp byte [rcx], 0x5d
jne 0x14018daf2
movzx eax, r8b
mov word [rcx + 2], ax
cmp qword [rsi + 0x40], 0
jne 0x14018ec0c
cmp byte [rsi + 1], 0x45
jmp 0x14018d827
mov r9d, r11d
xor r8d, r8d
mov rdx, rsi
mov rcx, rdi
call fcn.140136600
mov eax, dword [rbp + 0x78]
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
test rsi, rsi
je 0x14018db42
nop dword [rax + rax]
test dword [rsi + 4], 0x1000
je 0x14018db42
mov rsi, qword [rsi + 0x10]
test rsi, rsi
jne 0x14018db30
mov rax, qword [rsi + 8]
cmp byte [rax + 4], dl
mov rax, rdx
mov edx, 0x47
sete al
mov r8d, eax
jmp 0x14018ec01
mov rdx, qword [rsi + 8]
mov r9d, r11d
xor r8d, r8d
mov rcx, rbx
call fcn.140136910
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.1401c6340
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 0x14018dbbf
or rdx, 0xffffffffffffffff
nop dword [rax]
inc rdx
cmp byte [rax + rdx], 0
jne 0x14018dbb0
and edx, 0x3fffffff
mov rdi, qword [rsp + 0x68]
lea ebx, [rdx - 1]
mov rdx, rax
mov rcx, qword [rdi]
mov r8d, ebx
call fcn.14019f450
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 0x14018dc11
xor ecx, ecx
mov r9d, ebx
mov r8d, eax
lea edx, [rcx + 0x4c]
mov dword [rsp + 0x20], ecx
mov rcx, rdi
call fcn.14015c470
mov r8d, eax
jmp 0x14018dc41
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 0x14018dc65
mov r8, rsi
mov edx, 0xfffffff9
call fcn.140144830
mov eax, ebx
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
test r8d, r8d
jns 0x14018dc74
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 0x14018dcac
mov r9d, 0xfffffff9
mov r8, rsi
mov rcx, rdi
call fcn.1401dc0d0
mov eax, ebx
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
test rsi, rsi
je 0x14018dcb9
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.1401bbe50
mov rax, qword [rsi + 8]
cmp byte [rax + 1], 0
je 0x14018ec0c
mov rdx, qword [rdi + 0x138]
test rdx, rdx
je 0x14018dd16
mov r8d, dword [rdx + 4]
movsx r9d, word [rsi + 0x30]
mov eax, 2
movsxd rcx, eax
cmp dword [rdx + rcx*4], r9d
je 0x14018dd1c
add eax, dword [rdx + rcx*4 + 4]
cmp eax, r8d
jl 0x14018dd04
xor ecx, ecx
mov eax, ecx
jmp 0x14018dd28
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.1401bc3a0
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.14018d730
mov edi, dword [rbp + 0x78]
mov dword [rbp + 0x70], eax
cmp eax, edi
je 0x14018dd86
mov r9d, edi
mov r8d, eax
mov edx, 0x50
mov rcx, rbx
call fcn.1401bbe50
mov dword [rbp + 0x70], edi
mov rcx, qword [rsi + 8]
xor edx, edx
call fcn.140179860
mov r8d, edi
mov edx, 0x57
movsx r9d, al
mov rcx, rbx
call fcn.1401bbe50
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.140190700
mov rcx, rdi
test eax, eax
je 0x14018de0d
mov byte [rsp + 0x20], dl
movzx r9d, r8b
mov r8d, r11d
mov rdx, rsi
call fcn.1401376d0
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.14018ed40
mov rdx, qword [rsi + 0x18]
lea r8, [rsp + 0x70]
mov rcx, rdi
mov dword [rbp + 0x68], eax
call fcn.14018ed40
mov r9d, dword [rbp + 0x78]
mov edx, 0x47
lea r8d, [rdx - 0x46]
mov rcx, rbx
mov dword [rbp + 0x60], eax
call fcn.1401bbe50
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.1401355f0
cmp dword [rsp + 0x58], 0x80
mov r9d, dword [rbp + 0x78]
mov rcx, rbx
jne 0x14018deae
xor r8d, r8d
lea edx, [r8 + 0x47]
call fcn.1401bbe50
jmp 0x14018e11b
mov eax, dword [rbp + 0x60]
mov r8d, dword [rbp + 0x68]
mov edx, 0x5b
mov dword [rsp + 0x20], eax
call fcn.1401bbec0
jmp 0x14018e11b
mov rdx, qword [rsi + 0x10]
lea r8, [rbp + 0x70]
mov rcx, rdi
call fcn.14018ed40
mov rdx, qword [rsi + 0x18]
lea r8, [rsp + 0x70]
mov rcx, rdi
mov ebx, eax
call fcn.14018ed40
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.1401bbec0
jmp 0x14018e11b
mov rax, qword [rsi + 0x10]
movzx ecx, byte [rax]
cmp cl, 0x9b
jne 0x14018df3c
mov r9d, r11d
mov r8d, 1
mov rdx, rax
mov rcx, rdi
call fcn.140136600
mov eax, dword [rbp + 0x78]
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
cmp cl, 0x99
jne 0x14018df65
mov rdx, qword [rax + 8]
mov r9d, r11d
mov r8d, 1
mov rcx, rbx
call fcn.140136910
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.14018ed40
mov rdx, qword [rsi + 0x10]
lea r8, [rsp + 0x70]
mov rcx, rdi
mov ebx, eax
call fcn.14018ed40
mov r8d, dword [rbp + 0x78]
mov rcx, qword [rsp + 0x68]
mov dword [rsp + 0x20], r8d
mov r9d, ebx
mov r8d, eax
mov edx, 0x6b
call fcn.1401bbec0
jmp 0x14018e11b
mov rdx, qword [rsi + 0x10]
lea r8, [rbp + 0x70]
mov rcx, rdi
call fcn.14018ed40
mov r9d, dword [rbp + 0x78]
mov edx, dword [rsp + 0x50]
mov r8d, eax
mov rcx, rbx
call fcn.1401bbe50
jmp 0x14018e11b
mov rdx, qword [rsi + 0x10]
lea r8, [rbp + 0x70]
mov rcx, rdi
call fcn.14018ed40
mov r8d, eax
mov rax, qword [rsi + 0x18]
test rax, rax
je 0x14018e012
nop dword [rax + rax]
test dword [rax + 4], 0x1000
je 0x14018e012
mov rax, qword [rax + 0x10]
test rax, rax
jne 0x14018e000
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 0x14018e06a
mov r9d, dword [rbp + 0x78]
mov edx, 0x5a
mov rcx, rbx
mov dword [rsp + 0x20], r11d
call fcn.14015c470
mov r10d, dword [rbp + 0x60]
mov r9d, eax
jmp 0x14018e09e
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 0x14018e11b
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 0x14018e11b
mov edx, 0x47
mov r9d, r11d
mov rcx, rbx
lea r8d, [rdx - 0x46]
call fcn.1401bbe50
mov rdx, qword [rsi + 0x10]
lea r8, [rbp + 0x70]
mov rcx, rdi
call fcn.14018ed40
mov edx, dword [rsp + 0x50]
mov rcx, rbx
mov r8d, eax
call fcn.1401bbde0
mov r9d, dword [rbp + 0x78]
mov rcx, qword [rsp + 0x68]
xor r8d, r8d
mov ebx, eax
lea edx, [r8 + 0x47]
call fcn.1401bbe50
mov rcx, qword [rsp + 0x68]
mov edx, ebx
call fcn.1401c5dd0
mov ecx, dword [rbp + 0x70]
test ecx, ecx
je 0x14018e137
movzx eax, byte [rdi + 0x1f]
cmp al, 8
jae 0x14018e137
movzx eax, al
mov dword [rdi + rax*4 + 0xd8], ecx
inc byte [rdi + 0x1f]
mov ecx, dword [rsp + 0x70]
test ecx, ecx
je 0x14018ebe7
movzx eax, byte [rdi + 0x1f]
cmp al, 8
jae 0x14018ebe7
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 0x14018e1a5
movzx ecx, word [rsi + 0x32]
test cx, cx
js 0x14018e1a5
movsx eax, cx
cmp eax, dword [rdx + 0x38]
jge 0x14018e1a5
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.14018a7d0
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 0x14018e1fe
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 0x14018e235
mov rcx, rsi
call fcn.1401904e0
test eax, eax
je 0x14018e22a
or r8, 0xffffffffffffffff
mov rdx, rsi
mov rcx, rdi
call fcn.14018d510
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 0x14018e246
mov eax, dword [rax]
jmp 0x14018e248
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.140191840
mov r10, rax
mov qword [rsp + 0x60], rax
test rax, rax
je 0x14018e5ab
cmp qword [rax + 0x20], 0
jne 0x14018e5ab
mov eax, dword [rax + 4]
bt eax, 0x16
jae 0x14018e2a8
mov r9d, dword [rbp + 0x78]
mov r8d, dword [r10 + 8]
mov rdx, qword [rbp - 0x78]
mov rcx, rdi
call fcn.14013ea70
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
test eax, 0x280000
je 0x14018e2de
test dword [rsi + 4], 0x40000000
je 0x14018e2de
bt eax, 0x13
jb 0x14018e2c7
mov rax, qword [rdi]
test byte [rax + 0x30], 0x80
jne 0x14018e2de
lea rdx, str.unsafe_use_of__T__
mov r8, rsi
mov rcx, rdi
call fcn.14018a7d0
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 0x14018e38a
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 0x14018e335
mov rcx, qword [rbx]
call fcn.140190480
mov r10, qword [rsp + 0x60]
mov edx, dword [rsp + 0x70]
mov r8, qword [rbp - 0x80]
test eax, eax
mov eax, dword [rsp + 0x50]
je 0x14018e335
or dword [rbp + 0x60], eax
test byte [r10 + 4], 0x20
je 0x14018e360
test rsi, rsi
jne 0x14018e360
mov rdx, qword [rbx]
mov rcx, rdi
call fcn.14018eea0
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 0x14018e310
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 0x14018e3ef
cmp dword [rbp + 0x60], 0
je 0x14018e3a6
mov eax, dword [rdi + 0x38]
lea edx, [rax + 1]
add eax, ecx
mov dword [rdi + 0x38], eax
jmp 0x14018e3b2
mov edx, ecx
mov rcx, rdi
call fcn.14019e4d0
mov edx, eax
test byte [r10 + 4], 0xc0
mov dword [rbp + 0x68], edx
je 0x14018e3d3
mov rcx, qword [r11 + 8]
movzx eax, byte [rcx]
add al, 0x59
test al, 0xfd
jne 0x14018e3d3
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.14018b9f0
mov r11, qword [rbp - 0x78]
jmp 0x14018e3f6
mov dword [rbp + 0x68], 0
mov eax, dword [rbp + 0x70]
cmp eax, 2
jl 0x14018e421
test byte [rsi + 4], 0x80
je 0x14018e421
mov r9, qword [r11 + 0x28]
mov rdx, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x78]
mov r8d, eax
call fcn.1401cb7a0
mov qword [rsp + 0x60], rax
jmp 0x14018e447
test eax, eax
jle 0x14018e442
mov r9, qword [r11 + 8]
mov rdx, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x78]
mov r8d, eax
call fcn.1401cb7a0
mov qword [rsp + 0x60], rax
jmp 0x14018e447
mov rax, qword [rsp + 0x60]
test byte [rax + 4], 0x20
je 0x14018e528
cmp qword [rsp + 0x58], 0
jne 0x14018e467
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 0x14018e496
xor r9d, r9d
xor r8d, r8d
mov rcx, rbx
lea edx, [r9 + 0x54]
mov dword [rsp + 0x20], 0
call fcn.14015c470
mov r8d, eax
jmp 0x14018e4bf
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 0x14018e4d9
mov r8, qword [rsp + 0x58]
mov edx, 0xfffffffe
call fcn.140144830
jmp 0x14018e528
test r8d, r8d
jns 0x14018e4e8
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 0x14018e516
mov r8, qword [rsp + 0x58]
mov r9d, 0xfffffffe
mov rcx, rbx
call fcn.1401dc0d0
jmp 0x14018e528
mov rax, qword [rsp + 0x58]
test rax, rax
je 0x14018e528
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.1401bbbb0
test esi, esi
je 0x14018e59d
cmp dword [rbp + 0x60], 0
jne 0x14018e59d
cmp esi, 1
jne 0x14018e58f
mov ecx, dword [rbp + 0x68]
test ecx, ecx
je 0x14018e59d
movzx eax, byte [rdi + 0x1f]
cmp al, 8
jae 0x14018e59d
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 0x14018e59d
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.14018a7d0
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 0x14018da25
cmp r8d, 0x8a
jne 0x14018e630
test dword [rsi + 4], 0x800
je 0x14018e630
mov rax, qword [rsi + 0x20]
mov rcx, qword [rax + 0x20]
mov r8d, dword [rcx]
cmp r8d, 1
je 0x14018e630
cmp dword [rdi + 0x30], edx
jne 0x14018ebeb
lea rdx, str.sub_select_returns__d_columns___expected__d
mov r9d, 1
mov rcx, rdi
call fcn.14018a7d0
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.140183600
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov rdx, qword [rsi + 0x10]
cmp dword [rdx + 0x2c], 0
jne 0x14018e662
mov rcx, rdi
call fcn.140183600
mov ecx, eax
mov rax, qword [rsi + 0x10]
mov dword [rax + 0x2c], ecx
mov rcx, qword [rsi + 0x10]
call fcn.140191590
mov r8d, dword [rsi + 0x2c]
cmp r8d, eax
je 0x14018e686
lea rdx, str._d_columns_assigned__d_values
mov r9d, eax
mov rcx, rdi
call fcn.14018a7d0
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.1401bbe50
mov rcx, qword [rbp + 0x60]
lea r8d, [rbx - 1]
mov r9d, edi
mov rdx, rsi
call fcn.14018c180
mov rsi, qword [rsp + 0x68]
mov r9d, dword [rbp + 0x78]
mov edx, 0x47
mov rcx, rsi
lea r8d, [rdx - 0x46]
call fcn.1401bbe50
lea edx, [rbx - 1]
mov rcx, rsi
call fcn.1401c9090
mov r8d, dword [rbp + 0x78]
xor r9d, r9d
lea edx, [r9 + 0x55]
mov rcx, rsi
call fcn.1401bbe50
mov edx, edi
mov rcx, rsi
call fcn.1401c9090
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.14013e890
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.1401b6c20
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.1401bbe50
movsxd rax, dword [rbp + 0x70]
test eax, eax
js 0x14018ebe7
lea rcx, [rax + rax*2]
mov rax, qword [rdi + 8]
cmp byte [rax + rcx*8 + 0xc], 0x45
jne 0x14018ebe7
mov r8d, dword [rbp + 0x78]
mov edx, 0x56
mov rcx, rbx
call fcn.1401bbde0
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.14018a7d0
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.1401bbde0
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.14018d730
mov rcx, qword [rsp + 0x68]
mov edx, edi
mov r11d, eax
mov rax, qword [rbp + 0x60]
mov byte [rax + 0x23], bl
call fcn.1401c5dd0
mov rcx, qword [rsp + 0x68]
mov r8d, r11d
mov edx, edi
call fcn.1401bc520
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 0x14018e935
xor r9d, r9d
xor r8d, r8d
mov rdx, r10
mov rcx, r11
call fcn.14013f070
mov rsi, rax
mov qword [rsp + 0x68], rax
mov rax, qword [rsp + 0x60]
cmp byte [rax + 0x67], 0
je 0x14018e8d8
test rsi, rsi
je 0x14018ebe7
mov rdx, rsi
mov rcx, rax
call fcn.14018f580
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.14013ed70
mov rcx, rsi
mov edx, eax
call fcn.1401406c0
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 0x14018e9fa
dec rax
shr rax, 1
inc rax
mov qword [rbp - 0x78], rax
test r10, r10
je 0x14018e962
mov rax, qword [rcx]
mov qword [rbp - 0x58], rax
jmp 0x14018e96a
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.14018f9a0
mov rdx, qword [rsp + 0x78]
mov r8d, esi
mov rdx, qword [rdx + 0x20]
mov rcx, rdi
call fcn.14018b920
mov edx, dword [rbp + 0x68]
mov rcx, rbx
call fcn.1401c55e0
mov r9, qword [rbx + 0x18]
mov ecx, dword [rbp + 0x70]
mov eax, dword [r9 + 0x48]
not ecx
add eax, dword [r9 + 0x44]
jns 0x14018e9c5
mov r8d, ecx
mov rdx, rbx
mov rcx, r9
call fcn.140172d20
jmp 0x14018e9d5
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 0x14018e954
mov r8d, dword [rbp + 0x60]
test r8b, 1
je 0x14018ea1e
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.14018b920
jmp 0x14018ea30
xor r8d, r8d
mov r9d, esi
mov rcx, rbx
lea edx, [r8 + 0x4a]
call fcn.1401bbe50
mov rax, qword [rsp + 0x68]
test rax, rax
je 0x14018ea47
mov rcx, qword [rsp + 0x60]
mov rdx, rax
call fcn.14018f580
mov rcx, rbx
call fcn.140177e50
mov rcx, qword [rbx + 0x18]
mov edx, dword [rbp + 0x68]
mov eax, dword [rcx + 0x48]
not edx
add eax, dword [rcx + 0x44]
jns 0x14018ea7e
mov r8d, edx
mov rdx, rbx
call fcn.140172d20
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 0x14018eacc
cmp byte [rdi + 0x1e], dl
jne 0x14018eacc
lea rdx, str.RAISE___may_only_be_used_within_a_trigger_program
mov rcx, rdi
call fcn.14018a7d0
xor eax, eax
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
cmp byte [rsi + 1], 2
jne 0x14018eae7
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 0x14018ebb8
movsxd r8, dword [rbx + 0x98]
mov rdi, qword [rsi + 8]
cmp dword [rbx + 0x9c], r8d
jg 0x14018eb25
mov r9d, 4
mov dword [rsp + 0x20], edx
xor r8d, r8d
lea edx, [r9 + 0x42]
mov rcx, rbx
call fcn.14015c470
mov r8d, eax
jmp 0x14018eb50
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 0x14018eb76
mov r8, rdi
xor edx, edx
call fcn.140144830
mov r11d, dword [rbp + 0x78]
mov eax, r11d
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
test r8d, r8d
jns 0x14018eb85
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.1401dc0d0
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.14019f090
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.1401bbe50
mov eax, dword [rbp + 0x78]
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret