Function at 0x140046b4c
Capabilities:
Parse pe header

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
push rbp
push rsi
push rdi
sub rsp, 0x130
mov r10, qword [rcx + 0x10]
xor r11d, r11d
mov rsi, rdx
mov qword [rsp + 0x70], rdx
mov ebx, r8d
mov edx, r11d
mov rbp, rcx
mov qword [rsp + 0x40], r10
mov dword [rax + 0x18], r11d
mov dword [rsp + 0x150], ebx
mov dword [rax + 0x20], r11d
mov dword [rsp + 0x48], edx
cmp r10, r11
jne 0x140046b99
xor eax, eax
jmp 0x140047c6f
mov r8d, 1
mov ecx, 0x94
lea r9d, [r8 + 1]
cmp rsi, r11
je 0x140047c56
movzx edi, byte [rsi]
cmp edi, ecx
jg 0x140046c52
je 0x14004702d
cmp edi, 0x39
mov eax, 0x86
jle 0x140046dcc
cmp edi, 0x47
je 0x140046d34
cmp edi, 0x4d
je 0x140046cc6
cmp edi, 0x62
jle 0x14004735c
cmp edi, 0x6c
jle 0x140046e0d
cmp edi, 0x6d
je 0x140046ca5
cmp edi, 0x6e
je 0x140046ec8
cmp edi, 0x71
je 0x140046cb3
cmp edi, 0x75
je 0x140047c56
cmp edi, eax
jne 0x14004735c
cmp edi, eax
jne 0x140046eb8
mov rax, qword [rsi + 0x20]
mov rcx, qword [rax]
cmp dword [rcx], r8d
je 0x140046eb8
mov r9d, r8d
mov r8d, dword [rcx]
lea rdx, str.sub_select_returns__d_columns___expected__d
mov rcx, rbp
call fcn.1400191b8
jmp 0x140047c4d
cmp edi, 0xa7
jle 0x14004721e
sub edi, 0xa8
je 0x14004719a
sub edi, r8d
je 0x140046ca5
sub edi, r8d
je 0x140047128
sub edi, r8d
je 0x140047120
sub edi, r8d
je 0x14004710c
sub edi, r8d
je 0x1400470b7
sub edi, r8d
je 0x140047044
cmp edi, r9d
jne 0x14004735c
mov rsi, qword [rsi + 0x10]
mov qword [rsp + 0x70], rsi
jmp 0x140046ba8
mov r8, qword [rsi + 8]
mov edx, ebx
mov rcx, r10
call fcn.1400323e0
jmp 0x140047c6d
mov rdi, qword [rsi + 0x40]
movsx eax, word [rsi + 0x2c]
mov r9d, ebx
movsx ecx, word [rdi + 0x46]
mov edx, 0x95
mov dword [rsp + 0x20], r11d
add ecx, r8d
imul ecx, dword [rsi + 0x28]
lea r8d, [rcx + rax + 1]
mov rcx, r10
call fcn.140032364
xor edx, edx
cmp word [rsi + 0x2c], dx
jl 0x140047c4d
movsx rcx, word [rsi + 0x2c]
mov rax, qword [rdi + 8]
shl rcx, 5
cmp byte [rcx + rax + 0x19], 0x45
jne 0x140047c4d
mov rcx, qword [rsp + 0x40]
xor r9d, r9d
mov dword [rsp + 0x20], edx
lea edx, [r9 + 0x54]
mov r8d, ebx
call fcn.140032364
jmp 0x140047c4d
cmp qword [rbp + 0x98], r11
jne 0x140046d51
lea rdx, str.RAISE___may_only_be_used_within_a_trigger_program
mov rcx, rbp
call fcn.1400191b8
jmp 0x140046b92
cmp byte [rsi + 1], r9b
jne 0x140046d6c
mov rax, qword [rbp + 0x90]
mov rcx, rbp
cmp rax, r11
cmovne rcx, rax
mov byte [rcx + 0x21], r8b
mov r9d, 4
cmp byte [rsi + 1], r9b
jne 0x140046da7
mov rbx, qword [rsi + 8]
lea edx, [r9 + 0x41]
xor r8d, r8d
mov rcx, r10
mov dword [rsp + 0x20], r11d
call fcn.140032364
mov rcx, qword [rsp + 0x40]
xor r9d, r9d
mov edx, eax
mov r8, rbx
call fcn.140032c40
jmp 0x140047c4d
movsx r8d, byte [rsi + 1]
mov r9, qword [rsi + 8]
mov byte [rsp + 0x28], r11b
mov edx, 0x713
mov rcx, rbp
mov byte [rsp + 0x20], r11b
call fcn.1400539dc
jmp 0x140047c4d
cmp edi, 0x34
jge 0x140047284
cmp edi, 0x2d
jg 0x140046ee6
je 0x140047271
cmp edi, 0x13
je 0x140046ec8
cmp edi, 0x14
je 0x140046c20
cmp edi, 0x24
je 0x140046e59
cmp edi, 0x2a
jle 0x14004735c
cmp edi, 0x2c
jg 0x14004735c
mov rdx, qword [rsi + 0x10]
lea r8, [rsp + 0x160]
mov rcx, rbp
call fcn.140047d64
mov rdx, qword [rsi + 0x18]
lea r8, [rsp + 0x168]
mov rcx, rbp
mov ebx, eax
call fcn.140047d64
mov ecx, dword [rsp + 0x150]
mov dword [rsp + 0x20], ecx
mov edx, edi
mov rcx, qword [rsp + 0x40]
mov r8d, eax
mov r9d, ebx
call fcn.140032364
jmp 0x14004730f
mov rdx, qword [rsi + 0x10]
mov r8d, ebx
mov rcx, rbp
call fcn.140046b4c
mov rdi, qword [rsp + 0x40]
mov ebp, eax
cmp eax, ebx
je 0x140046e8d
and dword [rsp + 0x20], 0
mov r9d, ebx
mov r8d, eax
mov edx, 0x4f
mov rcx, rdi
call fcn.140032364
mov ebp, ebx
mov rcx, qword [rsi + 8]
xor edx, edx
call fcn.14004ef7c
and dword [rsp + 0x20], 0
mov r8d, ebx
mov edx, 0x55
mov rcx, rdi
movsx r9d, al
call fcn.140032364
mov eax, ebp
jmp 0x140047c6f
mov rdx, rsi
mov rcx, rbp
call fcn.140045d58
jmp 0x140047c6f
mov rdx, qword [rsi + 0x10]
lea r8, [rsp + 0x160]
mov rcx, rbp
call fcn.140047d64
and dword [rsp + 0x20], 0
jmp 0x140046e42
cmp edi, 0x30
je 0x140047012
cmp edi, 0x31
je 0x140046f83
jle 0x14004735c
cmp edi, 0x33
jg 0x14004735c
mov r9d, ebx
mov edx, 0x46
mov rcx, r10
mov dword [rsp + 0x20], r11d
call fcn.140032364
mov rdx, qword [rsi + 0x10]
lea r8, [rsp + 0x160]
mov rcx, rbp
call fcn.140047d64
mov edx, edi
mov rdi, qword [rsp + 0x40]
xor esi, esi
xor r9d, r9d
mov rcx, rdi
mov r8d, eax
mov dword [rsp + 0x20], esi
call fcn.140032364
mov r9d, dword [rsp + 0x150]
lea edx, [rsi + 0x46]
xor r8d, r8d
mov rcx, rdi
mov ebx, eax
mov dword [rsp + 0x20], esi
call fcn.140032364
mov edx, ebx
mov rcx, rdi
call fcn.140032d34
mov r9, rax
mov eax, dword [rdi + 0x90]
mov dword [r9 + 8], eax
jmp 0x14004730f
mov ebx, dword [rbp + 0x44]
mov r9d, dword [rsp + 0x150]
xor r8d, r8d
lea edi, [rbx - 2]
lea edx, [r8 + 0x49]
mov rcx, r10
mov dword [rbp + 0x44], edi
mov dword [rsp + 0x20], r11d
call fcn.140032364
lea r8d, [rbx - 1]
mov r9d, edi
mov rdx, rsi
mov rcx, rbp
call fcn.140046064
mov esi, dword [rsp + 0x150]
mov rbp, qword [rsp + 0x40]
and dword [rsp + 0x20], 0
mov edx, 0x46
mov r9d, esi
lea r8d, [rdx - 0x45]
mov rcx, rbp
call fcn.140032364
lea edx, [rbx - 1]
mov rcx, rbp
call fcn.14003278c
and dword [rsp + 0x20], 0
xor r9d, r9d
lea edx, [r9 + 0x53]
mov r8d, esi
mov rcx, rbp
call fcn.140032364
mov edx, edi
mov rcx, rbp
call fcn.14003278c
mov eax, esi
jmp 0x140047c6f
xor r9d, r9d
mov r8d, ebx
mov rdx, rsi
mov rcx, rbp
mov dword [rsp + 0x20], r11d
call fcn.1400480c4
jmp 0x140047c6d
mov rdx, qword [rsi + 8]
xor r8d, r8d
mov r9d, ebx
mov rcx, r10
call fcn.1400467f8
jmp 0x140047c6d
mov r8d, dword [rsi + 0x28]
mov dil, byte [rbp + 0x23]
xor r9d, r9d
lea edx, [r9 + 0x15]
mov rcx, r10
mov dword [rsp + 0x20], r11d
call fcn.140032364
mov r8d, dword [rsp + 0x150]
mov byte [rbp + 0x23], 0
mov rdx, qword [rsi + 0x10]
mov rcx, rbp
mov ebx, eax
call fcn.140046b4c
mov r9, qword [rsp + 0x40]
mov edx, ebx
mov rcx, r9
mov dword [rsp + 0x150], eax
mov byte [rbp + 0x23], dil
call fcn.140032d34
mov ecx, dword [r9 + 0x90]
mov edx, ebx
mov dword [rax + 8], ecx
mov rcx, r9
call fcn.140032d34
mov ecx, dword [rsp + 0x150]
mov dword [rax + 0xc], ecx
jmp 0x140047c4d
mov rdx, qword [rsi + 0x10]
cmp dword [rdx + 0x28], r11d
jne 0x1400470d3
mov rcx, rbp
call fcn.140045d58
mov rcx, qword [rsi + 0x10]
xor r11d, r11d
mov dword [rcx + 0x28], eax
mov r8d, dword [rsi + 0x28]
cmp r8d, r11d
je 0x1400470fc
mov rcx, qword [rsi + 0x10]
call fcn.140043460
cmp r8d, eax
je 0x1400470fc
lea rdx, str._d_columns_assigned__d_values
mov r9d, eax
mov rcx, rbp
call fcn.1400191b8
mov rcx, qword [rsi + 0x10]
movsx eax, word [rsi + 0x2c]
add eax, dword [rcx + 0x28]
jmp 0x140047c6f
lea rdx, str.row_value_misused
mov rcx, rbp
call fcn.1400191b8
jmp 0x140047c4d
mov eax, dword [rsi + 0x28]
jmp 0x140047c6f
mov rdx, qword [rsi + 0x10]
lea r8, [rsp + 0x160]
mov rcx, rbp
call fcn.140047d64
xor r9d, r9d
mov r8d, eax
mov rax, qword [rsi + 0x18]
jmp 0x140047153
bt dword [rax + 4], 0xc
jae 0x140047158
mov rax, qword [rax + 0x10]
cmp rax, r9
jne 0x140047148
mov rax, qword [rax + 8]
mov edx, r9d
mov ecx, r9d
cmp byte [rax + 4], r9b
mov eax, r9d
sete dl
cmp byte [rsi + 0x32], 0x2d
sete cl
xor ecx, edx
cmp edx, r9d
mov r9d, ebx
mov dword [rsp + 0x28], ecx
mov rcx, qword [rsp + 0x40]
sete al
mov edx, 0x58
mov dword [rsp + 0x20], eax
call fcn.140032678
jmp 0x14004730f
mov rdx, qword [rsi + 0x10]
cmp byte [rdx], 0x96
jne 0x1400471b3
mov r9d, ebx
mov rcx, rbp
call fcn.14004688c
jmp 0x140047c6d
cmp byte [rdx], cl
jne 0x1400471c0
mov rdx, qword [rdx + 8]
jmp 0x140047034
lea r8, [rsp + 0x160]
lea rdx, [rsp + 0xe0]
mov rcx, rbp
mov byte [rsp + 0xe0], 0x96
mov dword [rsp + 0xe4], 0x4400
mov dword [rsp + 0xe8], r11d
call fcn.140047d64
mov rdx, qword [rsi + 0x10]
lea r8, [rsp + 0x168]
mov rcx, rbp
mov ebx, eax
call fcn.140047d64
mov ecx, dword [rsp + 0x150]
mov edx, 0x68
mov dword [rsp + 0x20], ecx
jmp 0x140046e44
je 0x14004786c
mov ecx, edi
sub ecx, 0x95
je 0x140047808
sub ecx, r8d
je 0x1400477fd
sub ecx, r8d
je 0x140047780
sub ecx, 0xb
je 0x140047606
sub ecx, r8d
je 0x1400475d7
sub ecx, r8d
je 0x14004759d
sub ecx, r8d
je 0x14004757f
cmp ecx, r8d
jne 0x14004735c
sub edi, 0x2d
mov edx, 0x80
neg edi
mov dword [rsp + 0x48], edx
sbb edi, edi
add edi, 0x35
mov r9, qword [rsi + 0x10]
mov rcx, r9
mov qword [rsp + 0x70], r9
call fcn.140043460
mov rcx, rbp
cmp eax, r8d
jle 0x1400472b4
mov byte [rsp + 0x20], dl
mov r9b, dil
mov r8d, ebx
mov rdx, rsi
call fcn.1400435e4
jmp 0x140047c4d
lea r8, [rsp + 0x160]
mov rdx, r9
call fcn.140047d64
mov rdx, qword [rsi + 0x18]
lea r8, [rsp + 0x168]
mov rcx, rbp
mov ebx, eax
call fcn.140047d64
mov r8d, dword [rsp + 0x48]
mov ecx, dword [rsp + 0x150]
mov rdx, qword [rsp + 0x70]
or r8d, 0x20
mov r9d, edi
mov dword [rsp + 0x38], r8d
mov r8, qword [rsi + 0x18]
mov dword [rsp + 0x30], ecx
mov dword [rsp + 0x28], eax
mov rcx, rbp
mov dword [rsp + 0x20], ebx
call fcn.14004339c
mov ecx, dword [rsp + 0x160]
xor edx, edx
cmp ecx, edx
je 0x140047330
cmp byte [rbp + 0x1f], 8
jae 0x140047330
movzx eax, byte [rbp + 0x1f]
mov dword [rbp + rax*4 + 0xbc], ecx
inc byte [rbp + 0x1f]
mov ecx, dword [rsp + 0x168]
cmp ecx, edx
je 0x140047c4d
cmp byte [rbp + 0x1f], 8
jae 0x140047c4d
movzx eax, byte [rbp + 0x1f]
mov dword [rbp + rax*4 + 0xbc], ecx
inc byte [rbp + 0x1f]
jmp 0x140047c4d
mov rax, qword [rsi + 0x20]
mov rdi, qword [rbp]
mov r10, r11
lea r8, [rax + 8]
mov qword [rsp + 0x80], rax
mov eax, dword [rax]
dec dword [rbp + 0x44]
mov rdx, qword [rsi + 0x10]
mov ecx, dword [rbp + 0x44]
mov qword [rsp + 0x68], r11
mov qword [rsp + 0x58], r11
mov qword [rsp + 0x78], rdi
mov qword [rsp + 0x60], r8
mov dword [rsp + 0x168], eax
mov dword [rsp + 0x48], ecx
mov qword [rsp + 0x70], rdx
cmp rdx, r11
je 0x140047452
xor r9d, r9d
xor r8d, r8d
mov rcx, rdi
call fcn.140043fa4
mov rsi, rax
mov qword [rsp + 0x58], rax
xor eax, eax
cmp byte [rdi + 0x61], al
je 0x1400473e2
cmp rsi, rax
je 0x140047c4d
mov rdx, rsi
mov rcx, rdi
call fcn.140043de4
jmp 0x140047c4d
lea r8, [rsp + 0x160]
mov rdx, rsi
mov rcx, rbp
call fcn.140046aa4
mov rcx, rsi
mov r11d, eax
call fcn.1400430a8
xor edx, edx
mov cl, byte [rax]
btr dword [rax + 4], 0xc
lea r8d, [rdx + 0x48]
mov byte [rax + 0x32], cl
lea rcx, [rsp + 0x90]
mov byte [rax], 0xab
mov dword [rax + 0x28], r11d
call sub.msvcrt.dll_memset
mov eax, dword [rsp + 0x168]
mov r8, qword [rsp + 0x60]
lea r10, [rsp + 0x90]
mov byte [rsp + 0x90], 0x35
mov qword [rsp + 0x68], r10
mov qword [rsp + 0xa0], rsi
xor r11d, r11d
jmp 0x140047455
mov rsi, r10
mov rdi, qword [rsp + 0x40]
lea ecx, [rax - 1]
cmp ecx, r11d
jle 0x14004751e
mov rsi, qword [rsp + 0x70]
dec ecx
shr ecx, 1
inc ecx
mov qword [rsp + 0x50], rcx
cmp rsi, r11
je 0x140047488
mov rax, qword [r8]
mov qword [rsp + 0xa8], rax
jmp 0x140047490
mov r10, qword [r8]
mov qword [rsp + 0x68], r10
dec dword [rbp + 0x44]
mov ebx, dword [rbp + 0x44]
mov r9d, 0x10
mov rdx, r10
mov rcx, rbp
mov r8d, ebx
call fcn.1400485c0
mov rdx, qword [rsp + 0x60]
mov r8d, dword [rsp + 0x150]
mov rdx, qword [rdx + 0x28]
mov rcx, rbp
call fcn.140047e2c
mov r9d, dword [rsp + 0x48]
and dword [rsp + 0x20], 0
xor r8d, r8d
mov rcx, rdi
lea edx, [r8 + 0xb]
call fcn.140032364
mov edx, ebx
mov rcx, rdi
call fcn.14003278c
mov r8, qword [rsp + 0x60]
mov r10, qword [rsp + 0x68]
add r8, 0x50
sub qword [rsp + 0x50], 1
mov r11d, 0
mov qword [rsp + 0x60], r8
jne 0x140047476
mov ebx, dword [rsp + 0x150]
mov rsi, qword [rsp + 0x58]
mov eax, dword [rsp + 0x168]
test al, 1
je 0x140047542
cdqe
mov r8d, ebx
mov rcx, rbp
lea rdx, [rax + rax*4]
mov rax, qword [rsp + 0x80]
mov rdx, qword [rax + rdx*8 - 0x20]
call fcn.140047e2c
jmp 0x140047559
xor r8d, r8d
mov r9d, ebx
mov rcx, rdi
lea edx, [r8 + 0x49]
mov dword [rsp + 0x20], r11d
call fcn.140032364
test rsi, rsi
je 0x14004756b
mov rcx, qword [rsp + 0x78]
mov rdx, rsi
call fcn.140043de4
mov edx, dword [rsp + 0x48]
jmp 0x1400479d5
bt dword [rsi + 4], 0xc
jae 0x140047584
mov rsi, qword [rsi + 0x10]
cmp rsi, r11
jne 0x140047574
mov rax, qword [rsi + 8]
mov r8d, r11d
mov edx, 0x46
cmp byte [rax + 4], r11b
sete r8b
jmp 0x140047c5d
mov rcx, qword [rsi + 0x38]
movsx rax, word [rsi + 0x2e]
shl rax, 5
add rax, qword [rcx + 0x20]
cmp byte [rcx], r11b
jne 0x1400475bb
mov eax, dword [rax + 0x14]
jmp 0x140047c6f
cmp byte [rcx + 1], r11b
je 0x140047606
mov r9d, dword [rax + 0x10]
mov r8d, dword [rcx + 8]
mov dword [rsp + 0x20], ebx
mov edx, 0x5a
jmp 0x140047c65
mov rdx, qword [rsi + 0x38]
cmp rdx, r11
jne 0x1400475f0
mov r8, qword [rsi + 8]
lea rdx, str.misuse_of_aggregate:__s__
jmp 0x140047c45
movsx rax, word [rsi + 0x2e]
lea rcx, [rax + rax*2]
mov rax, qword [rdx + 0x30]
mov eax, dword [rax + rcx*8 + 0x10]
jmp 0x140047c6f
test byte [rsi + 4], 8
mov r8d, dword [rsi + 0x28]
je 0x1400476ba
mov rdx, qword [rsi + 0x10]
mov r8d, ebx
mov rcx, rbp
call fcn.140046b4c
xor ebp, ebp
mov edi, eax
movsx rax, word [rsi + 0x2c]
cmp eax, ebp
jl 0x140047647
mov rcx, qword [rsi + 0x40]
mov r8, rax
mov rdx, qword [rcx + 8]
shl r8, 5
movsx eax, byte [r8 + rdx + 0x19]
jmp 0x14004764c
mov eax, 0x44
movsx esi, al
cmp esi, 0x41
jle 0x1400476b3
cmp edi, ebx
je 0x140047673
mov rcx, qword [rsp + 0x40]
mov r9d, ebx
mov r8d, edi
mov edx, 0x4f
mov dword [rsp + 0x20], ebp
call fcn.140032364
mov edi, ebx
mov rbx, qword [rsp + 0x40]
mov r9d, 1
mov r8d, edi
lea edx, [r9 + 0x5a]
mov rcx, rbx
mov dword [rsp + 0x20], ebp
call fcn.140032364
lea ecx, [rsi + rsi - 0x84]
or r9d, 0xffffffff
movsxd r8, ecx
lea rcx, str.BCDE
mov edx, eax
add r8, rcx
mov rcx, rbx
call fcn.140032c40
mov eax, edi
jmp 0x140047c6f
cmp r8d, r11d
jge 0x14004772f
mov r9d, dword [rbp + 0x40]
cmp r9d, r11d
jge 0x14004772b
movzx r8d, word [rsi + 0x2c]
cmp r8w, r11w
jl 0x14004771f
mov rax, qword [rsi + 0x40]
movsx rdx, r8w
mov rcx, qword [rax + 8]
shl rdx, 5
cmp byte [rdx + rcx + 0x19], 0x45
jne 0x14004771f
movsx r8d, r8w
mov edx, 0x4f
mov rcx, r10
sub r8d, r9d
mov r9d, ebx
mov dword [rsp + 0x20], r11d
call fcn.140032364
mov rcx, qword [rsp + 0x40]
xor eax, eax
lea edx, [rax + 0x54]
mov dword [rsp + 0x20], eax
xor r9d, r9d
mov r8d, ebx
jmp 0x140047c68
movsx eax, r8w
sub eax, r9d
jmp 0x140047c6f
lea r8d, [r9 - 1]
movsx r9d, word [rsi + 0x2c]
mov rdx, qword [rsi + 0x40]
mov dil, byte [rsi + 0x32]
mov rcx, r10
mov dword [rsp + 0x20], ebx
call fcn.1400469b0
xor ecx, ecx
cmp dil, cl
je 0x140047c6d
mov r8, qword [rsp + 0x40]
movsxd rax, dword [r8 + 0x90]
cmp eax, ecx
jle 0x140047c6d
lea rcx, [rax + rax*2]
mov rax, qword [r8 + 0x88]
movzx edx, dil
mov word [rax + rcx*8 - 0x16], dx
jmp 0x140047c6d
movsx r8d, word [rsi + 0x2c]
mov r9d, ebx
mov edx, 0x4c
mov rcx, r10
mov dword [rsp + 0x20], r11d
call fcn.140032364
mov r11, qword [rsi + 8]
xor r9d, r9d
cmp byte [r11 + 1], r9b
je 0x140047c6d
mov rdx, qword [rbp + 0x118]
cmp rdx, r9
jne 0x1400477bc
mov rax, r9
jmp 0x1400477e4
movsx r8d, word [rsi + 0x2c]
mov eax, 2
movsxd rcx, eax
cmp dword [rdx + rcx*4], r8d
je 0x1400477da
add eax, dword [rdx + rcx*4 + 4]
cmp eax, dword [rdx + 4]
jl 0x1400477c6
jmp 0x1400477b7
add eax, 2
movsxd rcx, eax
lea rax, [rdx + rcx*4]
mov rcx, qword [rsp + 0x40]
mov dword [rdx], r9d
or r8d, 0xffffffff
mov rdx, rax
call fcn.140032cc0
jmp 0x140047c6d
xor r8d, r8d
mov rdx, rsi
jmp 0x1400471a3
mov rdx, qword [rsi + 8]
add rdx, r9
mov rcx, rdx
call fcn.140019074
mov rcx, qword [r10]
mov ebx, eax
sub ebx, r8d
mov r8d, ebx
call fcn.140019ebc
mov rsi, qword [rsp + 0x40]
mov rdi, rax
mov eax, ebx
mov ebx, dword [rsp + 0x150]
cdq
mov r9d, ebx
mov rcx, rsi
sub eax, edx
sar eax, 1
mov r8d, eax
xor eax, eax
lea edx, [rax + 0x4b]
mov dword [rsp + 0x20], eax
call fcn.140032364
mov r9d, 0xfffffff9
mov r8, rdi
mov edx, eax
mov rcx, rsi
call fcn.140032c40
jmp 0x140047c6d
bt dword [rsi + 4], 0x18
mov rcx, qword [rbp]
mov dword [rsp + 0x168], r11d
mov dl, byte [rcx + 0x5e]
mov qword [rsp + 0x68], rcx
mov qword [rsp + 0x60], r11
mov byte [rsp + 0x160], dl
jae 0x14004789f
mov rax, qword [rsi + 0x40]
mov eax, dword [rax + 0x60]
jmp 0x140047c6f
cmp byte [rbp + 0x23], r11b
je 0x1400478db
xor r8d, r8d
mov edx, r9d
mov rcx, rsi
call fcn.140044e20
xor r11d, r11d
cmp eax, r11d
je 0x1400478cf
or r8d, 0xffffffff
mov rdx, rsi
mov rcx, rbp
call fcn.140047c84
jmp 0x140047c6f
mov rcx, qword [rsp + 0x68]
mov dl, byte [rsp + 0x160]
bt dword [rsi + 4], 0xe
jae 0x1400479ac
mov qword [rsp + 0x50], r11
mov edi, r11d
mov dword [rsp + 0x48], r11d
mov rax, qword [rsi + 8]
mov r9b, dl
mov r8d, edi
mov rdx, rax
mov qword [rsp + 0x78], rax
mov byte [rsp + 0x20], r11b
call fcn.14005462c
xor edx, edx
mov r10, rax
mov qword [rsp + 0x58], rax
cmp rax, rdx
je 0x140047c39
cmp qword [rax + 0x20], rdx
jne 0x140047c39
bt dword [rax + 4], 9
jae 0x1400479e2
dec dword [rbp + 0x44]
mov eax, dword [rbp + 0x44]
mov rsi, qword [rsp + 0x50]
mov rdx, qword [rsi + 8]
mov r8d, ebx
mov rcx, rbp
mov dword [rsp + 0x160], eax
call fcn.140047e2c
cmp edi, 1
jle 0x1400479c9
lea ecx, [rdi - 1]
mov rdi, qword [rsp + 0x40]
add rsi, 0x30
mov qword [rsp + 0x168], rcx
mov r9d, dword [rsp + 0x160]
xor eax, eax
mov r8d, ebx
lea edx, [rax + 0x33]
mov rcx, rdi
mov dword [rsp + 0x20], eax
call fcn.140032364
mov rdx, qword [rsi]
mov r8d, ebx
mov rcx, rbp
call fcn.140047e2c
add rsi, 0x28
sub qword [rsp + 0x168], 1
jne 0x140047971
jmp 0x1400479ce
mov rax, qword [rsi + 0x20]
mov qword [rsp + 0x50], rax
cmp rax, r11
je 0x1400478eb
mov edi, dword [rax]
mov dword [rsp + 0x48], edi
jmp 0x1400478f3
mov rdi, qword [rsp + 0x40]
mov edx, dword [rsp + 0x160]
mov rcx, rdi
call fcn.14003278c
jmp 0x140047c4d
bt dword [rax + 4], 0xa
jae 0x140047a02
mov rax, qword [rsp + 0x50]
mov r8d, ebx
mov rcx, rbp
mov rdx, qword [rax + 8]
call fcn.140046b4c
jmp 0x140047c6f
cmp edi, edx
mov ecx, edx
mov dword [rsp + 0x160], edx
jle 0x140047a9e
mov rbx, qword [rsp + 0x50]
mov rsi, rcx
add rbx, 8
cmp ecx, 0x20
jge 0x140047a51
mov rcx, qword [rbx]
xor r8d, r8d
lea edx, [r8 + 1]
call fcn.140044e20
mov ecx, dword [rsp + 0x160]
mov r10, qword [rsp + 0x58]
xor edx, edx
cmp eax, edx
je 0x140047a51
lea eax, [rdx + 1]
shl eax, cl
or dword [rsp + 0x168], eax
test byte [r10 + 4], 0x20
je 0x140047a77
cmp rsi, rdx
jne 0x140047a77
mov rdx, qword [rbx]
mov rcx, rbp
call fcn.1400430d4
mov r10, qword [rsp + 0x58]
mov ecx, dword [rsp + 0x160]
mov rsi, rax
inc ecx
add rbx, 0x28
mov edx, 0
cmp ecx, edi
mov dword [rsp + 0x160], ecx
jl 0x140047a1f
mov ebx, dword [rsp + 0x150]
mov qword [rsp + 0x60], rsi
mov rsi, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x50]
cmp rcx, rdx
je 0x140047b1d
cmp dword [rsp + 0x168], edx
je 0x140047ac5
mov eax, dword [rbp + 0x38]
lea edx, [rax + 1]
add eax, edi
mov dword [rsp + 0x160], edx
mov dword [rbp + 0x38], eax
jmp 0x140047add
mov edx, edi
mov rcx, rbp
call fcn.140049624
mov rcx, qword [rsp + 0x50]
mov edx, eax
mov dword [rsp + 0x160], eax
test byte [r10 + 4], 0xc0
je 0x140047afe
mov r8, qword [rcx + 8]
cmp byte [r8], 0xa2
je 0x140047af4
cmp byte [r8], 0xa4
jne 0x140047afe
mov al, byte [r10 + 4]
and al, 0xc0
mov byte [r8 + 0x32], al
mov r8d, edx
mov rdx, rcx
xor r9d, r9d
mov rcx, rbp
mov byte [rsp + 0x20], 3
call fcn.140047f5c
mov rcx, qword [rsp + 0x50]
xor edx, edx
jmp 0x140047b24
mov dword [rsp + 0x160], edx
mov eax, 2
cmp edi, eax
jl 0x140047b57
lea r8d, [rax + 0x7e]
test byte [rsi + 4], r8b
je 0x140047b57
mov r9, qword [rcx + 0x30]
mov rdx, qword [rsp + 0x58]
mov r8d, edi
mov rdi, qword [rsp + 0x68]
mov rcx, rdi
call fcn.1400708f0
xor edx, edx
mov rsi, rax
jmp 0x140047b6b
cmp edi, edx
jle 0x140047b61
mov r9, qword [rcx + 8]
jmp 0x140047b3b
mov rsi, qword [rsp + 0x58]
mov rdi, qword [rsp + 0x68]
test byte [rsi + 4], 0x20
je 0x140047bb3
cmp qword [rsp + 0x60], rdx
jne 0x140047b81
mov rax, qword [rdi + 0x10]
mov qword [rsp + 0x60], rax
mov rdi, qword [rsp + 0x40]
xor r9d, r9d
mov dword [rsp + 0x20], edx
lea edx, [r9 + 0x52]
mov rcx, rdi
xor r8d, r8d
call fcn.140032364
mov r8, qword [rsp + 0x60]
mov r9d, 0xfffffffe
mov edx, eax
mov rcx, rdi
call fcn.140032c40
jmp 0x140047bb8
mov rdi, qword [rsp + 0x40]
mov eax, dword [rbp + 0x40]
mov r9d, dword [rsp + 0x160]
mov r8d, dword [rsp + 0x168]
neg eax
mov rcx, rdi
mov dword [rsp + 0x20], ebx
sbb edx, edx
add edx, 0x3f
call fcn.140032364
mov r9d, 0xfffffff8
mov r8, rsi
mov edx, eax
mov rcx, rdi
call fcn.140032c40
movsxd r11, dword [rdi + 0x90]
mov r8d, dword [rsp + 0x48]
xor r9d, r9d
cmp r11d, r9d
jle 0x140047c19
mov rax, qword [rdi + 0x88]
lea rcx, [r11 + r11*2]
movzx edx, r8b
mov word [rax + rcx*8 - 0x16], dx
cmp r8d, r9d
je 0x140047c6d
cmp dword [rsp + 0x168], r9d
jne 0x140047c6d
mov edx, dword [rsp + 0x160]
mov rcx, rbp
call fcn.140049678
jmp 0x140047c6d
mov r8, qword [rsp + 0x78]
lea rdx, str.unknown_function:__s__
mov rcx, rbp
call fcn.1400191b8
mov eax, dword [rsp + 0x150]
jmp 0x140047c6f
xor r8d, r8d
lea edx, [r8 + 0x49]
mov dword [rsp + 0x20], r11d
mov r9d, ebx
mov rcx, r10
call fcn.140032364
mov eax, ebx
mov rbx, qword [rsp + 0x158]
add rsp, 0x130
pop rdi
pop rsi
pop rbp
ret