Function at 0x140031130
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
push rbx
push rbp
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x60
mov r15, qword [rsp + 0xc0]
xor r14d, r14d
mov ebx, r9d
mov rdi, r8
mov rsi, rdx
mov r12, rcx
test rdx, rdx
jne 0x1400311ed
cmp byte [rcx], r14b
jne 0x1400311e3
movzx r10d, byte [rcx + 1]
test r10b, 2
je 0x1400311e3
mov rax, qword [rcx + 0x30]
cmp rax, r8
jne 0x140031198
mov rax, r15
mov dword [rax], r14d
xor eax, eax
add rsp, 0x60
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
jge 0x1400311e3
test r10b, 8
jne 0x140031267
inc rax
cmp rax, rdi
jne 0x1400311e3
xor edx, edx
mov dword [r15], r14d
call fcn.1400318a0
test eax, eax
jne 0x1400311da
mov rcx, r12
call fcn.140030440
cmp qword [r12 + 0x30], rdi
jne 0x1400311e3
xor eax, eax
add rsp, 0x60
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
cmp eax, 0x65
jne 0x1400316de
mov rbp, r14
mov qword [rsp + 0x38], r14
jmp 0x140031252
mov rcx, qword [rdx]
cmp word [rcx + 8], 0xd
ja 0x140031242
mov rax, qword [rdx + 8]
movzx r8d, word [rax + 8]
mov rax, qword [rcx + 0x18]
movzx edx, byte [rax]
test dl, dl
je 0x140031216
test dl, 2
jne 0x140031242
mov al, 0xff
mov dl, 1
jmp 0x14003121a
mov al, 1
mov dl, 0xff
mov byte [rsi + 0x14], dl
mov byte [rsi + 0x15], al
test r8b, 4
je 0x14003122f
lea rbp, [0x140042320]
jmp 0x140031249
test r8b, 0x39
jne 0x140031242
lea rbp, [0x1400424f0]
cmp qword [rcx + 0x20], r14
je 0x140031249
lea rbp, [0x140042310]
mov qword [rsp + 0x38], rbp
mov byte [rsi + 0x13], r14b
mov rcx, r12
call fcn.140030d20
test eax, eax
je 0x14003127f
cmp eax, 0x10
jne 0x1400316de
mov dword [r15], 0xffffffff
xor eax, eax
add rsp, 0x60
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov eax, 1
mov qword [rsp + 0xa0], r13
sub eax, ebx
mov dword [rsp + 0x30], eax
mov r13, qword [r12 + 0x88]
mov r15d, r14d
mov ecx, eax
movzx r14d, word [r13 + 0x18]
lea rdx, [r13 + 0x60]
dec r14d
mov qword [rsp + 0x40], rdx
mov edi, r14d
lea r8, [r13 + 0x1a]
sar edi, cl
mov word [r12 + 0x56], di
mov qword [rsp + 0x48], r8
test rbp, rbp
jne 0x1400313e0
mov rbx, qword [rdx]
movzx edx, word [r8]
mov rsi, qword [r13 + 0x68]
movzx ebp, byte [r13 + 3]
mov qword [rsp + 0x58], rdx
lea eax, [rdi + rdi]
cdqe
movzx ecx, byte [rax + rbx]
movzx eax, byte [rax + rbx + 1]
shl rcx, 8
or rcx, rax
and rcx, rdx
add rcx, rsi
test bpl, bpl
je 0x140031324
cmp byte [rcx], 0x80
jb 0x140031321
mov rax, qword [r13 + 0x58]
nop dword [rax + rax]
inc rcx
cmp rcx, rax
jae 0x1400315d6
cmp byte [rcx], 0x80
jae 0x140031310
inc rcx
lea rdx, [rsp + 0x50]
call fcn.14001b6f0
mov rax, qword [rsp + 0x50]
cmp rax, qword [rsp + 0xb0]
jge 0x140031399
lea r15d, [rdi + 1]
cmp r15d, r14d
jle 0x1400313a4
mov esi, 0xffffffff
cmp byte [r13 + 8], 0
mov rdx, qword [rsp + 0x40]
mov r9, qword [rsp + 0x48]
jne 0x140031629
movzx eax, word [r13 + 0x18]
cmp r15d, eax
jl 0x14003155b
movzx edx, byte [r13 + 9]
add rdx, qword [r13 + 0x50]
movzx eax, byte [rdx + 0xa]
movzx ecx, byte [rdx + 9]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0xb]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 8]
shl eax, 0x18
jmp 0x1400315a1
jle 0x1400313bb
lea r14d, [rdi - 1]
cmp r15d, r14d
jg 0x1400313b4
mov rdx, qword [rsp + 0x58]
lea edi, [r14 + r15]
sar edi, 1
jmp 0x1400312e2
mov esi, 1
jmp 0x14003134b
mov word [r12 + 0x56], di
cmp byte [r13 + 8], 0
jne 0x140031607
mov rdx, qword [rsp + 0x40]
mov r15d, edi
mov r9, qword [rsp + 0x48]
jmp 0x140031360
lea eax, [rdi + rdi]
movsxd rcx, eax
mov rax, qword [rdx]
movzx edx, byte [rcx + rax]
movzx r9d, byte [rcx + rax + 1]
movzx eax, word [r8]
shl rdx, 8
or r9, rdx
and r9, rax
movzx eax, byte [r13 + 0xb]
add r9, qword [r13 + 0x68]
movzx ecx, byte [r9]
lea rdx, [r9 + 1]
cmp ecx, eax
ja 0x140031422
mov r8, rsi
call rbp
mov esi, eax
jmp 0x140031521
movzx eax, byte [rdx]
test al, al
js 0x14003144a
and ecx, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [r13 + 0xe]
cmp ecx, eax
ja 0x14003144a
lea rdx, [r9 + 2]
mov r8, rsi
call rbp
mov esi, eax
jmp 0x140031521
movzx eax, byte [r13 + 0xa]
lea r8, [r12 + 0x30]
sub r9, rax
mov rcx, r13
mov rdx, r9
call qword [r13 + Ordinal_133]
movsxd rsi, dword [r12 + 0x30]
cmp esi, 2
jl 0x1400316a0
mov rcx, qword [r12 + 0x20]
xor edx, edx
mov eax, esi
div dword [rcx + 0x34]
cmp eax, dword [rcx + 0x3c]
ja 0x1400316a0
lea eax, [rsi + 0x12]
movsxd rcx, eax
call fcn.140016ee0
mov rbx, rax
test rax, rax
je 0x140031699
mov r9, rax
mov word [r12 + 0x56], di
mov r8d, esi
mov dword [rsp + 0x20], 0
xor edx, edx
mov rcx, r12
call fcn.140030760
mov ebp, eax
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rsi + rbx], xmm0
mov word [rsi + rbx + 0x10], ax
and byte [r12 + 1], 0xfb
test ebp, ebp
jne 0x14003166c
mov r8, qword [rsp + 0xa8]
xor r9d, r9d
mov rdx, rbx
mov ecx, esi
call fcn.140041a80
cmp dword [0x1401abb60], ebp
mov esi, eax
mov rcx, rbx
je 0x140031516
call qword [0x1401abb98]
movsxd rcx, eax
sub qword [0x1401b2b20], rcx
mov rcx, rbx
dec qword [0x1401b2b68]
call qword [0x1401abb88]
mov rbp, qword [rsp + 0x38]
test esi, esi
jns 0x14003152b
lea r15d, [rdi + 1]
jmp 0x140031535
jle 0x140031642
lea r14d, [rdi - 1]
cmp r15d, r14d
jg 0x14003134b
mov rsi, qword [rsp + 0xa8]
lea edi, [r14 + r15]
mov rdx, qword [rsp + 0x40]
mov r8, qword [rsp + 0x48]
sar edi, 1
jmp 0x1400313e0
lea eax, [r15 + r15]
movsxd rcx, eax
mov rax, qword [rdx]
movzx edx, byte [rcx + rax]
movzx r8d, byte [rcx + rax + 1]
movzx eax, word [r9]
shl rdx, 8
or r8, rdx
and r8, rax
add r8, qword [r13 + 0x50]
movzx eax, byte [r8 + 2]
movzx ecx, byte [r8 + 1]
shl ecx, 8
or ecx, eax
movzx eax, byte [r8]
shl eax, 0x18
shl ecx, 8
or ecx, eax
movzx eax, byte [r8 + 3]
or ecx, eax
mov word [r12 + 0x56], r15w
mov edx, ecx
mov rcx, r12
call fcn.140030bf0
mov ebp, eax
test eax, eax
jne 0x1400316cc
mov rsi, qword [rsp + 0xa8]
xor r14d, r14d
mov rbp, qword [rsp + 0x38]
mov eax, dword [rsp + 0x30]
jmp 0x140031292
lea rax, [0x140166684]
mov ebp, reloc.Cabinet.dll_FCIAddFile
mov ecx, ebp
mov qword [rsp + 0x20], rax
mov r9d, 0x10d00
lea r8, str.database_corruption
lea rdx, str._s_at_line__d_of___.10s_
call fcn.140019dd0
jmp 0x1400316d4
mov rcx, qword [rsp + 0xc0]
or byte [r12 + 1], 2
mov qword [r12 + 0x30], rax
xor eax, eax
mov word [r12 + 0x46], ax
mov dword [rcx], eax
jmp 0x1400316d6
mov rcx, qword [rsp + 0xc0]
xor eax, eax
mov word [r12 + 0x56], di
mov ebp, eax
mov dword [rcx], esi
jmp 0x1400316ce
mov rcx, qword [rsp + 0xc0]
xor eax, eax
mov ebp, eax
mov word [r12 + 0x56], di
mov dword [rcx], eax
mov rax, qword [rsp + 0xa8]
cmp byte [rax + 0x13], bpl
je 0x1400316cc
mov r9d, 0x10d6b
jmp 0x1400316a6
cmp dword [0x1401abb60], eax
mov rcx, rbx
je 0x140031691
call qword [0x1401abb98]
movsxd rcx, eax
sub qword [0x1401b2b20], rcx
mov rcx, rbx
dec qword [0x1401b2b68]
call qword [0x1401abb88]
jmp 0x1400316cc
mov ebp, 7
jmp 0x1400316cc
mov r9d, 0x10d4b
lea rax, [0x140166684]
mov ebp, reloc.Cabinet.dll_FCIAddFile
mov ecx, ebp
mov qword [rsp + 0x20], rax
lea r8, str.database_corruption
lea rdx, str._s_at_line__d_of___.10s_
call fcn.140019dd0
xor eax, eax
mov word [r12 + 0x46], ax
mov eax, ebp
mov r13, qword [rsp + 0xa0]
add rsp, 0x60
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret