Function at 0x140151530
Capabilities:
Parse pe header

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x20
mov r9, rcx
movzx ecx, byte [rcx]
mov rdi, rdx
lea eax, [rcx - 9]
lea r11, [0x140000000]
cmp eax, 0x75
ja case.0x140151571.34
cdqe
mov ebx, 1
movzx eax, byte [r11 + rax + 0x151cf8]
mov r8d, dword [r11 + rax*4 + 0x151c90]
add r8, r11
jmp r8
movzx eax, byte [r9 + 1]
inc r9
test byte [rax + r11 + 0x2455a0], bl
je 0x14015159b
movzx eax, byte [r9 + 1]
inc r9
inc ebx
test byte [rax + r11 + 0x2455a0], 1
jne 0x140151586
mov dword [rdx], 0x95
mov eax, ebx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
cmp byte [r9 + 1], 0x2d
jne 0x1401515eb
mov edx, 2
add r9, rdx
movzx eax, byte [r9]
test eax, eax
je 0x1401515d8
cmp eax, 0xa
je 0x1401515d8
movzx eax, byte [r9 + 1]
inc r9
inc edx
test eax, eax
jne 0x1401515c5
mov dword [rdi], 0x95
mov eax, edx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x57
mov eax, ebx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
mov dword [rdx], SafeArrayGetElement
mov eax, ebx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
mov dword [rdx], reloc.OLEAUT32.dll_SafeArrayUnaccessData
mov eax, ebx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
mov dword [rdx], ebx
mov eax, ebx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x56
mov eax, ebx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x58
mov eax, ebx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
cmp byte [r9 + 1], 0x2a
jne 0x1401516a3
movzx eax, byte [r9 + 2]
test al, al
je 0x1401516a3
mov ecx, 3
movzx eax, al
add r9, rcx
cmp eax, 0x2a
jne 0x14015167f
cmp byte [r9], 0x2f
je 0x14015168e
movzx eax, byte [r9]
test eax, eax
je 0x140151690
inc ecx
inc r9
jmp 0x140151674
inc ecx
mov dword [rdx], 0x95
mov eax, ecx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x59
mov eax, ebx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x5a
mov eax, ebx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x4c
xor edx, edx
cmp byte [r9 + 1], 0x3d
sete dl
lea eax, [rdx + 1]
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
movzx eax, byte [r9 + 1]
cmp eax, 0x3d
jne 0x140151707
mov dword [rdx], 0x4e
mov eax, 2
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
cmp eax, 0x3e
jne 0x140151722
mov dword [rdx], 0x4b
mov eax, 2
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
cmp eax, 0x3c
jne 0x14015173d
mov dword [rdx], 0x54
mov eax, 2
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x4f
mov eax, ebx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
movzx eax, byte [r9 + 1]
cmp eax, 0x3d
jne 0x140151770
mov dword [rdx], 0x50
mov eax, 2
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
cmp eax, 0x3e
jne 0x14015178b
mov dword [rdx], 0x55
mov eax, 2
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x4d
mov eax, ebx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
cmp byte [r9 + 1], 0x3d
mov eax, 2
je 0x1401517be
mov r8d, 0x94
mov dword [rdx], r8d
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x4b
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
cmp byte [r9 + 1], 0x7c
je 0x1401517e9
mov dword [rdx], 0x53
mov eax, ebx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x5b
mov eax, 2
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x19
mov eax, ebx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x52
mov eax, ebx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x5d
mov eax, ebx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
movzx r8d, byte [r9 + 1]
lea rdx, [r9 + 1]
test r8d, r8d
je 0x140151877
add r9, 2
nop word [rax + rax]
cmp r8d, ecx
jne 0x140151865
movzx eax, byte [r9]
cmp eax, ecx
jne 0x140151877
inc ebx
inc r9
inc rdx
movzx r8d, byte [rdx + 1]
inc rdx
inc ebx
inc r9
test r8d, r8d
jne 0x140151850
cmp r8d, 0x27
jne 0x140151891
mov dword [rdi], 0x5e
lea eax, [rbx + 1]
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
test r8d, r8d
je 0x1401518ab
mov eax, 0x1a
mov dword [rdi], eax
lea eax, [rbx + 1]
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
mov r8d, 0x94
mov eax, ebx
mov dword [rdi], r8d
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
movzx eax, byte [r9 + 1]
test byte [rax + r11 + 0x2455a0], 4
jne case.0x140151571.24
mov dword [rdx], 0x76
mov eax, ebx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x81
movzx eax, byte [r9]
xor edx, edx
test byte [rax + r11 + 0x2455a0], 4
je 0x140151914
mov rcx, r9
nop
movzx eax, byte [rcx + 1]
inc rcx
inc edx
test byte [rax + r11 + 0x2455a0], 4
jne 0x140151900
movsxd rax, edx
cmp byte [rax + r9], 0x2e
jne 0x14015194e
inc edx
movsxd rcx, edx
add rcx, r9
movzx eax, byte [rcx]
test byte [rax + r11 + 0x2455a0], 4
je 0x140151948
movzx eax, byte [rcx + 1]
inc rcx
inc edx
test byte [rax + r11 + 0x2455a0], 4
jne 0x140151934
mov dword [rdi], 0x82
movsxd rcx, edx
movzx eax, byte [rcx + r9]
cmp al, 0x65
je 0x14015195e
cmp al, 0x45
jne 0x1401519ba
movzx eax, byte [rcx + r9 + 1]
test byte [rax + r11 + 0x2455a0], 4
jne 0x140151988
cmp al, 0x2b
je 0x140151977
cmp al, 0x2d
jne 0x1401519ba
movzx eax, byte [rcx + r9 + 2]
test byte [rax + r11 + 0x2455a0], 4
je 0x1401519ba
add edx, 2
movsxd rcx, edx
add rcx, r9
movzx eax, byte [rcx]
test byte [rax + r11 + 0x2455a0], 4
je 0x1401519b4
nop
movzx eax, byte [rcx + 1]
inc rcx
inc edx
test byte [rax + r11 + 0x2455a0], 4
jne 0x1401519a0
mov dword [rdi], 0x82
movsxd r10, edx
add r10, r9
movzx eax, byte [r10]
test byte [rax + r11 + 0x2455a0], 0x46
je 0x1401519f7
mov r8d, 0x94
nop word [rax + rax]
inc r10
mov dword [rdi], r8d
inc edx
movzx ecx, byte [r10]
test byte [rcx + r11 + 0x2455a0], 0x46
jne 0x1401519e0
mov eax, edx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
cmp ecx, 0x5d
je 0x140151a22
inc r9
nop dword [rax]
movzx ecx, byte [r9]
test ecx, ecx
je 0x140151a22
inc ebx
inc r9
cmp ecx, 0x5d
jne 0x140151a10
mov eax, 0x1a
mov r8d, 0x94
cmp ecx, 0x5d
cmove r8d, eax
mov eax, ebx
mov dword [rdx], r8d
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
inc r9
mov dword [rdx], 0x85
movzx eax, byte [r9]
test byte [rax + r11 + 0x2455a0], 4
je 0x140151c80
movzx eax, byte [r9 + 1]
inc r9
inc ebx
test byte [rax + r11 + 0x2455a0], 4
jne 0x140151a60
mov eax, ebx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
movzx eax, byte [r9 + 1]
lea r8, [r9 + 1]
mov edx, ebx
test byte [rax + r11 + 0x2455a0], 4
je case.0x140151571.13
nop dword [rax + rax]
movzx ecx, byte [r8 + 1]
inc r8
inc edx
test byte [rcx + r11 + 0x2455a0], 4
jne 0x140151aa0
cmp edx, ebx
jle case.0x140151571.13
mov dword [rdi], 0x84
mov eax, edx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
mov dword [rdi], 0x85
movzx r10d, byte [r9 + 1]
xor edx, edx
mov rcx, rbx
mov r8d, 0x94
test r10d, r10d
je 0x140151b76
nop dword [rax + rax]
movzx eax, r10b
test byte [rax + r11 + 0x2455a0], 0x46
je 0x140151b03
inc edx
jmp 0x140151b1b
cmp r10d, 0x28
je 0x140151b2d
cmp r10d, 0x3a
jne 0x140151b6e
cmp byte [r9 + rcx + 1], r10b
jne 0x140151b6e
inc ebx
inc rcx
movzx r10d, byte [rcx + r9 + 1]
inc rcx
inc ebx
test r10d, r10d
jne 0x140151af0
jmp 0x140151b6e
test edx, edx
jle 0x140151b70
lea r10, [rcx + r9]
nop word [rax + rax]
movzx ecx, byte [r10 + 1]
inc r10
inc ebx
test ecx, ecx
je 0x140151b62
test byte [rcx + r11 + 0x2455a0], 1
jne 0x140151b62
cmp ecx, 0x29
jne 0x140151b40
inc ebx
jmp 0x140151b6e
cmp ecx, 0x29
jne 0x140151b6b
inc ebx
jmp 0x140151b6e
mov dword [rdi], r8d
test edx, edx
jne 0x140151c80
mov dword [rdi], r8d
mov eax, ebx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
cmp byte [r9 + 1], 0x27
jne case.0x140151571.34
mov dword [rdx], 0x83
movzx eax, byte [r9 + 2]
lea rcx, [r9 + 2]
test byte [rax + r11 + 0x2455a0], 8
mov edx, 2
je 0x140151bc4
movzx eax, byte [rcx + 1]
inc rcx
inc edx
test byte [rax + r11 + 0x2455a0], 8
jne 0x140151bb0
movsxd rax, edx
lea rcx, [rax + r9]
cmp byte [rcx], 0x27
jne 0x140151be4
mov eax, edx
and eax, 0x80000001
jge 0x140151be0
dec eax
or eax, 0xfffffffe
inc eax
test eax, eax
je 0x140151c06
mov r8d, 0x94
mov dword [rdi], r8d
cmp byte [rcx], 0
je 0x140151c06
movzx eax, byte [rcx]
cmp al, 0x27
je 0x140151c06
movzx eax, byte [rcx + 1]
inc rcx
inc edx
test al, al
jne 0x140151bf5
movsxd rcx, edx
cmp byte [rcx + r9], 0
je 0x140151c12
inc edx
mov eax, edx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
test byte [rcx + r11 + 0x2455a0], 0x46
jne 0x140151c43
mov r8d, 0x94
mov eax, 1
mov dword [rdx], r8d
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
movzx eax, byte [r9 + 1]
lea rcx, [r9 + 1]
mov ebx, 1
test byte [rax + r11 + 0x2455a0], 0x46
je 0x140151c74
nop dword [rax]
movzx eax, byte [rcx + 1]
inc rcx
inc ebx
test byte [rax + r11 + 0x2455a0], 0x46
jne 0x140151c60
mov edx, ebx
mov rcx, r9
call fcn.1401513d0
mov dword [rdi], eax
mov eax, ebx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
and al, 0x34
lea r8, str.On_page__d_at_right_child:
add eax, 8
mov ecx, 0x64
movsxd rdx, eax
add rdx, qword [rsi + 0x70]
movzx eax, byte [rdx + 1]
movzx ebx, byte [rdx]
shl ebx, 8
or ebx, eax
movzx eax, byte [rdx + 2]
shl ebx, 8
or ebx, eax
movzx eax, byte [rdx + 3]
lea rdx, [rbp - 0x40]
shl ebx, 8
or ebx, eax
call fcn.140160650
mov rax, qword [rsp + 0x60]
cmp byte [rax + 0x25], 0
je 0x140190066
mov r9d, dword [rsp + 0x34]
lea rax, [rbp - 0x40]
mov r8b, 5
mov edx, ebx
mov rcx, rdi
mov qword [rsp + 0x20], rax
call fcn.14018f6a0
cmp word [rsi + 0x10], 0
mov ecx, 0
lea rax, [rsp + 0x50]
cmove rax, rcx
lea r8, [rbp - 0x40]
mov edx, ebx
xor r9d, r9d
mov rcx, rdi
mov qword [rsp + 0x20], rax
call fcn.14018fb70
cmp byte [rsi + 3], 0
je 0x140190150
cmp byte [rsi + 2], 0
je 0x140190150
mov rax, qword [rbp - 0x70]
test rax, rax
je 0x140190123
mov rbx, qword [rbp - 0x80]
mov rax, qword [rax]
test rbx, rbx
jne 0x1401900cf
mov r9, qword [rsp + 0x50]
cmp r9, rax
jle 0x140190150
lea r8, str.Rowid__lld_out_of_order__max_larger_than_parent_min_of__lld_
jmp 0x14019013f
mov r9, qword [rbp - 0x78]
cmp r9, rax
jg 0x1401900f0
lea r8, str.Rowid__lld_out_of_order__min_less_than_parent_min_of__lld_
lea rdx, [rbp - 0x40]
mov rcx, rdi
mov qword [rsp + 0x20], rax
call fcn.140162940
mov rax, qword [rbx]
mov r9, qword [rsp + 0x50]
cmp r9, rax
jle 0x140190115
lea r8, str.Rowid__lld_out_of_order__max_larger_than_parent_max_of__lld_
lea rdx, [rbp - 0x40]
mov rcx, rdi
mov qword [rsp + 0x20], rax
call fcn.140162940
mov r9, qword [rbp - 0x70]
mov rax, qword [rsp + 0x50]
mov qword [r9], rax
jmp 0x140190150
mov rax, qword [rbp - 0x80]
test rax, rax
je 0x140190150
mov rax, qword [rax]
mov r9, qword [rbp - 0x78]
cmp r9, rax
jg 0x140190150
lea r8, str.Rowid__lld_out_of_order__min_less_than_parent_max_of__lld_
lea rdx, [rbp - 0x40]
mov rcx, rdi
mov qword [rsp + 0x20], rax
call fcn.140162940
mov rbx, qword [rsp + 0x78]
mov rsi, qword [rsi + 0x70]
movzx eax, byte [rbx + 5]
mov dword [rsp + 0x38], eax
mov rax, qword [rsp + 0x60]
mov ecx, dword [rax + 0x34]
call fcn.1401550b0
mov rdi, rax
test rax, rax
jne 0x140190187
mov rax, qword [rsp + 0x68]
mov dword [rax + 0x28], 1
jmp 0x1401903be
movsxd rax, dword [rsp + 0x38]
xor edx, edx
movzx ecx, byte [rax + rsi + 5]
movzx eax, byte [rax + rsi + 6]
shl ecx, 8
or ecx, eax
mov eax, dword [rsp + 0x3c]
dec ecx
movzx ecx, cx
inc ecx
sub eax, ecx
movsxd rbx, ecx
lea rcx, [rbx + rdi]
movsxd r8, eax
call fcn.14010da60
mov r8, rbx
mov edx, 1
mov rcx, rdi
call fcn.14010da60
movsxd r10, dword [rsp + 0x38]
mov r8, qword [rsp + 0x78]
movzx eax, byte [r10 + rsi + 4]
movzx r11d, byte [r10 + rsi + 3]
xor ebx, ebx
shl r11d, 8
mov ecx, 3
mov dword [rsp + 0x30], ebx
or r11d, eax
movzx eax, byte [r8 + 3]
sub ecx, eax
mov eax, dword [rsp + 0x38]
movsxd rdx, r11d
lea eax, [rax + rcx*4]
mov ecx, ebx
mov qword [rsp + 0x48], rdx
movsxd r9, eax
test r11d, r11d
jle 0x1401902e0
mov r10d, dword [rsp + 0x3c]
lea rax, [r9 + rsi]
add r10d, 0xfffffffc
mov qword [rbp - 0x80], rax
mov dword [rsp + 0x40], r10d
nop dword [rax + rax]
movzx ebx, byte [rax + 1]
movzx eax, byte [rax]
shl eax, 8
or ebx, eax
mov eax, 0x10000
cmp ebx, r10d
jg 0x140190260
movsxd rdx, ebx
mov rcx, r8
add rdx, rsi
call fcn.14014a120
mov ecx, dword [rsp + 0x30]
mov rdx, qword [rsp + 0x48]
movzx eax, ax
lea eax, [rax + rbx - 1]
cmp eax, dword [rsp + 0x3c]
jl 0x14019028f
mov eax, dword [rsp + 0x34]
mov r9d, ecx
mov rcx, qword [rsp + 0x68]
lea r8, str.Corruption_detected_in_cell__d_on_page__d
xor edx, edx
mov dword [rsp + 0x20], eax
call fcn.140162940
mov rdx, qword [rsp + 0x48]
jmp 0x1401902ab
cdqe
movsxd rcx, ebx
cmp rax, rcx
jl 0x1401902ab
nop dword [rax]
inc byte [rax + rdi]
dec rax
cmp rax, rcx
jge 0x1401902a0
mov ecx, dword [rsp + 0x30]
mov rax, qword [rbp - 0x80]
mov r8, qword [rsp + 0x78]
mov r10d, dword [rsp + 0x40]
inc ecx
add rax, 2
dec rdx
mov dword [rsp + 0x30], ecx
mov qword [rbp - 0x80], rax
mov qword [rsp + 0x48], rdx
jne 0x140190230
movsxd r10, dword [rsp + 0x38]
xor ebx, ebx
movzx r8d, byte [r10 + rsi + 1]
movzx eax, byte [r10 + rsi + 2]
shl r8d, 8
or r8d, eax
jle 0x14019033e
nop word [rax + rax]
movsxd rdx, r8d
movzx ecx, byte [rsi + rdx + 2]
movzx eax, byte [rsi + rdx + 3]
shl ecx, 8
or ecx, eax
lea eax, [rcx + r8 - 1]
movsxd rcx, eax
cmp rcx, rdx
jl 0x14019032b
nop
inc byte [rcx + rdi]
dec rcx
cmp rcx, rdx
jge 0x140190320
movzx r8d, byte [rsi + rdx]
movzx eax, byte [rsi + rdx + 1]
shl r8d, 8
or r8d, eax
jg 0x140190300
movsxd r10, dword [rsp + 0x3c]
mov edx, ebx
mov dword [rsp + 0x30], ebx
mov r9d, ebx
test r10, r10
jle 0x140190386
mov r8, rdi
mov rcx, rdi
neg r8
nop word [rax + rax]
movzx eax, byte [rcx]
test al, al
jne 0x14019036f
inc edx
mov dword [rsp + 0x30], edx
jmp 0x140190377
cmp al, 1
jg 0x140190420
inc rcx
inc r9d
lea rax, [r8 + rcx]
cmp rax, r10
jl 0x140190360
mov rbx, qword [rsp + 0x68]
movsxd rax, dword [rsp + 0x38]
movzx eax, byte [rax + rsi + 7]
cmp edx, eax
je 0x1401903b9
mov ecx, dword [rsp + 0x34]
mov r9d, edx
lea r8, str.Fragmentation_of__d_bytes_reported_as__d_on_page__d
mov dword [rsp + 0x28], ecx
mov rcx, rbx
xor edx, edx
mov dword [rsp + 0x20], eax
call fcn.140162940
mov rbx, qword [rsp + 0x78]
mov rcx, rdi
call fcn.1401467d0
mov r11, qword [rbx + 0x78]
test r11, r11
je 0x140190549
dec word [r11 + 0x2a]
mov rbx, qword [r11 + 0x20]
jne 0x1401904df
mov rax, qword [r11 + 0x30]
dec dword [rax + 0x18]
test byte [r11 + 0x28], 2
mov rcx, qword [r11 + 0x30]
jne 0x140190447
cmp dword [rcx + 0x28], 0
je 0x1401904df
cmp dword [r11 + 0x18], 1
jne 0x14019040b
xor eax, eax
mov qword [rcx + 0x48], rax
mov rcx, qword [rcx + 0x40]
xor r8d, r8d
mov rdx, r11
call qword [0x1402bc3e0]
jmp 0x1401904df
mov eax, dword [rsp + 0x34]
mov rbx, qword [rsp + 0x68]
lea r8, str.Multiple_uses_for_byte__d_of_page__d
mov rcx, rbx
xor edx, edx
mov dword [rsp + 0x20], eax
call fcn.140162940
mov edx, dword [rsp + 0x30]
jmp 0x14019038b
cmp qword [rcx + 0x10], r11
jne 0x140190469
mov rax, qword [r11 + 0x40]
test rax, rax
je 0x140190465
test byte [rax + 0x28], 4
je 0x140190465
mov rax, qword [rax + 0x40]
test rax, rax
jne 0x140190456
mov qword [rcx + 0x10], rax
mov rdx, qword [r11 + 0x38]
mov rax, qword [r11 + 0x40]
test rdx, rdx
je 0x14019047c
mov qword [rdx + 0x40], rax
jmp 0x140190480
mov qword [rcx + 8], rax
mov rdx, qword [r11 + 0x40]
mov rax, qword [r11 + 0x38]
test rdx, rdx
je 0x140190493
mov qword [rdx + 0x38], rax
jmp 0x140190496
mov qword [rcx], rax
mov rcx, qword [r11 + 0x30]
xor eax, eax
mov qword [r11 + 0x38], rax
mov qword [r11 + 0x40], rax
mov rax, qword [rcx]
mov qword [r11 + 0x38], rax
test rax, rax
je 0x1401904b4
mov qword [rax + 0x40], r11
mov rax, qword [rcx + 8]
mov qword [rcx], r11
cmp rax, 0
cmove rax, r11
cmp qword [rcx + 0x10], 0
mov qword [rcx + 8], rax
jne 0x1401904df
test byte [r11 + 0x28], 4
mov rax, qword [rcx + 0x10]
cmove rax, r11
mov qword [rcx + 0x10], rax
mov rax, qword [rbx + 0xe0]
cmp dword [rax + 0x18], 0
jne 0x140190549
movzx eax, byte [rbx + 0x13]
cmp al, 6
je 0x140190541
test al, al
je 0x140190541
cmp al, 2
jb 0x140190531
mov rax, qword [0x1402c43a8]
test rax, rax
je 0x14019050a
call rax
mov rcx, rbx
call fcn.140183c70
mov r11, qword [0x1402c43b0]
test r11, r11
je 0x140190541
call r11
mov rcx, rbx
call fcn.140161f80
mov eax, dword [rsp + 0x58]
inc eax
jmp 0x140190569
cmp byte [rbx + 8], 0
jne 0x140190541
xor edx, edx
mov rcx, rbx
call fcn.140155b50
mov rcx, rbx
call fcn.140161f80
mov eax, dword [rsp + 0x58]
inc eax
jmp 0x140190569
mov rcx, qword [rbp + 0x30]
xor rcx, rsp
call fcn.14010d170
add rsp, 0x148
pop rdi
pop rsi
pop rbx
pop rbp
ret