Function at 0x140031a40
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 0x14020fdfe
movzx ebp, byte [rsi]
mov byte [rcx + 0x3c], bpl
cmp rbx, 1
je 0x14020fdfe
movzx eax, byte [rsi + 1]
mov edx, 2
xor r11d, r11d
mov byte [rcx + 0x3d], al
xor ecx, ecx
jmp 0x140031a93
mov rdx, r9
cmp rdx, rbx
jae 0x14020fdfe
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 0x140031a90
lea rax, [rdx + 0x21]
mov qword [rdi + 0x40], r11
cmp rbx, rax
jb 0x14020fdfe
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 0x14020fdfe
cmp dword [rdi + 0x18], 7
jne 0x140031afa
cmp bpl, 0x11
ja 0x140031c70
mov dword [rdi + 0x20], eax
xor ecx, ecx
xor r10d, r10d
nop word [rax + rax]
cmp rax, rbx
jae 0x14020fdfe
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 0x140031b08
mov qword [rdi + 0x70], r10
xor ecx, ecx
xor r10d, r10d
nop dword [rax + rax]
cmp rax, rbx
jae 0x14020fdfe
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 0x140031b40
mov qword [rdi + 0x78], r10
xor ecx, ecx
xor r11d, r11d
jmp 0x140031b7b
mov rax, r9
cmp rax, rbx
jae 0x14020fdfe
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 0x140031b78
mov qword [rdi + 0x80], r11
cmp r11, 1
je 0x140031bc8
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 0x14020fdfe
movzx edx, byte [rsi + r9]
mov byte [rdi + 0x88], dl
cmp dl, 0xff
jne 0x140031baf
add rax, 2
xor ecx, ecx
xor r10d, r10d
nop word [rax + rax]
cmp rax, rbx
jae 0x14020fdfe
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 0x140031bf0
mov qword [rdi + 0x90], r10
xor ecx, ecx
xor ebp, ebp
nop word [rax + rax]
cmp rax, rbx
jae 0x14020fdfe
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 0x140031c28
mov qword [rdi + 0x98], rbp
xor ecx, ecx
xor r11d, r11d
cmp rbp, 1
jne 0x140031baf
jmp 0x140031cb3
lea rcx, [rdx + 0x65]
cmp rbx, rcx
jb 0x14020fdfe
add rax, rsi
mov qword [rdi + 0x60], 0x40
mov qword [rdi + 0x58], rax
lea rax, [rdx + 0x67]
cmp rbx, rax
jb 0x14020fdfe
movzx edx, word [rsi + rdx + 0x65]
mov word [rdi + 0x68], dx
jmp 0x140031afa
mov rax, r9
cmp rax, rbx
jae 0x14020fdfe
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 0x140031cb0
mov qword [rdi + 0xa0], r11
cmp r9, rbx
jae 0x14020fdfe
movzx edx, byte [rsi + r9]
lea ecx, [rdx - 2]
mov byte [rdi + 0xa8], dl
cmp cl, 1
ja 0x140031baf
lea rcx, [rax + 2]
lea r13, [rax + 0x22]
mov dword [rdi + 0x28], ecx
cmp rbx, r13
jb 0x14020fdfe
mov qword [rdi + 0xb8], 0x20
add rcx, rsi
mov qword [rdi + 0xb0], rcx
cmp dl, 3
jne 0x140031d47
cmp rbx, r13
je 0x14020fdfe
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 0x14020fdfe
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 0x140031d50
lea r14, [r13 + r11]
mov qword [rdi + 0xc8], r11
lea r12, [rsi + r13]
mov dword [rdi + 0x2c], r13d
cmp rbx, r14
jb 0x14020fdfe
test r11, r11
je 0x140031e08
xor r9d, r9d
xor ecx, ecx
xor r15d, r15d
jmp 0x140031dab
mov r9, rax
cmp r9, r11
jae 0x14020fdfe
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 0x140031da8
cmp r15, 2
je 0x140031eda
cmp r15, 3
je 0x140031e80
cmp r15, 1
jne 0x140031baf
add rax, r13
add r9, 0x21
mov dword [rdi + 0x30], eax
cmp r11, r9
jb 0x140031fbb
cmp r9, r11
jb 0x140031d9b
mov dword [rdi + 0x24], r14d
cmp rbx, r14
je 0x14020fdfe
cmp byte [rsi + r14], 0
jne 0x140031baf
mov rax, r14
shr rax, 0x20
jne 0x140031baf
add r14, 1
xor ecx, ecx
xor eax, eax
cmp r14, rbx
jae 0x14020fdfe
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 0x140031e35
mov qword [rdi + 0xf0], rax
test r8b, r8b
jne 0x140031f32
mov eax, 1
jmp 0x140031bb1
xor ecx, ecx
xor r10d, r10d
nop dword [rax]
cmp rax, r11
jae 0x14020fdfe
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 0x140031e88
lea rdx, [r13 + rax]
lea r9, [rax + r10]
mov dword [rdi + 0x38], edx
cmp r11, r9
jb 0x14020fdfe
add rax, r12
mov qword [rdi + 0xe8], r10
mov qword [rdi + 0xe0], rax
jmp 0x140031e03
xor ecx, ecx
xor r10d, r10d
nop
cmp rax, r11
jae 0x14020fdfe
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 0x140031ee0
lea rdx, [r13 + rax]
lea r9, [rax + r10]
mov dword [rdi + 0x34], edx
cmp r11, r9
jb 0x14020fdfe
add rax, r12
mov qword [rdi + 0xd8], r10
mov qword [rdi + 0xd0], rax
jmp 0x140031e03
add rax, 1
lea rcx, [rdi + 0xf8]
shl rax, 5
mov rdx, rax
call fcn.1401e5e50
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.1400311e0
cmp qword [rdi + 0xf0], 0
je 0x140031fae
sub rsi, 0x20
add r14, 0x20
cmp rbx, r14
jb 0x14020fdfe
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 0x140031f72
mov rcx, rdi
call fcn.140031370
jmp 0x140031e6c
jmp 0x14020fdfe