Function at 0x140044640
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 0x140044db6
movzx eax, byte [rdi]
mov byte [rcx + 0x3c], al
cmp r10, 1
jbe 0x140044dbc
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 0x140044d98
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 0x1400446b9
cmp r8, r10
jae 0x140044d98
jmp 0x140044690
lea rax, [r8 + 0x20]
mov qword [r15 + 0x40], r11
lea rcx, [r8 + 0x20]
cmp rax, r10
ja 0x140044dc2
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 0x140044dc8
mov qword [rsp + 0x48], r13
mov r8, rcx
mov r13d, dword [r15 + 0x18]
mov rdx, rcx
mov rax, rcx
cmp r13d, 8
jne 0x14004478c
cmp byte [r15 + 0x3c], 0x12
jb 0x140044757
lea rax, [rcx + 0x40]
cmp rax, r10
ja 0x140044dce
lea rax, [rcx + rdi]
mov qword [r15 + 0x58], rax
lea rax, [rcx + 0x42]
mov qword [r15 + 0x60], 0x40
cmp rax, r10
ja 0x140044dd4
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 0x140044db0
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 0x1400447a1
mov rdx, r8
jmp 0x140044760
cmp r13d, 9
jne 0x140044757
add rcx, 0x78
cmp rcx, r10
ja 0x140044d9e
jmp 0x14004474e
mov qword [r15 + 0x70], r9
mov r9, r8
cmp r13d, 0xa
je 0x1400447e1
mov r11, rbp
mov ecx, ebp
cmp r8, r10
jae 0x140044dda
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 0x1400447b3
mov qword [r15 + 0x78], r11
mov rax, r8
mov r11, rbp
mov ecx, ebp
cmp r8, r10
jae 0x140044da4
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 0x14004481a
mov rax, r9
cmp r9, r10
jae 0x140044da4
jmp 0x1400447f0
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 0x1400448cb
cmp r9, r10
jae 0x140044de0
movzx eax, byte [rdi + r9]
lea r8, [r9 + 1]
mov byte [r15 + 0x88], al
cmp al, 0xff
jne 0x1400448cb
mov r9, rbp
mov ecx, ebp
cmp r8, r10
jae 0x140044d92
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 0x140044864
mov qword [r15 + 0x90], r9
mov ecx, ebp
mov r9, rbp
cmp r8, r10
jae 0x140044e82
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 0x140044894
mov qword [r15 + 0x98], r9
cmp r13d, 9
jne 0x1400448f6
cmp r9, 2
jae 0x1400448fc
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 0x1400448cb
mov r11, rbp
mov ecx, ebp
mov r9, r8
cmp r9, r10
jae 0x140044e7c
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 0x140044904
mov qword [r15 + 0xa0], r11
cmp r8, r10
jae 0x140044de6
movzx eax, byte [rdi + r8]
inc r8
mov byte [r15 + 0xa8], al
sub al, 2
cmp al, 1
ja 0x1400448cb
lea rax, [r8 + 0x20]
mov dword [r15 + 0x28], r8d
lea r9, [r8 + 0x20]
cmp rax, r10
ja 0x140044dec
lea rax, [r8 + rdi]
mov qword [r15 + 0xb0], rax
mov qword [r15 + 0xb8], 0x20
movzx eax, byte [r15 + 0xa8]
cmp r13d, 9
jne 0x140044bd5
cmp al, 2
jne 0x1400448cb
mov r11, rbp
mov ecx, ebp
cmp r9, r10
jae 0x140044daa
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 0x1400449da
mov r9, r8
cmp r8, r10
jae 0x140044daa
jmp 0x1400449b0
lea rax, [r8 + r11]
lea r9, [r11 + r8]
cmp rax, r10
ja 0x140044df2
cmp r9, r10
jae 0x140044df8
movzx eax, byte [rdi + r9]
mov ebx, 1
mov rsi, qword [r15 + 0x98]
inc r9
mov byte [r15 + 0xc0], al
cmp rsi, rbx
jbe 0x140044acb
mov rax, r9
mov rdx, r9
nop
lea rcx, [r9]
cmp rax, r10
jae 0x140044e22
lea rax, [rdx + 1]
mov r9, rax
mov rdx, rax
cmp byte [rdi + rcx], bpl
jl 0x140044a20
cmp rax, r10
jae 0x140044e1c
cmp byte [rdi + rax], 2
jne 0x1400448cb
lea r8, [rax + 0x21]
add rax, 0x21
cmp rax, r10
ja 0x140044e16
mov r9, rbp
mov ecx, ebp
mov rax, r8
mov r11, r8
nop dword [rax + rax]
cmp r8, r10
jae 0x140044e10
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 0x140044a70
lea rax, [r9 + r8]
lea rcx, [r8 + r9]
cmp rax, r10
ja 0x140044e0a
cmp rcx, r10
jae 0x140044e04
lea r9, [rcx + 1]
inc rbx
mov rax, r9
mov rdx, r9
cmp rbx, rsi
jb 0x140044a20
mov rbx, rbp
mov ecx, ebp
cmp r9, r10
jae 0x140044e76
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 0x140044ad0
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 0x140044dfe
lea r11, [rbx + r9]
mov r12b, 1
test rbx, rbx
je 0x140044cb0
nop word [rax + rax]
mov r9, rbp
mov ecx, ebp
cmp r8, rbx
jae 0x140044e58
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 0x140044b35
sub r9, 1
je 0x140044c87
sub r9, 1
je 0x140044c2d
cmp r9, 1
jne 0x1400448cb
mov rsi, rbp
mov ecx, ebp
mov r9, r8
nop
cmp r9, rbx
jae 0x140044e40
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 0x140044b80
mov ecx, dword [r15 + 0x2c]
add r8, rsi
add ecx, r9d
mov dword [r15 + 0x38], ecx
cmp r8, rbx
ja 0x140044e3a
lea rax, [r14 + r9]
mov qword [r15 + 0xe0], rax
mov qword [r15 + 0xe8], rsi
jmp 0x140044ca7
cmp al, 3
jne 0x140044bf1
cmp r9, r10
jae 0x140044e28
movzx eax, byte [rdi + r9]
inc r9
mov byte [r15 + 0xc0], al
cmp r13d, 0xa
jne 0x140044acb
mov r8, rbp
mov ecx, ebp
cmp r9, r10
jae 0x140044e2e
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 0x140044c00
mov qword [r15 + 0x78], r8
jmp 0x140044acb
mov rsi, rbp
mov ecx, ebp
mov r9, r8
cmp r9, rbx
jae 0x140044e4c
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 0x140044c35
mov ecx, dword [r15 + 0x2c]
add r8, rsi
add ecx, r9d
mov dword [r15 + 0x34], ecx
cmp r8, rbx
ja 0x140044e46
lea rax, [r14 + r9]
mov qword [r15 + 0xd0], rax
mov qword [r15 + 0xd8], rsi
jmp 0x140044ca7
test r12b, r12b
je 0x140044c9a
mov ecx, dword [r15 + 0x2c]
xor r12b, r12b
add ecx, r8d
mov dword [r15 + 0x30], ecx
add r8, 0x20
cmp r8, rbx
ja 0x140044e52
cmp r8, rbx
jb 0x140044b30
cmp r13d, 9
jne 0x140044cfa
cmp r11, r10
jae 0x140044e6a
lea rax, [rdi + r11]
inc r11
cmp byte [rax], bpl
jl 0x140044cb6
nop dword [rax + rax]
cmp r11, r10
jae 0x140044e64
lea rax, [rdi + r11]
inc r11
cmp byte [rax], bpl
jl 0x140044cd0
cmp r11, r10
jae 0x140044e5e
lea rax, [rdi + r11]
inc r11
cmp byte [rax], bpl
jl 0x140044ce5
mov dword [r15 + 0x24], r11d
cmp r11, r10
jae 0x140044e34
lea r8, [r11 + 1]
cmp r13d, 0xa
jne 0x140044d35
mov rcx, qword [r15 + 0x90]
movabs rax, 0x2d82d82d82d82d83
mul rcx
shr rdx, 7
imul rax, rdx, 0x2d0
cmp rcx, rax
je 0x140044d8b
cmp byte [rdi + r11], bpl
jne 0x1400448cb
mov ecx, r11d
lea rax, [rcx + 1]
cmp r8, rax
jne 0x1400448cb
cmp byte [rdi + rcx], bpl
jne 0x1400448cb
mov ecx, ebp
nop dword [rax + rax]
cmp r8, r10
jae 0x140044e70
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 0x140044d60
mov qword [r15 + 0xf0], rbp
mov al, 1
jmp 0x1400448cd
call fcn.140044e90
int3
call fcn.140044e90
int3
call fcn.140044e90
int3
call fcn.140044e90
int3
call fcn.140044e90
int3
call fcn.140044e90
int3
call fcn.140044e90
int3
call fcn.140044e90
int3
call fcn.140044e90
int3
call fcn.140044e90
int3
call fcn.140044e90
int3
call fcn.140044e90
int3
call fcn.140044e90
int3
call fcn.140044e90
int3
call fcn.140044e90
int3
call fcn.140044e90
int3
call fcn.140044e90
int3
call fcn.140044e90
int3
call fcn.140044e90
int3
call fcn.140044e90
int3
call fcn.140044e90
int3
call fcn.140044e90
int3
call fcn.140044e90
int3
call fcn.140044e90
int3
call fcn.140044e90
int3
call fcn.140044e90
int3
call fcn.140044e90
int3
call fcn.140044e90
int3
call fcn.140044e90
int3
call fcn.140044e90
int3
call fcn.140044e90
int3
call fcn.140044e90
int3
call fcn.140044e90
int3
call fcn.140044e90
int3
call fcn.140044e90
int3
call fcn.140044e90
int3
call fcn.140044e90
int3
call fcn.140044e90
int3
call fcn.140044e90
int3
call fcn.140044e90
int3
call fcn.140044e90
int3