Function at 0x180076d68
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
xor ebx, ebx
mov r11, rcx
mov rcx, qword [rcx + 0x10]
mov rsi, rdx
mov r10d, r8d
mov dword [rbp + 0x78], r8d
mov qword [rsp + 0x40], rcx
mov dword [rsp + 0x48], ebx
mov dword [rsp + 0x60], ebx
mov edx, ebx
mov dword [rbp + 0x70], ebx
test rcx, rcx
jne 0x180076db3
xor eax, eax
jmp 0x180077c32
mov r8d, 0x94
lea r9d, [r8 + 0x13]
test rsi, rsi
je 0x180077c20
movzx edi, byte [rsi]
cmp edi, r8d
jg 0x180076e63
je 0x1800771dc
mov eax, 0x86
cmp edi, 0x39
jle 0x180076fbb
cmp edi, 0x47
je 0x180076f3a
cmp edi, 0x4d
je 0x180076ecb
cmp edi, 0x62
jle 0x1800773c0
cmp edi, 0x6c
jle 0x180076ff6
cmp edi, 0x6d
je 0x180076ead
cmp edi, 0x6e
je 0x1800770a4
cmp edi, 0x71
je 0x180076eba
cmp edi, 0x75
je 0x180077c20
cmp edi, eax
jne 0x1800773c0
cmp edi, eax
jne 0x180077094
mov rax, qword [rsi + 0x20]
mov rcx, qword [rax]
cmp dword [rcx], 1
je 0x180077094
mov edx, dword [rcx]
mov r8d, 1
mov rcx, r11
call fcn.1800a9914
jmp 0x180077c08
cmp edi, r9d
jle 0x180077373
sub edi, 0xa8
je 0x180077305
dec edi
je 0x180076ead
dec edi
je 0x1800772b8
dec edi
je 0x1800772b0
dec edi
je 0x18007729c
dec edi
je 0x180077247
dec edi
je 0x1800771f0
cmp edi, 2
jne 0x1800773c0
mov rsi, qword [rsi + 0x10]
mov qword [rbp + 0x68], rsi
jmp 0x180076dbd
mov r8, qword [rsi + 8]
mov edx, r10d
call fcn.180062748
jmp 0x180077c2f
mov rax, qword [rsi + 0x40]
movsx r8d, word [rsi + 0x30]
mov rdi, qword [rsp + 0x40]
movsx ecx, word [rax + 0x46]
mov r9d, r10d
mov edx, 0x95
inc ecx
mov qword [rsp + 0x78], rax
imul ecx, dword [rsi + 0x2c]
inc ecx
add r8d, ecx
mov rcx, rdi
call fcn.180062708
cmp word [rsi + 0x30], bx
jl 0x180077c08
mov rax, qword [rsp + 0x78]
movsx rcx, word [rsi + 0x30]
mov rax, qword [rax + 8]
shl rcx, 5
cmp byte [rcx + rax + 0x19], 0x45
jne 0x180077c08
mov r8d, dword [rbp + 0x78]
mov edx, Ordinal_88
mov rcx, rdi
call fcn.1800626ec
jmp 0x180077c08
cmp qword [r11 + 0xa8], rbx
jne 0x180076f57
lea rdx, str.RAISE___may_only_be_used_within_a_trigger_program
mov rcx, r11
call fcn.180068e38
jmp 0x180076dac
cmp byte [rsi + 1], 2
jne 0x180076f6a
mov rcx, r11
call fcn.18007b664
mov rcx, qword [rsp + 0x40]
mov r9d, 4
cmp byte [rsi + 1], r9b
jne 0x180076f98
mov rax, qword [rsi + 8]
mov dword [rsp + 0x30], ebx
lea edx, [r9 + 0x41]
mov qword [rsp + 0x28], rax
xor r8d, r8d
mov dword [rsp + 0x20], ebx
call fcn.1800628bc
jmp 0x180077c08
movsx r8d, byte [rsi + 1]
mov r9, qword [rsi + 8]
mov edx, 0x713
mov rcx, r11
mov byte [rsp + 0x28], bl
mov byte [rsp + 0x20], bl
call fcn.18007b680
jmp 0x180077c08
cmp edi, 0x34
jge 0x18007759a
cmp edi, 0x2d
jg 0x1800770cd
je 0x180077588
cmp edi, 0x13
je 0x1800770a4
cmp edi, 0x14
je 0x180076e36
cmp edi, 0x24
je 0x180077039
lea eax, [rdi - 0x2b]
cmp eax, 1
ja 0x1800773c0
mov rdx, qword [rsi + 0x10]
lea r8, [rsp + 0x48]
mov rcx, r11
call fcn.180076cc4
mov rdx, qword [rsi + 0x18]
mov rcx, qword [rbp + 0x60]
lea r8, [rsp + 0x60]
mov ebx, eax
call fcn.180076cc4
mov edx, edi
mov ecx, dword [rbp + 0x78]
mov r8d, eax
mov r9d, ebx
mov dword [rsp + 0x20], ecx
mov rcx, qword [rsp + 0x40]
call fcn.18006283c
jmp 0x180077c08
mov rdx, qword [rsi + 0x10]
mov r8d, r10d
mov rcx, r11
call fcn.180076d68
mov ebx, dword [rbp + 0x78]
mov rdi, qword [rsp + 0x40]
mov dword [rbp + 0x70], eax
cmp eax, ebx
je 0x18007706d
mov r9d, ebx
mov r8d, eax
mov edx, reloc.WLDAP32.dll_Ordinal_79
mov rcx, rdi
call fcn.180062708
mov dword [rbp + 0x70], ebx
mov rcx, qword [rsi + 8]
xor edx, edx
call fcn.180081f54
mov r8d, ebx
mov edx, Ordinal_88
movsx r9d, al
mov rcx, rdi
call fcn.180062708
mov eax, dword [rbp + 0x70]
jmp 0x180077c32
mov rdx, rsi
mov rcx, r11
call fcn.1800810d4
jmp 0x180077c32
mov rdx, qword [rsi + 0x10]
lea r8, [rsp + 0x48]
mov rcx, r11
call fcn.180076cc4
mov r9d, dword [rbp + 0x78]
mov rcx, qword [rsp + 0x40]
mov r8d, eax
mov edx, edi
call fcn.180062708
jmp 0x180077c08
cmp edi, 0x30
je 0x1800771c2
cmp edi, 0x31
je 0x180077140
lea eax, [rdi - 0x32]
cmp eax, 1
ja 0x1800773c0
mov edx, Ordinal_73
mov r9d, r10d
lea r8d, [rdx - 0x45]
call fcn.180062708
mov rdx, qword [rsi + 0x10]
mov rcx, qword [rbp + 0x60]
lea r8, [rsp + 0x48]
call fcn.180076cc4
mov edx, edi
mov rdi, qword [rsp + 0x40]
mov rcx, rdi
mov r8d, eax
call fcn.1800626ec
mov r9d, dword [rbp + 0x78]
xor r8d, r8d
lea edx, [r8 + 0x46]
mov rcx, rdi
mov ebx, eax
call fcn.180062708
mov edx, ebx
mov rcx, rdi
call fcn.180062c88
jmp 0x180077c08
mov rcx, r11
call fcn.180062ebc
mov ebx, eax
call fcn.180062ebc
mov rcx, qword [rsp + 0x40]
xor r8d, r8d
mov r9d, r10d
mov edi, eax
lea edx, [r8 + 0x49]
call fcn.180062708
mov rcx, qword [rbp + 0x60]
mov r9d, edi
mov r8d, ebx
mov rdx, rsi
call fcn.1800a992c
mov esi, dword [rbp + 0x78]
mov rcx, qword [rsp + 0x40]
mov edx, Ordinal_73
mov r9d, esi
lea r8d, [rdx - 0x45]
call fcn.180062708
mov edx, ebx
mov rbx, qword [rsp + 0x40]
mov rcx, rbx
call fcn.1800632fc
xor r9d, r9d
mov r8d, esi
lea edx, [r9 + 0x53]
mov rcx, rbx
call fcn.180062708
mov edx, edi
mov rcx, rbx
call fcn.1800632fc
mov eax, esi
jmp 0x180077c32
xor r9d, r9d
mov r8d, r10d
mov rdx, rsi
mov rcx, r11
mov dword [rsp + 0x20], ebx
call fcn.1800a8888
jmp 0x180077c2f
mov rdx, qword [rsi + 8]
xor r8d, r8d
mov r9d, r10d
call fcn.1800a9ef0
jmp 0x180077c2f
mov r8d, dword [rsi + 0x2c]
mov bl, byte [r11 + 0x23]
mov edx, SQLAllocHandle
call fcn.1800626ec
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.180076d68
mov rcx, qword [rbp + 0x60]
mov edx, edi
mov byte [rcx + 0x23], bl
mov rcx, qword [rsp + 0x40]
mov dword [rbp + 0x78], eax
call fcn.180062c88
mov r8d, dword [rbp + 0x78]
mov rcx, qword [rsp + 0x40]
mov edx, edi
call fcn.180062c48
jmp 0x180077c08
mov rdx, qword [rsi + 0x10]
cmp dword [rdx + 0x2c], ebx
jne 0x180077263
mov rcx, r11
call fcn.1800810d4
mov rcx, qword [rsi + 0x10]
mov r11, qword [rbp + 0x60]
mov dword [rcx + 0x2c], eax
mov r8d, dword [rsi + 0x2c]
test r8d, r8d
je 0x18007728c
mov rcx, qword [rsi + 0x10]
call fcn.180086280
cmp r8d, eax
je 0x18007728c
lea rdx, str._d_columns_assigned__d_values
mov r9d, eax
mov rcx, r11
call fcn.180068e38
mov rcx, qword [rsi + 0x10]
movsx eax, word [rsi + 0x30]
add eax, dword [rcx + 0x2c]
jmp 0x180077c32
lea rdx, str.row_value_misused
mov rcx, r11
call fcn.180068e38
jmp 0x180077c08
mov eax, dword [rsi + 0x2c]
jmp 0x180077c32
mov rdx, qword [rsi + 0x10]
lea r8, [rsp + 0x48]
mov rcx, r11
call fcn.180076cc4
mov rcx, qword [rsi + 0x18]
mov r8d, eax
call fcn.180079b84
cmp byte [rsi + 0x36], 0x2d
mov r9d, dword [rbp + 0x78]
mov ecx, ebx
sete cl
xor ecx, eax
test eax, eax
mov edx, reloc.WLDAP32.dll_Ordinal_88
mov dword [rsp + 0x28], ecx
mov rcx, qword [rsp + 0x40]
sete bl
mov dword [rsp + 0x20], ebx
call fcn.180062970
jmp 0x180077c08
mov rdx, qword [rsi + 0x10]
cmp byte [rdx], 0x96
jne 0x180077324
mov r8d, 1
mov r9d, r10d
mov rcx, r11
call fcn.1800a9f84
jmp 0x180077c2f
cmp byte [rdx], r8b
jne 0x180077338
mov rdx, qword [rdx + 8]
mov r8d, 1
jmp 0x1800771e3
lea r8, [rsp + 0x48]
lea rdx, [rbp - 0x20]
mov rcx, r11
mov byte [rbp - 0x20], 0x96
mov qword [rbp - 0x1c], 0x4400
call fcn.180076cc4
mov rdx, qword [rsi + 0x10]
mov rcx, qword [rbp + 0x60]
lea r8, [rsp + 0x60]
mov ebx, eax
call fcn.180076cc4
mov edx, 0x68
jmp 0x18007701d
je 0x18007788a
mov edx, edi
sub edx, 0x95
je 0x18007782a
dec edx
je 0x18007781f
dec edx
je 0x1800777d0
sub edx, 0xb
je 0x1800776a5
dec edx
je 0x180077673
dec edx
je 0x180077635
dec edx
je 0x18007761b
dec edx
je 0x180077588
mov rax, qword [rsi + 0x20]
mov r9, qword [r11]
mov rcx, r11
mov r8d, dword [rax]
lea rdx, [rax + 8]
mov r10, rbx
mov qword [rsp + 0x68], rbx
mov qword [rsp + 0x70], rbx
mov qword [rsp + 0x78], r9
mov dword [rbp + 0x70], r8d
mov qword [rbp - 0x78], rax
mov qword [rsp + 0x50], rdx
call fcn.180062ebc
mov rcx, qword [rsi + 0x10]
mov dword [rsp + 0x4c], eax
mov qword [rsp + 0x58], rcx
test rcx, rcx
je 0x180077485
mov rdx, rcx
xor r8d, r8d
mov rcx, r9
call fcn.18007b8cc
mov rdi, rax
mov qword [rsp + 0x70], rax
mov rax, qword [rsp + 0x78]
mov rdx, rdi
cmp byte [rax + 0x61], bl
je 0x180077437
mov rcx, rax
call fcn.180069b98
jmp 0x180077c08
mov rcx, qword [rbp + 0x60]
lea r8, [rsp + 0x48]
call fcn.1800a89b8
mov rcx, rdi
mov edx, eax
call fcn.1800aa0a8
xor edx, edx
lea rcx, [rbp - 0x70]
lea r8d, [rdx + 0x48]
call fcn.1800cadf0
mov r11, qword [rbp + 0x60]
mov rdx, qword [rsp + 0x50]
mov r8d, dword [rbp + 0x70]
mov rcx, qword [rsp + 0x58]
lea r10, [rbp - 0x70]
mov qword [rsp + 0x68], r10
mov byte [rbp - 0x70], Ordinal_54
mov qword [rbp - 0x60], rdi
mov dword [rsp + 0x48], ebx
mov edi, dword [rbp + 0x78]
lea eax, [r8 - 1]
cdqe
test rax, rax
jle 0x180077535
dec rax
shr rax, 1
inc rax
mov qword [rbp - 0x80], rax
jmp 0x1800774aa
mov r11, qword [rbp + 0x60]
test rcx, rcx
je 0x1800774b8
mov rax, qword [rdx]
mov qword [rbp - 0x58], rax
jmp 0x1800774c0
mov r10, qword [rdx]
mov qword [rsp + 0x68], r10
mov rcx, r11
call fcn.180062ebc
mov r9d, 0x10
mov rdx, r10
mov r8d, eax
mov ebx, eax
call fcn.18007810c
mov rdx, qword [rsp + 0x50]
mov rsi, qword [rbp + 0x60]
mov rdx, qword [rdx + 0x28]
mov r8d, edi
mov rcx, rsi
call fcn.180076acc
mov edx, dword [rsp + 0x4c]
mov rcx, qword [rsp + 0x40]
call fcn.180062724
mov rcx, qword [rsp + 0x40]
mov edx, ebx
call fcn.1800632fc
mov rdx, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x58]
mov r10, qword [rsp + 0x68]
add rdx, 0x50
dec qword [rbp - 0x80]
mov qword [rsp + 0x50], rdx
jne 0x1800774a6
mov r8d, dword [rbp + 0x70]
jmp 0x180077539
mov rsi, qword [rbp + 0x60]
test r8b, 1
je 0x18007755c
movsxd rax, r8d
mov rcx, rsi
mov r8d, edi
lea rdx, [rax + rax*4]
mov rax, qword [rbp - 0x78]
mov rdx, qword [rax + rdx*8 - 0x20]
call fcn.180076acc
jmp 0x180077570
mov rcx, qword [rsp + 0x40]
xor r8d, r8d
mov r9d, edi
lea edx, [r8 + 0x49]
call fcn.180062708
mov rdx, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x78]
call fcn.180069b98
mov edx, dword [rsp + 0x4c]
jmp 0x1800779ab
sub edi, 0x2d
mov edx, 0x80
neg edi
mov dword [rbp + 0x70], edx
sbb edi, edi
add edi, 0x35
mov r9, qword [rsi + 0x10]
mov rcx, r9
mov qword [rbp - 0x78], r9
call fcn.1800862b0
mov rcx, r11
test eax, eax
je 0x1800775c8
mov byte [rsp + 0x20], dl
mov r9b, dil
mov r8d, r10d
mov rdx, rsi
call fcn.1800a8c34
jmp 0x180077c08
lea r8, [rsp + 0x48]
mov rdx, r9
call fcn.180076cc4
mov rdx, qword [rsi + 0x18]
mov rcx, qword [rbp + 0x60]
lea r8, [rsp + 0x60]
mov ebx, eax
call fcn.180076cc4
mov ecx, dword [rbp + 0x70]
mov r8, qword [rsi + 0x18]
mov rdx, qword [rbp - 0x78]
or ecx, 0x20
mov r9d, edi
mov dword [rsp + 0x38], ecx
mov ecx, dword [rbp + 0x78]
mov dword [rsp + 0x30], ecx
mov rcx, qword [rbp + 0x60]
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], ebx
call fcn.1800a8af0
jmp 0x180077c08
mov rcx, rsi
call fcn.180079b84
mov rcx, qword [rsp + 0x40]
mov edx, Ordinal_73
mov r8d, eax
jmp 0x180077c27
mov rdx, qword [rsi + 0x38]
movsx rax, word [rsi + 0x32]
shl rax, 5
add rax, qword [rdx + 0x20]
cmp byte [rdx], bl
jne 0x180077652
mov eax, dword [rax + 0x14]
jmp 0x180077c32
cmp byte [rdx + 1], bl
je 0x1800776a5
mov r8d, dword [rdx + 8]
mov r9d, dword [rax + 0x10]
mov edx, 0x5a
mov dword [rsp + 0x20], r10d
call fcn.18006283c
jmp 0x180077c2f
mov rdx, qword [rsi + 0x38]
test rdx, rdx
jne 0x18007768f
mov r8, qword [rsi + 8]
lea rdx, str.misuse_of_aggregate:__s__
mov rcx, r11
jmp 0x180077c03
movsx rax, word [rsi + 0x32]
lea rcx, [rax + rax*2]
mov rax, qword [rdx + 0x30]
mov eax, dword [rax + rcx*8 + 0x10]
jmp 0x180077c32
test byte [rsi + 4], 8
mov r9d, dword [rsi + 0x2c]
je 0x18007773e
mov rdx, qword [rsi + 0x10]
mov r8d, r10d
mov rcx, r11
call fcn.180076d68
movsx edx, word [rsi + 0x30]
mov rcx, qword [rsi + 0x40]
mov r8d, eax
mov dword [rbp + 0x70], eax
call fcn.18007eec8
movsx esi, al
cmp esi, 0x41
jle 0x180077736
mov edi, dword [rbp + 0x78]
cmp r8d, edi
je 0x1800776fd
mov rcx, qword [rsp + 0x40]
mov r9d, edi
mov edx, reloc.WLDAP32.dll_Ordinal_79
call fcn.180062708
mov r8d, edi
mov dword [rbp + 0x70], edi
or dword [rsp + 0x30], 0xffffffff
lea eax, [rsi*2 - 0x84]
mov edx, 0x5b
movsxd rcx, eax
lea rax, str.BCDE
lea r9d, [rdx - 0x5a]
add rcx, rax
mov qword [rsp + 0x28], rcx
mov rcx, qword [rsp + 0x40]
mov dword [rsp + 0x20], ebx
call fcn.1800628bc
mov r8d, dword [rbp + 0x70]
mov eax, r8d
jmp 0x180077c32
test r9d, r9d
jns 0x1800777ae
mov r9d, dword [r11 + 0x40]
test r9d, r9d
jns 0x1800777ab
movzx r8d, word [rsi + 0x30]
test r8w, r8w
js 0x18007779f
mov rax, qword [rsi + 0x40]
movsx rdx, r8w
mov rcx, qword [rax + 8]
shl rdx, 5
cmp byte [rdx + rcx + 0x19], 0x45
jne 0x18007779f
mov rcx, qword [rsp + 0x40]
movsx r8d, r8w
mov edx, reloc.WLDAP32.dll_Ordinal_79
sub r8d, r9d
mov r9d, r10d
call fcn.180062708
mov r8d, dword [rbp + 0x78]
mov rcx, qword [rsp + 0x40]
mov edx, Ordinal_88
call fcn.1800626ec
jmp 0x180077c2f
movsx eax, r8w
sub eax, r9d
jmp 0x180077c32
dec r9d
mov al, byte [rsi + 0x36]
movsx r8d, word [rsi + 0x30]
mov rdx, qword [rsi + 0x40]
mov byte [rsp + 0x28], al
mov rcx, r11
mov dword [rsp + 0x20], r10d
call fcn.18007697c
jmp 0x180077c32
movsx r8d, word [rsi + 0x30]
mov r9d, r10d
mov edx, Ordinal_79
call fcn.180062708
mov rax, qword [rsi + 8]
cmp byte [rax + 1], bl
je 0x180077c2f
mov rax, qword [rbp + 0x60]
movsx edx, word [rsi + 0x30]
mov r9, qword [rax + 0x128]
mov rcx, r9
call fcn.18007e8d8
mov rcx, qword [rsp + 0x40]
or r8d, 0xffffffff
mov rdx, rax
mov dword [r9], ebx
call fcn.180062dbc
jmp 0x180077c2f
xor r8d, r8d
mov rdx, rsi
jmp 0x180077314
mov rdx, qword [rsi + 8]
add rdx, 2
mov rcx, rdx
call fcn.1800684b4
mov rcx, qword [rsp + 0x40]
mov ebx, eax
call fcn.180063528
lea r8d, [rbx - 1]
mov rcx, rax
call fcn.18007f340
mov r9d, dword [rbp + 0x78]
mov dword [rsp + 0x30], 0xfffffff9
mov rcx, rax
lea eax, [rbx - 1]
cdq
mov qword [rsp + 0x28], rcx
mov rcx, qword [rsp + 0x40]
and dword [rsp + 0x20], 0
sub eax, edx
mov edx, reloc.ODBC32.dll_SQLSetEnvAttr
sar eax, 1
mov r8d, eax
call fcn.1800628bc
jmp 0x180077c2f
test dword [rsi + 4], 0x1000000
mov rcx, qword [r11]
mov dword [rsp + 0x4c], ebx
mov dl, byte [rcx + 0x5e]
mov qword [rsp + 0x68], rcx
mov qword [rbp - 0x80], rbx
mov byte [rbp + 0x70], dl
je 0x1800778b5
mov rax, qword [rsi + 0x40]
mov eax, dword [rax + 0x60]
jmp 0x180077c32
cmp byte [r11 + 0x23], bl
je 0x1800778e4
mov rcx, rsi
call fcn.180079bb8
test eax, eax
je 0x1800778dc
mov rcx, qword [rbp + 0x60]
or r8d, 0xffffffff
mov rdx, rsi
call fcn.180076bec
jmp 0x180077c32
mov rcx, qword [rsp + 0x68]
mov dl, byte [rbp + 0x70]
test dword [rsi + 4], 0x4000
je 0x1800779ba
mov qword [rsp + 0x50], rbx
mov edi, ebx
mov dword [rsp + 0x70], ebx
mov rax, qword [rsi + 8]
mov r9b, dl
mov r8d, edi
mov rdx, rax
mov qword [rbp - 0x78], rax
mov byte [rsp + 0x20], bl
call fcn.18007bf10
mov r10, rax
mov qword [rsp + 0x58], rax
test rax, rax
je 0x180077bf4
cmp qword [rax + 0x20], rbx
jne 0x180077bf4
test dword [rax + 4], 0x200
je 0x1800779d7
mov rdi, qword [rbp + 0x60]
mov rcx, rdi
call fcn.180062ebc
mov rsi, qword [rsp + 0x50]
mov ebx, dword [rbp + 0x78]
mov rdx, qword [rsi + 8]
mov r8d, ebx
mov dword [rbp + 0x70], eax
call fcn.180076acc
mov r9d, dword [rsp + 0x70]
cmp r9d, 1
jle 0x1800779a8
lea eax, [r9 - 1]
add rsi, 0x30
mov qword [rsp + 0x78], rax
mov r9d, dword [rbp + 0x70]
mov rcx, qword [rsp + 0x40]
mov r8d, ebx
mov edx, Ordinal_54
call fcn.180062708
mov rdx, qword [rsi]
mov r8d, ebx
mov rcx, rdi
call fcn.180076acc
dec qword [rsp + 0x78]
lea rsi, [rsi + 0x28]
jne 0x180077979
mov edx, dword [rbp + 0x70]
mov rcx, qword [rsp + 0x40]
call fcn.1800632fc
jmp 0x180077c08
mov rax, qword [rsi + 0x20]
mov qword [rsp + 0x50], rax
test rax, rax
je 0x1800778f6
mov edi, dword [rax]
mov dword [rsp + 0x70], edi
jmp 0x1800778fc
test dword [rax + 4], 0x400
je 0x1800779fb
mov rsi, qword [rsp + 0x50]
mov r8d, dword [rbp + 0x78]
mov rcx, qword [rbp + 0x60]
mov rdx, qword [rsi + 8]
call fcn.180076d68
jmp 0x180077c32
mov eax, ebx
mov dword [rbp + 0x70], ebx
test edi, edi
jle 0x180077a89
mov rcx, qword [rsp + 0x50]
mov rsi, qword [rbp + 0x60]
add rcx, 8
mov qword [rsp + 0x60], rcx
cmp eax, 0x20
jge 0x180077a4a
mov rcx, qword [rcx]
call fcn.180079ba4
mov r10, qword [rsp + 0x58]
test eax, eax
je 0x180077a42
mov ecx, dword [rbp + 0x70]
mov eax, 1
shl eax, cl
or dword [rsp + 0x4c], eax
mov eax, ecx
jmp 0x180077a45
mov eax, dword [rbp + 0x70]
mov rcx, qword [rsp + 0x60]
test byte [r10 + 4], 0x20
je 0x180077a73
cmp qword [rbp - 0x80], rbx
jne 0x180077a73
mov rdx, qword [rcx]
mov rcx, rsi
call fcn.18007f5fc
mov r10, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x60]
mov qword [rbp - 0x80], rax
mov eax, dword [rbp + 0x70]
inc eax
add rcx, 0x28
mov dword [rbp + 0x70], eax
mov qword [rsp + 0x60], rcx
cmp eax, edi
jl 0x180077a1a
mov rsi, qword [rbp + 0x68]
mov rdx, qword [rsp + 0x50]
test rdx, rdx
je 0x180077b01
cmp dword [rsp + 0x4c], ebx
je 0x180077ab1
mov rdi, qword [rbp + 0x60]
mov eax, dword [rdi + 0x38]
lea r8d, [rax + 1]
add eax, dword [rsp + 0x70]
mov dword [rdi + 0x38], eax
mov dword [rbp + 0x70], r8d
jmp 0x180077aca
mov edx, edi
mov rdi, qword [rbp + 0x60]
mov rcx, rdi
call fcn.18006952c
mov rdx, qword [rsp + 0x50]
mov r8d, eax
mov dword [rbp + 0x70], eax
test byte [r10 + 4], 0xc0
je 0x180077aea
mov r9, qword [rdx + 8]
mov cl, byte [r9]
add cl, 0x5e
test cl, 0xfd
jne 0x180077aea
mov al, byte [r10 + 4]
and al, 0xc0
mov byte [r9 + 0x36], al
xor r9d, r9d
mov rcx, rdi
mov byte [rsp + 0x20], 3
call fcn.180077ca8
mov rdx, qword [rsp + 0x50]
jmp 0x180077b08
mov rdi, qword [rbp + 0x60]
mov dword [rbp + 0x70], ebx
mov eax, dword [rsp + 0x70]
cmp eax, 2
jl 0x180077b3b
mov ecx, 0x80
test byte [rsi + 4], cl
je 0x180077b3b
mov r9, qword [rdx + 0x30]
mov rsi, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x58]
mov r8d, eax
mov rcx, rsi
call fcn.180084168
mov qword [rsp + 0x58], rax
jmp 0x180077b4f
mov rsi, qword [rsp + 0x68]
test eax, eax
jle 0x180077b4a
mov r9, qword [rdx + 8]
jmp 0x180077b24
mov rax, qword [rsp + 0x58]
test byte [rax + 4], 0x20
je 0x180077b8c
mov rax, qword [rbp - 0x80]
test rax, rax
jne 0x180077b62
mov rax, qword [rsi + 0x10]
mov rsi, qword [rsp + 0x40]
xor r9d, r9d
mov dword [rsp + 0x30], 0xfffffffe
mov qword [rsp + 0x28], rax
lea edx, [r9 + 0x52]
xor r8d, r8d
mov rcx, rsi
mov dword [rsp + 0x20], ebx
call fcn.1800628bc
jmp 0x180077b91
mov rsi, qword [rsp + 0x40]
mov eax, dword [rdi + 0x40]
mov edi, dword [rbp + 0x78]
mov r9d, dword [rbp + 0x70]
mov r8d, dword [rsp + 0x4c]
neg eax
mov rax, qword [rsp + 0x58]
sbb edx, edx
mov dword [rsp + 0x30], 0xfffffff8
mov qword [rsp + 0x28], rax
mov rcx, rsi
add edx, 0x3f
mov dword [rsp + 0x20], edi
call fcn.1800628bc
mov r9d, dword [rsp + 0x70]
mov rcx, rsi
movzx edx, r9b
call fcn.180062c64
test r9d, r9d
je 0x180077bf0
cmp dword [rsp + 0x4c], ebx
jne 0x180077bf0
mov edx, dword [rbp + 0x70]
mov rcx, qword [rbp + 0x60]
mov r8d, r9d
call fcn.18006956c
mov eax, edi
jmp 0x180077c32
mov r8, qword [rbp - 0x78]
mov rcx, qword [rbp + 0x60]
lea rdx, str.unknown_function:__s__
call fcn.180068e38
mov edx, dword [rsp + 0x48]
mov rcx, qword [rbp + 0x60]
call fcn.18006950c
mov edx, dword [rsp + 0x60]
call fcn.18006950c
jmp 0x180077c2f
xor r8d, r8d
lea edx, [r8 + 0x49]
mov r9d, r10d
call fcn.180062708
mov eax, dword [rbp + 0x78]
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret