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

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x28
mov rsi, qword [rcx]
mov rbx, qword [rcx + 8]
mov rdi, rcx
mov r8d, edx
sub rbx, rsi
je 0x14020fd0e
movzx ebp, byte [rsi]
mov byte [rcx + 0x3c], bpl
cmp rbx, 1
je 0x14020fd0e
movzx eax, byte [rsi + 1]
mov edx, 2
xor r11d, r11d
mov byte [rcx + 0x3d], al
xor ecx, ecx
jmp 0x140031ab3
mov rdx, r9
cmp rdx, rbx
jae 0x14020fd0e
lea r9, [rdx + 1]
movzx r10d, byte [rsi + r9 - 1]
mov rax, r10
and eax, 0x7f
shl rax, cl
add ecx, 7
or r11, rax
test r10b, r10b
js 0x140031ab0
lea rax, [rdx + 0x21]
mov qword [rdi + 0x40], r11
cmp rbx, rax
jb 0x14020fd0e
mov dword [rdi + 0x1c], eax
add r9, rsi
lea rax, [rdx + 0x25]
mov qword [rdi + 0x48], r9
mov qword [rdi + 0x50], 0x20
cmp rbx, rax
jb 0x14020fd0e
cmp dword [rdi + 0x18], 7
jne 0x140031b1a
cmp bpl, 0x11
ja 0x140031c90
mov dword [rdi + 0x20], eax
xor ecx, ecx
xor r10d, r10d
nop word [rax + rax]
cmp rax, rbx
jae 0x14020fd0e
add rax, 1
movzx r9d, byte [rsi + rax - 1]
mov rdx, r9
and edx, 0x7f
shl rdx, cl
add ecx, 7
or r10, rdx
test r9b, r9b
js 0x140031b28
mov qword [rdi + 0x70], r10
xor ecx, ecx
xor r10d, r10d
nop dword [rax + rax]
cmp rax, rbx
jae 0x14020fd0e
add rax, 1
movzx r9d, byte [rsi + rax - 1]
mov rdx, r9
and edx, 0x7f
shl rdx, cl
add ecx, 7
or r10, rdx
test r9b, r9b
js 0x140031b60
mov qword [rdi + 0x78], r10
xor ecx, ecx
xor r11d, r11d
jmp 0x140031b9b
mov rax, r9
cmp rax, rbx
jae 0x14020fd0e
lea r9, [rax + 1]
movzx r10d, byte [rsi + r9 - 1]
mov rdx, r10
and edx, 0x7f
shl rdx, cl
add ecx, 7
or r11, rdx
test r10b, r10b
js 0x140031b98
mov qword [rdi + 0x80], r11
cmp r11, 1
je 0x140031be8
xor eax, eax
add rsp, 0x28
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
cmp r9, rbx
jae 0x14020fd0e
movzx edx, byte [rsi + r9]
mov byte [rdi + 0x88], dl
cmp dl, 0xff
jne 0x140031bcf
add rax, 2
xor ecx, ecx
xor r10d, r10d
nop word [rax + rax]
cmp rax, rbx
jae 0x14020fd0e
add rax, 1
movzx r9d, byte [rsi + rax - 1]
mov rdx, r9
and edx, 0x7f
shl rdx, cl
add ecx, 7
or r10, rdx
test r9b, r9b
js 0x140031c10
mov qword [rdi + 0x90], r10
xor ecx, ecx
xor ebp, ebp
nop word [rax + rax]
cmp rax, rbx
jae 0x14020fd0e
add rax, 1
movzx r9d, byte [rsi + rax - 1]
mov rdx, r9
and edx, 0x7f
shl rdx, cl
add ecx, 7
or rbp, rdx
test r9b, r9b
js 0x140031c48
mov qword [rdi + 0x98], rbp
xor ecx, ecx
xor r11d, r11d
cmp rbp, 1
jne 0x140031bcf
jmp 0x140031cd3
lea rcx, [rdx + 0x65]
cmp rbx, rcx
jb 0x14020fd0e
add rax, rsi
mov qword [rdi + 0x60], 0x40
mov qword [rdi + 0x58], rax
lea rax, [rdx + 0x67]
cmp rbx, rax
jb 0x14020fd0e
movzx edx, word [rsi + rdx + 0x65]
mov word [rdi + 0x68], dx
jmp 0x140031b1a
mov rax, r9
cmp rax, rbx
jae 0x14020fd0e
lea r9, [rax + 1]
movzx r10d, byte [rsi + r9 - 1]
mov rdx, r10
and edx, 0x7f
shl rdx, cl
add ecx, 7
or r11, rdx
test r10b, r10b
js 0x140031cd0
mov qword [rdi + 0xa0], r11
cmp r9, rbx
jae 0x14020fd0e
movzx edx, byte [rsi + r9]
lea ecx, [rdx - 2]
mov byte [rdi + 0xa8], dl
cmp cl, 1
ja 0x140031bcf
lea rcx, [rax + 2]
lea r13, [rax + 0x22]
mov dword [rdi + 0x28], ecx
cmp rbx, r13
jb 0x14020fd0e
mov qword [rdi + 0xb8], 0x20
add rcx, rsi
mov qword [rdi + 0xb0], rcx
cmp dl, 3
jne 0x140031d67
cmp rbx, r13
je 0x14020fd0e
movzx edx, byte [rsi + r13]
lea r13, [rax + 0x23]
mov byte [rdi + 0xc0], dl
xor ecx, ecx
xor r11d, r11d
nop dword [rax]
cmp r13, rbx
jae 0x14020fd0e
add r13, 1
movzx edx, byte [rsi + r13 - 1]
mov rax, rdx
and eax, 0x7f
shl rax, cl
add ecx, 7
or r11, rax
test dl, dl
js 0x140031d70
lea r14, [r13 + r11]
mov qword [rdi + 0xc8], r11
lea r12, [rsi + r13]
mov dword [rdi + 0x2c], r13d
cmp rbx, r14
jb 0x14020fd0e
test r11, r11
je 0x140031e28
xor r9d, r9d
xor ecx, ecx
xor r15d, r15d
jmp 0x140031dcb
mov r9, rax
cmp r9, r11
jae 0x14020fd0e
lea rax, [r9 + 1]
movzx r10d, byte [r12 + rax - 1]
mov rdx, r10
and edx, 0x7f
shl rdx, cl
add ecx, 7
or r15, rdx
test r10b, r10b
js 0x140031dc8
cmp r15, 2
je 0x140031efa
cmp r15, 3
je 0x140031ea0
cmp r15, 1
jne 0x140031bcf
add rax, r13
add r9, 0x21
mov dword [rdi + 0x30], eax
cmp r11, r9
jb 0x140031fdb
cmp r9, r11
jb 0x140031dbb
mov dword [rdi + 0x24], r14d
cmp rbx, r14
je 0x14020fd0e
cmp byte [rsi + r14], 0
jne 0x140031bcf
mov rax, r14
shr rax, 0x20
jne 0x140031bcf
add r14, 1
xor ecx, ecx
xor eax, eax
cmp r14, rbx
jae 0x14020fd0e
add r14, 1
movzx r9d, byte [rsi + r14 - 1]
mov rdx, r9
and edx, 0x7f
shl rdx, cl
add ecx, 7
or rax, rdx
test r9b, r9b
js 0x140031e55
mov qword [rdi + 0xf0], rax
test r8b, r8b
jne 0x140031f52
mov eax, 1
jmp 0x140031bd1
xor ecx, ecx
xor r10d, r10d
nop dword [rax]
cmp rax, r11
jae 0x14020fd0e
add rax, 1
movzx r9d, byte [r12 + rax - 1]
mov rdx, r9
and edx, 0x7f
shl rdx, cl
add ecx, 7
or r10, rdx
test r9b, r9b
js 0x140031ea8
lea rdx, [r13 + rax]
lea r9, [rax + r10]
mov dword [rdi + 0x38], edx
cmp r11, r9
jb 0x14020fd0e
add rax, r12
mov qword [rdi + 0xe8], r10
mov qword [rdi + 0xe0], rax
jmp 0x140031e23
xor ecx, ecx
xor r10d, r10d
nop
cmp rax, r11
jae 0x14020fd0e
add rax, 1
movzx r9d, byte [r12 + rax - 1]
mov rdx, r9
and edx, 0x7f
shl rdx, cl
add ecx, 7
or r10, rdx
test r9b, r9b
js 0x140031f00
lea rdx, [r13 + rax]
lea r9, [rax + r10]
mov dword [rdi + 0x34], edx
cmp r11, r9
jb 0x14020fd0e
add rax, r12
mov qword [rdi + 0xd8], r10
mov qword [rdi + 0xd0], rax
jmp 0x140031e23
add rax, 1
lea rcx, [rdi + 0xf8]
shl rax, 5
mov rdx, rax
call fcn.1401e5fb0
mov rax, qword [rdi]
mov edx, dword [rdi + 0x24]
mov ecx, dword [rdi + 0x20]
mov r8, qword [rdi + 0xf8]
add rdx, rax
add rcx, rax
call fcn.140031200
cmp qword [rdi + 0xf0], 0
je 0x140031fce
sub rsi, 0x20
add r14, 0x20
cmp rbx, r14
jb 0x14020fd0e
lea rdx, [rsi + r14]
mov rax, rbp
add rbp, 1
movdqu xmm0, xmmword [rdx]
shl rax, 5
add rax, qword [rdi + 0xf8]
movups xmmword [rax], xmm0
movdqu xmm1, xmmword [rdx + 0x10]
movups xmmword [rax + 0x10], xmm1
cmp qword [rdi + 0xf0], rbp
jae 0x140031f92
mov rcx, rdi
call fcn.140031390
jmp 0x140031e8c
jmp 0x14020fd0e