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

Disassembly:
push rdi
push r15
sub rsp, 0x58
mov rdi, qword [rcx]
mov r15, rcx
mov r10, qword [rcx + 8]
sub r10, rdi
je 0x140044f66
movzx eax, byte [rdi]
mov byte [rcx + 0x3c], al
cmp r10, 1
jbe 0x140044f6c
movzx eax, byte [rdi + 1]
mov r8d, 2
mov qword [rsp + 0x78], rbp
xor ebp, ebp
mov byte [rcx + 0x3d], al
mov r11d, ebp
mov ecx, ebp
cmp r10, r8
jbe 0x140044f48
mov r9d, r8d
movzx edx, byte [rdi + r9]
inc r8
mov rax, rdx
mov r9, r8
and eax, 0x7f
shl rax, cl
add ecx, 7
or r11, rax
test dl, dl
jns 0x140044869
cmp r8, r10
jae 0x140044f48
jmp 0x140044840
lea rax, [r8 + 0x20]
mov qword [r15 + 0x40], r11
lea rcx, [r8 + 0x20]
cmp rax, r10
ja 0x140044f72
lea rax, [rdi + r8]
mov qword [r15 + 0x48], rax
lea rax, [r8 + 0x24]
mov qword [r15 + 0x50], 0x20
mov dword [r15 + 0x1c], ecx
lea rcx, [r8 + 0x24]
cmp rax, r10
ja 0x140044f78
mov qword [rsp + 0x48], r13
mov r8, rcx
mov r13d, dword [r15 + 0x18]
mov rdx, rcx
mov rax, rcx
cmp r13d, 8
jne 0x14004493c
cmp byte [r15 + 0x3c], 0x12
jb 0x140044907
lea rax, [rcx + 0x40]
cmp rax, r10
ja 0x140044f7e
lea rax, [rcx + rdi]
mov qword [r15 + 0x58], rax
lea rax, [rcx + 0x42]
mov qword [r15 + 0x60], 0x40
cmp rax, r10
ja 0x140044f84
movzx eax, word [rdi + rcx + 0x40]
add rcx, 0x42
mov word [r15 + 0x68], ax
mov rax, rcx
mov rdx, rcx
mov r8, rcx
mov dword [r15 + 0x20], ecx
mov r9, rbp
mov ecx, ebp
cmp r8, r10
jae 0x140044f60
movzx edx, byte [rdi + rdx]
lea r8, [rax + 1]
mov rax, rdx
and eax, 0x7f
shl rax, cl
add ecx, 7
or r9, rax
mov rax, r8
test dl, dl
jns 0x140044951
mov rdx, r8
jmp 0x140044910
cmp r13d, 9
jne 0x140044907
add rcx, 0x78
cmp rcx, r10
ja 0x140044f4e
jmp 0x1400448fe
mov qword [r15 + 0x70], r9
mov r9, r8
cmp r13d, 0xa
je 0x140044991
mov r11, rbp
mov ecx, ebp
cmp r8, r10
jae 0x140044f8a
movzx edx, byte [rdi + r8]
inc r8
mov rax, rdx
mov r9, r8
and eax, 0x7f
shl rax, cl
add ecx, 7
or r11, rax
test dl, dl
js 0x140044963
mov qword [r15 + 0x78], r11
mov rax, r8
mov r11, rbp
mov ecx, ebp
cmp r8, r10
jae 0x140044f54
nop
movzx edx, byte [rdi + r9]
lea r9, [rax + 1]
mov rax, rdx
and eax, 0x7f
shl rax, cl
add ecx, 7
or r11, rax
test dl, dl
jns 0x1400449ca
mov rax, r9
cmp r9, r10
jae 0x140044f54
jmp 0x1400449a0
mov qword [rsp + 0x70], rbx
mov qword [rsp + 0x80], rsi
mov qword [rsp + 0x50], r12
mov qword [rsp + 0x40], r14
mov qword [r15 + 0x80], r11
cmp r11, 1
jne 0x140044a7b
cmp r9, r10
jae 0x140044f90
movzx eax, byte [rdi + r9]
lea r8, [r9 + 1]
mov byte [r15 + 0x88], al
cmp al, 0xff
jne 0x140044a7b
mov r9, rbp
mov ecx, ebp
cmp r8, r10
jae 0x140044f42
movzx edx, byte [rdi + r8]
inc r8
mov rax, rdx
and eax, 0x7f
shl rax, cl
add ecx, 7
or r9, rax
test dl, dl
js 0x140044a14
mov qword [r15 + 0x90], r9
mov ecx, ebp
mov r9, rbp
cmp r8, r10
jae 0x140045032
movzx edx, byte [rdi + r8]
inc r8
mov rax, rdx
and eax, 0x7f
shl rax, cl
add ecx, 7
or r9, rax
test dl, dl
js 0x140044a44
mov qword [r15 + 0x98], r9
cmp r13d, 9
jne 0x140044aa6
cmp r9, 2
jae 0x140044aac
xor al, al
mov rbx, qword [rsp + 0x70]
mov r12, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x80]
mov r14, qword [rsp + 0x40]
mov r13, qword [rsp + 0x48]
mov rbp, qword [rsp + 0x78]
add rsp, 0x58
pop r15
pop rdi
ret
cmp r9, 1
jne 0x140044a7b
mov r11, rbp
mov ecx, ebp
mov r9, r8
cmp r9, r10
jae 0x14004502c
movzx edx, byte [rdi + r8]
inc r8
mov rax, rdx
mov r9, r8
and eax, 0x7f
shl rax, cl
add ecx, 7
or r11, rax
test dl, dl
js 0x140044ab4
mov qword [r15 + 0xa0], r11
cmp r8, r10
jae 0x140044f96
movzx eax, byte [rdi + r8]
inc r8
mov byte [r15 + 0xa8], al
sub al, 2
cmp al, 1
ja 0x140044a7b
lea rax, [r8 + 0x20]
mov dword [r15 + 0x28], r8d
lea r9, [r8 + 0x20]
cmp rax, r10
ja 0x140044f9c
lea rax, [r8 + rdi]
mov qword [r15 + 0xb0], rax
mov qword [r15 + 0xb8], 0x20
movzx eax, byte [r15 + 0xa8]
cmp r13d, 9
jne 0x140044d85
cmp al, 2
jne 0x140044a7b
mov r11, rbp
mov ecx, ebp
cmp r9, r10
jae 0x140044f5a
mov r8, r9
nop word [rax + rax]
movzx edx, byte [rdi + r8]
lea r8, [r9 + 1]
mov rax, rdx
and eax, 0x7f
shl rax, cl
add ecx, 7
or r11, rax
test dl, dl
jns 0x140044b8a
mov r9, r8
cmp r8, r10
jae 0x140044f5a
jmp 0x140044b60
lea rax, [r8 + r11]
lea r9, [r11 + r8]
cmp rax, r10
ja 0x140044fa2
cmp r9, r10
jae 0x140044fa8
movzx eax, byte [rdi + r9]
mov ebx, 1
mov rsi, qword [r15 + 0x98]
inc r9
mov byte [r15 + 0xc0], al
cmp rsi, rbx
jbe 0x140044c7b
mov rax, r9
mov rdx, r9
nop
lea rcx, [r9]
cmp rax, r10
jae 0x140044fd2
lea rax, [rdx + 1]
mov r9, rax
mov rdx, rax
cmp byte [rdi + rcx], bpl
jl 0x140044bd0
cmp rax, r10
jae 0x140044fcc
cmp byte [rdi + rax], 2
jne 0x140044a7b
lea r8, [rax + 0x21]
add rax, 0x21
cmp rax, r10
ja 0x140044fc6
mov r9, rbp
mov ecx, ebp
mov rax, r8
mov r11, r8
nop dword [rax + rax]
cmp r8, r10
jae 0x140044fc0
movzx edx, byte [r11 + rdi]
lea r8, [rax + 1]
mov rax, rdx
mov r11, r8
and eax, 0x7f
shl rax, cl
add ecx, 7
or r9, rax
mov rax, r8
test dl, dl
js 0x140044c20
lea rax, [r9 + r8]
lea rcx, [r8 + r9]
cmp rax, r10
ja 0x140044fba
cmp rcx, r10
jae 0x140044fb4
lea r9, [rcx + 1]
inc rbx
mov rax, r9
mov rdx, r9
cmp rbx, rsi
jb 0x140044bd0
mov rbx, rbp
mov ecx, ebp
cmp r9, r10
jae 0x140045026
movzx edx, byte [rdi + r9]
inc r9
mov rax, rdx
and eax, 0x7f
shl rax, cl
add ecx, 7
or rbx, rax
test dl, dl
js 0x140044c80
mov r14d, r9d
lea rax, [rbx + r9]
add r14, rdi
mov qword [r15 + 0xc8], rbx
mov dword [r15 + 0x2c], r9d
mov r8, rbp
cmp rax, r10
ja 0x140044fae
lea r11, [rbx + r9]
mov r12b, 1
test rbx, rbx
je 0x140044e60
nop word [rax + rax]
mov r9, rbp
mov ecx, ebp
cmp r8, rbx
jae 0x140045008
movzx edx, byte [r14 + r8]
inc r8
mov rax, rdx
and eax, 0x7f
shl rax, cl
add ecx, 7
or r9, rax
test dl, dl
js 0x140044ce5
sub r9, 1
je 0x140044e37
sub r9, 1
je 0x140044ddd
cmp r9, 1
jne 0x140044a7b
mov rsi, rbp
mov ecx, ebp
mov r9, r8
nop
cmp r9, rbx
jae 0x140044ff0
movzx edx, byte [r14 + r8]
inc r8
mov rax, rdx
mov r9, r8
and eax, 0x7f
shl rax, cl
add ecx, 7
or rsi, rax
test dl, dl
js 0x140044d30
mov ecx, dword [r15 + 0x2c]
add r8, rsi
add ecx, r9d
mov dword [r15 + 0x38], ecx
cmp r8, rbx
ja 0x140044fea
lea rax, [r14 + r9]
mov qword [r15 + 0xe0], rax
mov qword [r15 + 0xe8], rsi
jmp 0x140044e57
cmp al, 3
jne 0x140044da1
cmp r9, r10
jae 0x140044fd8
movzx eax, byte [rdi + r9]
inc r9
mov byte [r15 + 0xc0], al
cmp r13d, 0xa
jne 0x140044c7b
mov r8, rbp
mov ecx, ebp
cmp r9, r10
jae 0x140044fde
movzx edx, byte [rdi + r9]
inc r9
mov rax, rdx
and eax, 0x7f
shl rax, cl
add ecx, 7
or r8, rax
test dl, dl
js 0x140044db0
mov qword [r15 + 0x78], r8
jmp 0x140044c7b
mov rsi, rbp
mov ecx, ebp
mov r9, r8
cmp r9, rbx
jae 0x140044ffc
movzx edx, byte [r14 + r8]
inc r8
mov rax, rdx
mov r9, r8
and eax, 0x7f
shl rax, cl
add ecx, 7
or rsi, rax
test dl, dl
js 0x140044de5
mov ecx, dword [r15 + 0x2c]
add r8, rsi
add ecx, r9d
mov dword [r15 + 0x34], ecx
cmp r8, rbx
ja 0x140044ff6
lea rax, [r14 + r9]
mov qword [r15 + 0xd0], rax
mov qword [r15 + 0xd8], rsi
jmp 0x140044e57
test r12b, r12b
je 0x140044e4a
mov ecx, dword [r15 + 0x2c]
xor r12b, r12b
add ecx, r8d
mov dword [r15 + 0x30], ecx
add r8, 0x20
cmp r8, rbx
ja 0x140045002
cmp r8, rbx
jb 0x140044ce0
cmp r13d, 9
jne 0x140044eaa
cmp r11, r10
jae 0x14004501a
lea rax, [rdi + r11]
inc r11
cmp byte [rax], bpl
jl 0x140044e66
nop dword [rax + rax]
cmp r11, r10
jae 0x140045014
lea rax, [rdi + r11]
inc r11
cmp byte [rax], bpl
jl 0x140044e80
cmp r11, r10
jae 0x14004500e
lea rax, [rdi + r11]
inc r11
cmp byte [rax], bpl
jl 0x140044e95
mov dword [r15 + 0x24], r11d
cmp r11, r10
jae 0x140044fe4
lea r8, [r11 + 1]
cmp r13d, 0xa
jne 0x140044ee5
mov rcx, qword [r15 + 0x90]
movabs rax, 0x2d82d82d82d82d83
mul rcx
shr rdx, 7
imul rax, rdx, 0x2d0
cmp rcx, rax
je 0x140044f3b
cmp byte [rdi + r11], bpl
jne 0x140044a7b
mov ecx, r11d
lea rax, [rcx + 1]
cmp r8, rax
jne 0x140044a7b
cmp byte [rdi + rcx], bpl
jne 0x140044a7b
mov ecx, ebp
nop dword [rax + rax]
cmp r8, r10
jae 0x140045020
movzx edx, byte [rdi + r8]
inc r8
mov rax, rdx
and eax, 0x7f
shl rax, cl
add ecx, 7
or rbp, rax
test dl, dl
js 0x140044f10
mov qword [r15 + 0xf0], rbp
mov al, 1
jmp 0x140044a7d
call fcn.140045040
int3
call fcn.140045040
int3
call fcn.140045040
int3
call fcn.140045040
int3
call fcn.140045040
int3
call fcn.140045040
int3
call fcn.140045040
int3
call fcn.140045040
int3
call fcn.140045040
int3
call fcn.140045040
int3
call fcn.140045040
int3
call fcn.140045040
int3
call fcn.140045040
int3
call fcn.140045040
int3
call fcn.140045040
int3
call fcn.140045040
int3
call fcn.140045040
int3
call fcn.140045040
int3
call fcn.140045040
int3
call fcn.140045040
int3
call fcn.140045040
int3
call fcn.140045040
int3
call fcn.140045040
int3
call fcn.140045040
int3
call fcn.140045040
int3
call fcn.140045040
int3
call fcn.140045040
int3
call fcn.140045040
int3
call fcn.140045040
int3
call fcn.140045040
int3
call fcn.140045040
int3
call fcn.140045040
int3
call fcn.140045040
int3
call fcn.140045040
int3
call fcn.140045040
int3
call fcn.140045040
int3
call fcn.140045040
int3
call fcn.140045040
int3
call fcn.140045040
int3
call fcn.140045040
int3
call fcn.140045040
int3