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

Disassembly:
push rdi
push r14
sub rsp, 0x58
mov rdi, qword [rcx]
mov r14, rcx
mov r9, qword [rcx + 8]
sub r9, rdi
je 0x14004216c
movzx eax, byte [rdi]
mov byte [rcx + 0x3c], al
cmp r9, 1
jbe 0x140042172
movzx eax, byte [rdi + 1]
mov r8d, 2
mov qword [rsp + 0x40], r15
xor r15d, r15d
mov byte [rcx + 0x3d], al
mov r11d, r15d
mov ecx, r15d
cmp r9, r8
jbe 0x140042148
mov r10d, r8d
movzx edx, byte [r10 + rdi]
inc r8
mov rax, rdx
mov r10, r8
and eax, 0x7f
shl rax, cl
add ecx, 7
or r11, rax
test dl, dl
jns 0x140041aab
cmp r8, r9
jae 0x140042148
jmp 0x140041a82
lea rax, [r8 + 0x20]
mov qword [r14 + 0x40], r11
lea rcx, [r8 + 0x20]
cmp rax, r9
ja 0x140042178
lea rax, [r8 + rdi]
mov qword [r14 + 0x48], rax
lea rax, [r8 + 0x24]
mov qword [r14 + 0x50], 0x20
mov dword [r14 + 0x1c], ecx
lea rcx, [r8 + 0x24]
cmp rax, r9
ja 0x14004217e
mov qword [rsp + 0x48], r13
mov r8, rcx
mov r13d, dword [r14 + 0x18]
mov rdx, rcx
mov rax, rcx
cmp r13d, 7
jne 0x140041b7f
cmp byte [r14 + 0x3c], 0x12
jb 0x140041b49
lea rax, [rcx + 0x40]
cmp rax, r9
ja 0x140042184
lea rax, [rcx + rdi]
mov qword [r14 + 0x58], rax
lea rax, [rcx + 0x42]
mov qword [r14 + 0x60], 0x40
cmp rax, r9
ja 0x14004218a
movzx eax, word [rcx + rdi + 0x40]
add rcx, 0x42
mov word [r14 + 0x68], ax
mov rax, rcx
mov rdx, rcx
mov r8, rcx
mov dword [r14 + 0x20], ecx
mov r10, r15
mov ecx, r15d
cmp r8, r9
jae 0x140042166
movzx edx, byte [rdi + rdx]
lea r8, [rax + 1]
mov rax, rdx
and eax, 0x7f
shl rax, cl
add ecx, 7
or r10, rax
test dl, dl
jns 0x140041b94
mov rdx, r8
mov rax, r8
jmp 0x140041b53
cmp r13d, 8
jne 0x140041b49
add rcx, 0x78
cmp rcx, r9
ja 0x14004214e
jmp 0x140041b40
mov qword [r14 + 0x70], r10
mov ecx, r15d
mov r10, r15
nop
cmp r8, r9
jae 0x140042142
movzx edx, byte [r8 + rdi]
inc r8
mov rax, rdx
and eax, 0x7f
shl rax, cl
add ecx, 7
or r10, rax
test dl, dl
js 0x140041ba0
mov qword [r14 + 0x78], r10
mov r11, r15
mov ecx, r15d
cmp r8, r9
jae 0x140042154
mov r10, r8
nop word [rax + rax]
movzx edx, byte [r10 + rdi]
lea r10, [r8 + 1]
mov rax, rdx
and eax, 0x7f
shl rax, cl
add ecx, 7
or r11, rax
test dl, dl
jns 0x140041c0a
mov r8, r10
cmp r10, r9
jae 0x140042154
jmp 0x140041be0
mov qword [rsp + 0x70], rbx
mov qword [rsp + 0x78], rbp
mov qword [rsp + 0x80], rsi
mov qword [rsp + 0x50], r12
mov qword [r14 + 0x80], r11
cmp r11, 1
jne 0x140041cbd
cmp r10, r9
jae 0x140042190
movzx eax, byte [rdi + r10]
lea r8, [r10 + 1]
mov byte [r14 + 0x88], al
cmp al, 0xff
jne 0x140041cbd
mov r10, r15
mov ecx, r15d
cmp r8, r9
jae 0x14004222c
movzx edx, byte [r8 + rdi]
inc r8
mov rax, rdx
and eax, 0x7f
shl rax, cl
add ecx, 7
or r10, rax
test dl, dl
js 0x140041c55
mov qword [r14 + 0x90], r10
mov ecx, r15d
mov r10, r15
cmp r8, r9
jae 0x140042226
movzx edx, byte [r8 + rdi]
inc r8
mov rax, rdx
and eax, 0x7f
shl rax, cl
add ecx, 7
or r10, rax
test dl, dl
js 0x140041c86
mov qword [r14 + 0x98], r10
cmp r13d, 8
jne 0x140041ce8
cmp r10, 2
jae 0x140041cee
xor al, al
mov rbp, qword [rsp + 0x78]
mov r12, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x80]
mov rbx, qword [rsp + 0x70]
mov r13, qword [rsp + 0x48]
mov r15, qword [rsp + 0x40]
add rsp, 0x58
pop r14
pop rdi
ret
cmp r10, 1
jne 0x140041cbd
mov r11, r15
mov ecx, r15d
mov r10, r8
cmp r10, r9
jae 0x140042220
movzx edx, byte [r8 + rdi]
inc r8
mov rax, rdx
mov r10, r8
and eax, 0x7f
shl rax, cl
add ecx, 7
or r11, rax
test dl, dl
js 0x140041cf7
mov qword [r14 + 0xa0], r11
cmp r8, r9
jae 0x140042196
movzx eax, byte [rdi + r8]
inc r8
mov byte [r14 + 0xa8], al
sub al, 2
cmp al, 1
ja 0x140041cbd
lea rax, [r8 + 0x20]
mov dword [r14 + 0x28], r8d
cmp rax, r9
ja 0x14004219c
lea rax, [r8 + rdi]
add r8, 0x20
mov qword [r14 + 0xb0], rax
mov qword [r14 + 0xb8], 0x20
movzx ecx, byte [r14 + 0xa8]
cmp r13d, 8
jne 0x140041ec0
cmp cl, 2
jne 0x140041cbd
mov r10, r15
mov ecx, r15d
cmp r8, r9
jae 0x14004215a
mov r11, r8
nop
movzx edx, byte [r11 + rdi]
inc r8
mov rax, rdx
mov r11, r8
and eax, 0x7f
shl rax, cl
add ecx, 7
or r10, rax
test dl, dl
jns 0x140041dc9
cmp r8, r9
jae 0x14004215a
jmp 0x140041da0
lea rax, [r8 + r10]
cmp rax, r9
ja 0x1400421a2
add r8, r10
cmp r8, r9
jae 0x1400421a8
movzx eax, byte [r8 + rdi]
mov ebx, 1
mov rsi, qword [r14 + 0x98]
inc r8
mov byte [r14 + 0xc0], al
mov r10, r8
mov rax, r8
cmp rsi, rbx
jbe 0x140041ee9
mov rcx, r8
mov rdx, r8
lea rax, [r10]
cmp rcx, r9
jae 0x1400421cc
lea rcx, [rdx + 1]
mov r10, rcx
mov rdx, rcx
cmp byte [rdi + rax], r15b
jl 0x140041e12
cmp rcx, r9
jae 0x1400421c6
cmp byte [rcx + rdi], 2
jne 0x140041cbd
lea rax, [rcx + 0x21]
lea r8, [rcx + 0x21]
cmp rax, r9
ja 0x1400421c0
mov r10, r15
mov ecx, r15d
mov rax, r8
mov r11, r8
nop
cmp r8, r9
jae 0x1400421ba
movzx edx, byte [rdi + r11]
lea r8, [rax + 1]
mov rax, rdx
mov r11, r8
and eax, 0x7f
shl rax, cl
add ecx, 7
or r10, rax
mov rax, r8
test dl, dl
js 0x140041e60
lea rax, [r10 + r8]
lea rcx, [r8 + r10]
cmp rax, r9
ja 0x1400421b4
cmp rcx, r9
jae 0x1400421ae
lea r8, [rcx + 1]
inc rbx
mov r10, r8
mov rcx, r8
mov rdx, r8
cmp rbx, rsi
jb 0x140041e12
jmp 0x140041ee6
mov r10, r8
mov rax, r8
cmp cl, 3
jne 0x140041ee9
cmp r8, r9
jae 0x1400421d2
movzx eax, byte [rdi + r8]
inc r8
mov r10, r8
mov byte [r14 + 0xc0], al
mov rax, r8
mov rbx, r15
mov ecx, r15d
cmp r8, r9
jae 0x140042160
nop dword [rax + rax]
movzx edx, byte [rdi + r10]
lea r10, [rax + 1]
mov rax, rdx
and eax, 0x7f
shl rax, cl
add ecx, 7
or rbx, rax
test dl, dl
jns 0x140041f2a
mov rax, r10
cmp r10, r9
jae 0x140042160
jmp 0x140041f00
mov ebp, r10d
lea rax, [r10 + rbx]
add rbp, rdi
mov qword [r14 + 0xc8], rbx
mov dword [r14 + 0x2c], r10d
mov r8, r15
cmp rax, r9
ja 0x1400421d8
lea r11, [r10 + rbx]
mov r12b, 1
test rbx, rbx
je 0x14004208b
nop dword [rax + rax]
mov r10, r15
mov ecx, r15d
cmp r8, rbx
jae 0x140042202
movzx edx, byte [r8 + rbp]
inc r8
mov rax, rdx
and eax, 0x7f
shl rax, cl
add ecx, 7
or r10, rax
test dl, dl
js 0x140041f66
sub r10, 1
je 0x140042062
sub r10, 1
je 0x140042005
cmp r10, 1
jne 0x140041cbd
mov rsi, r15
mov ecx, r15d
mov r10, r8
nop dword [rax]
cmp r10, rbx
jae 0x1400421ea
movzx edx, byte [r8 + rbp]
inc r8
mov rax, rdx
mov r10, r8
and eax, 0x7f
shl rax, cl
add ecx, 7
or rsi, rax
test dl, dl
js 0x140041fb0
mov ecx, dword [r14 + 0x2c]
add r8, rsi
add ecx, r10d
mov dword [r14 + 0x38], ecx
cmp r8, rbx
ja 0x1400421e4
lea rax, [r10 + rbp]
mov qword [r14 + 0xe0], rax
mov qword [r14 + 0xe8], rsi
jmp 0x140042082
mov rsi, r15
mov ecx, r15d
mov r10, r8
nop
cmp r10, rbx
jae 0x1400421f6
movzx edx, byte [r8 + rbp]
inc r8
mov rax, rdx
mov r10, r8
and eax, 0x7f
shl rax, cl
add ecx, 7
or rsi, rax
test dl, dl
js 0x140042010
mov ecx, dword [r14 + 0x2c]
add r8, rsi
add ecx, r10d
mov dword [r14 + 0x34], ecx
cmp r8, rbx
ja 0x1400421f0
lea rax, [r10 + rbp]
mov qword [r14 + 0xd0], rax
mov qword [r14 + 0xd8], rsi
jmp 0x140042082
test r12b, r12b
je 0x140042075
mov ecx, dword [r14 + 0x2c]
xor r12b, r12b
add ecx, r8d
mov dword [r14 + 0x30], ecx
add r8, 0x20
cmp r8, rbx
ja 0x1400421fc
cmp r8, rbx
jb 0x140041f60
cmp r13d, 8
jne 0x1400420d5
cmp r11, r9
jae 0x140042214
lea rax, [r11 + rdi]
inc r11
cmp byte [rax], r15b
jl 0x140042091
cmp r11, r9
jae 0x14004220e
lea rax, [r11 + rdi]
inc r11
cmp byte [rax], r15b
jl 0x1400420a6
nop dword [rax + rax]
cmp r11, r9
jae 0x140042208
lea rax, [r11 + rdi]
inc r11
cmp byte [rax], r15b
jl 0x1400420c0
mov dword [r14 + 0x24], r11d
cmp r11, r9
jae 0x1400421de
lea r8, [r11 + 1]
cmp byte [r11 + rdi], r15b
jne 0x140041cbd
mov ecx, r11d
lea rax, [rcx + 1]
cmp r8, rax
jne 0x140041cbd
cmp byte [rcx + rdi], r15b
jne 0x140041cbd
mov ecx, r15d
nop dword [rax]
cmp r8, r9
jae 0x14004221a
movzx edx, byte [r8 + rdi]
inc r8
mov rax, rdx
and eax, 0x7f
shl rax, cl
add ecx, 7
or r15, rax
test dl, dl
js 0x140042110
mov qword [r14 + 0xf0], r15
mov al, 1
jmp 0x140041cbf
call fcn.140042240
int3
call fcn.140042240
int3
call fcn.140042240
int3
call fcn.140042240
int3
call fcn.140042240
int3
call fcn.140042240
int3
call fcn.140042240
int3
call fcn.140042240
int3
call fcn.140042240
int3
call fcn.140042240
int3
call fcn.140042240
int3
call fcn.140042240
int3
call fcn.140042240
int3
call fcn.140042240
int3
call fcn.140042240
int3
call fcn.140042240
int3
call fcn.140042240
int3
call fcn.140042240
int3
call fcn.140042240
int3
call fcn.140042240
int3
call fcn.140042240
int3
call fcn.140042240
int3
call fcn.140042240
int3
call fcn.140042240
int3
call fcn.140042240
int3
call fcn.140042240
int3
call fcn.140042240
int3
call fcn.140042240
int3
call fcn.140042240
int3
call fcn.140042240
int3
call fcn.140042240
int3
call fcn.140042240
int3
call fcn.140042240
int3
call fcn.140042240
int3
call fcn.140042240
int3
call fcn.140042240
int3
call fcn.140042240
int3
call fcn.140042240
int3
call fcn.140042240
int3
call fcn.140042240
int3