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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x28
mov eax, 0xfffffffe
test rcx, rcx
je 0x140004c69
mov rdi, rcx
cmp qword [rcx + 0x30], 0
je 0x140004c69
cmp qword [rdi + 0x38], 0
je 0x140004c69
mov rsi, qword [rdi + 0x28]
test rsi, rsi
je 0x140004c69
cmp qword [rsi], rdi
je 0x140004c7a
add rsp, 0x28
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov ebx, edx
mov ecx, dword [rsi + 8]
lea edx, [rcx - 0x39]
cmp edx, 0x38
ja 0x140004d99
movabs rbp, 0x100400400011001
bt rbp, rdx
jae 0x140004d99
cmp ebx, 5
ja 0x140004c69
cmp qword [rdi + 0x10], 0
je 0x14000508e
cmp dword [rdi + 8], 0
je 0x140004cbf
cmp qword [rdi], 0
je 0x14000508e
cmp ebx, 4
je 0x140004cd0
cmp ecx, 0x29a
je 0x14000508e
cmp dword [rdi + 0x18], 0
je 0x140004f41
mov eax, dword [rsi + 0x40]
mov dword [rsi + 0x40], ebx
cmp dword [rsi + 0x28], 0
jne 0x140004e7a
cmp dword [rdi + 8], 0
je 0x140004f0c
cmp ecx, 0x29a
je 0x140004edf
cmp ecx, 0x2a
je 0x14000509e
cmp ecx, 0x39
je 0x1400051fb
add ecx, 0xffffffbb
cmp ecx, 0x22
ja case.0x140004d28.70
lea rax, [0x140005f68]
movsxd rcx, dword [rax + rcx*4]
add rcx, rax
jmp rcx
cmp dword [rdi + 8], 0
je 0x140004ee5
movsxd rbp, dword [rsi + 0xac]
test rbp, rbp
je 0x140005489
mov eax, dword [rsi + 0xb0]
cmp eax, 2
je 0x140004f63
cmp eax, 3
je 0x140005498
shl rbp, 4
lea rax, [0x14000d210]
mov rcx, rsi
mov edx, ebx
call qword [rbp + rax + 8]
mov ecx, eax
or ecx, 1
cmp ecx, 3
je 0x140004db3
test eax, 0xfffffffd
jne 0x140004dc1
xor eax, eax
cmp dword [rdi + 0x18], 0
jne 0x140004c69
mov dword [rsi + 0x40], 0xffffffff
jmp 0x140004c69
cmp ecx, 0x29a
je 0x140004c9f
cmp ecx, 0x2a
je 0x140004c9f
jmp 0x140004c69
mov dword [rsi + 8], 0x29a
test eax, 0xfffffffd
je 0x140004d81
cmp eax, 1
je 0x140005b76
cmp ebx, 4
jne 0x140005760
mov ecx, dword [rsi + 0x2c]
mov eax, 1
test ecx, ecx
jle 0x140004c69
mov eax, dword [rdi + 0x4c]
cmp ecx, 2
jne 0x140005942
mov rcx, qword [rsi + 0x10]
mov edx, dword [rsi + 0x28]
lea ebp, [rdx + 1]
mov dword [rsi + 0x28], ebp
mov byte [rcx + rdx], al
mov al, byte [rdi + 0x4d]
mov rcx, qword [rsi + 0x10]
mov edx, dword [rsi + 0x28]
lea ebp, [rdx + 1]
mov dword [rsi + 0x28], ebp
mov byte [rcx + rdx], al
mov al, byte [rdi + 0x4e]
mov rcx, qword [rsi + 0x10]
mov edx, dword [rsi + 0x28]
lea ebp, [rdx + 1]
mov dword [rsi + 0x28], ebp
mov byte [rcx + rdx], al
mov al, byte [rdi + 0x4f]
mov rcx, qword [rsi + 0x10]
mov edx, dword [rsi + 0x28]
lea ebp, [rdx + 1]
mov dword [rsi + 0x28], ebp
mov byte [rcx + rdx], al
mov al, byte [rdi + 0xc]
mov rcx, qword [rsi + 0x10]
mov edx, dword [rsi + 0x28]
lea ebp, [rdx + 1]
mov dword [rsi + 0x28], ebp
mov byte [rcx + rdx], al
mov al, byte [rdi + 0xd]
mov rcx, qword [rsi + 0x10]
mov edx, dword [rsi + 0x28]
lea ebp, [rdx + 1]
mov dword [rsi + 0x28], ebp
mov byte [rcx + rdx], al
mov al, byte [rdi + 0xe]
mov rcx, qword [rsi + 0x10]
mov edx, dword [rsi + 0x28]
lea ebp, [rdx + 1]
mov dword [rsi + 0x28], ebp
mov byte [rcx + rdx], al
movzx eax, byte [rdi + 0xf]
jmp 0x14000597d
mov r14, qword [rdi + 0x28]
mov rcx, r14
call fcn.1400077a0
mov ebp, dword [r14 + 0x28]
mov eax, dword [rdi + 0x18]
cmp ebp, eax
cmova ebp, eax
test ebp, ebp
je 0x140004ec8
mov rcx, qword [rdi + 0x10]
mov rdx, qword [r14 + 0x20]
mov r15d, ebp
mov r8, r15
call sub.VCRUNTIME140.dll_memcpy
add qword [rdi + 0x10], r15
add qword [r14 + 0x20], r15
add dword [rdi + 0x1c], ebp
sub dword [rdi + 0x18], ebp
sub dword [r14 + 0x28], ebp
jne 0x140004ec5
mov rax, qword [r14 + 0x10]
mov qword [r14 + 0x20], rax
mov eax, dword [rdi + 0x18]
test eax, eax
je 0x140005759
mov ecx, dword [rsi + 8]
cmp ecx, 0x29a
jne 0x140004d00
cmp dword [rdi + 8], 0
jne 0x140004f41
cmp dword [rsi + 0x9c], 0
jne 0x140004d34
test ebx, ebx
je 0x140004dca
cmp dword [rsi + 8], 0x29a
je 0x140004dca
jmp 0x140004d34
mov r8d, 9
mov ebp, 9
cmp ebx, 4
jg 0x140004f1e
xor ebp, ebp
cmp eax, 4
jg 0x140004f26
xor r8d, r8d
cmp ebx, 4
je 0x140004cf4
lea edx, [rbx + rbx]
sub edx, ebp
add eax, eax
sub eax, r8d
cmp edx, eax
jg 0x140004cf4
mov rax, qword [str.buffer_error]
mov qword [rdi + 0x20], rax
mov eax, 0xfffffffb
jmp 0x140004c69
mov rax, qword [rsi]
cmp dword [rax + 0x18], 0
je 0x140004d81
cmp dword [rsi + 0x9c], 0
jne 0x140004f81
mov rcx, rsi
call fcn.140004450
cmp dword [rsi + 0x9c], 0
je 0x140005767
mov dword [rsi + 0x88], 0
mov rax, qword [rsi + 0x50]
mov ecx, dword [rsi + 0x94]
movzx eax, byte [rax + rcx]
mov rcx, qword [rsi + 0x16f8]
mov edx, dword [rsi + 0x16f4]
mov word [rcx + rdx*2], 0
mov rcx, qword [rsi + 0x16e8]
mov edx, dword [rsi + 0x16f4]
lea ebp, [rdx + 1]
mov dword [rsi + 0x16f4], ebp
mov byte [rcx + rdx], al
add word [rsi + rax*4 + 0xbc], 1
mov eax, dword [rsi + 0x16f4]
mov ecx, dword [rsi + 0x16f0]
add ecx, 0xffffffff
add dword [rsi + 0x9c], 0xffffffff
mov r8d, dword [rsi + 0x94]
add r8d, 1
mov dword [rsi + 0x94], r8d
cmp eax, ecx
jne 0x140004f63
mov edx, dword [rsi + 0x84]
sub r8d, edx
test edx, edx
js 0x14000508a
add rdx, qword [rsi + 0x50]
mov rcx, rsi
xor r9d, r9d
call fcn.140007970
mov eax, dword [rsi + 0x94]
mov dword [rsi + 0x84], eax
mov r12, qword [rsi]
mov r14, qword [r12 + 0x28]
mov rcx, r14
call fcn.1400077a0
mov ebp, dword [r14 + 0x28]
mov eax, dword [r12 + 0x18]
cmp ebp, eax
cmova ebp, eax
test ebp, ebp
je 0x140004f56
mov rcx, qword [r12 + 0x10]
mov rdx, qword [r14 + 0x20]
mov r15d, ebp
mov r8, r15
call sub.VCRUNTIME140.dll_memcpy
add qword [r12 + 0x10], r15
add qword [r14 + 0x20], r15
add dword [r12 + 0x1c], ebp
sub dword [r12 + 0x18], ebp
sub dword [r14 + 0x28], ebp
jne 0x140004f56
mov rax, qword [r14 + 0x10]
mov qword [r14 + 0x20], rax
jmp 0x140004f56
xor edx, edx
jmp 0x14000500f
mov rcx, qword [str.stream_error]
mov qword [rdi + 0x20], rcx
jmp 0x140004c69
mov eax, dword [rsi + 0x48]
shl eax, 0xc
add eax, 0xffff8800
xor edx, edx
cmp dword [rsi + 0xb0], 1
jg 0x1400050d5
mov ecx, dword [rsi + 0xac]
cmp ecx, 2
jl 0x1400050d5
mov edx, 0x40
cmp ecx, 6
jl 0x1400050d5
setne cl
movzx edx, cl
or edx, 2
shl edx, 6
or edx, eax
mov ecx, edx
or ecx, 0x20
cmp dword [rsi + 0x94], 0
cmove ecx, edx
imul rdx, rcx, 0x8421085
shr rdx, 0x20
mov eax, ecx
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 4
mov edx, eax
shl edx, 5
sub eax, edx
add eax, ecx
or eax, ecx
mov r8, qword [rsi + 0x10]
mov ebp, dword [rsi + 0x28]
lea edx, [rbp + 1]
mov dword [rsi + 0x28], edx
mov rdx, r8
mov byte [rdx + rbp], ch
xor al, 0x1f
mov rcx, qword [rsi + 0x10]
mov edx, dword [rsi + 0x28]
lea ebp, [rdx + 1]
mov dword [rsi + 0x28], ebp
mov byte [rcx + rdx], al
cmp dword [rsi + 0x94], 0
je 0x140005184
mov eax, dword [rdi + 0x4c]
mov ecx, eax
shr ecx, 0x10
shr eax, 0x18
mov r8, qword [rsi + 0x10]
mov ebp, dword [rsi + 0x28]
lea edx, [rbp + 1]
mov dword [rsi + 0x28], edx
mov byte [r8 + rbp], al
mov rax, qword [rsi + 0x10]
mov edx, dword [rsi + 0x28]
lea ebp, [rdx + 1]
mov dword [rsi + 0x28], ebp
mov byte [rax + rdx], cl
mov eax, dword [rdi + 0x4c]
mov rcx, qword [rsi + 0x10]
mov edx, dword [rsi + 0x28]
lea ebp, [rdx + 1]
mov dword [rsi + 0x28], ebp
mov byte [rcx + rdx], ah
mov rcx, qword [rsi + 0x10]
mov edx, dword [rsi + 0x28]
lea ebp, [rdx + 1]
mov dword [rsi + 0x28], ebp
mov byte [rcx + rdx], al
xor ecx, ecx
xor edx, edx
xor r8d, r8d
call fcn.1400038e0
mov dword [rdi + 0x4c], eax
mov dword [rsi + 8], 0x71
mov r14, qword [rdi + 0x28]
mov rcx, r14
call fcn.1400077a0
mov ebp, dword [r14 + 0x28]
mov eax, dword [rdi + 0x18]
cmp ebp, eax
cmova ebp, eax
test ebp, ebp
je 0x1400051e5
mov rcx, qword [rdi + 0x10]
mov rdx, qword [r14 + 0x20]
mov r15d, ebp
mov r8, r15
call sub.VCRUNTIME140.dll_memcpy
add qword [rdi + 0x10], r15
add qword [r14 + 0x20], r15
add dword [rdi + 0x1c], ebp
sub dword [rdi + 0x18], ebp
sub dword [r14 + 0x28], ebp
jne 0x1400051e5
mov rax, qword [r14 + 0x10]
mov qword [r14 + 0x20], rax
cmp dword [rsi + 0x28], 0
jne 0x140005759
mov ecx, dword [rsi + 8]
cmp ecx, 0x39
jne 0x140004d12
xor ecx, ecx
xor edx, edx
xor r8d, r8d
call fcn.140003cd0
mov dword [rdi + 0x4c], eax
mov rax, qword [rsi + 0x10]
mov ecx, dword [rsi + 0x28]
lea edx, [rcx + 1]
mov dword [rsi + 0x28], edx
mov byte [rax + rcx], 0x1f
mov rax, qword [rsi + 0x10]
mov ecx, dword [rsi + 0x28]
lea edx, [rcx + 1]
mov dword [rsi + 0x28], edx
mov byte [rax + rcx], 0x8b
mov rax, qword [rsi + 0x10]
mov ecx, dword [rsi + 0x28]
lea edx, [rcx + 1]
mov dword [rsi + 0x28], edx
mov byte [rax + rcx], 8
mov rax, qword [rsi + 0x30]
test rax, rax
je 0x140005774
cmp dword [rax], 0
setne cl
cmp dword [rax + 0x3c], 0
setne dl
add dl, dl
or dl, cl
cmp qword [rax + 0x10], 0
setne cl
shl cl, 2
or cl, dl
cmp qword [rax + 0x20], 0
setne dl
shl dl, 3
or dl, cl
cmp qword [rax + 0x30], 0
setne al
shl al, 4
or al, dl
mov rcx, qword [rsi + 0x10]
mov edx, dword [rsi + 0x28]
lea ebp, [rdx + 1]
mov dword [rsi + 0x28], ebp
mov byte [rcx + rdx], al
mov rax, qword [rsi + 0x30]
mov al, byte [rax + 4]
mov rcx, qword [rsi + 0x10]
mov edx, dword [rsi + 0x28]
lea ebp, [rdx + 1]
mov dword [rsi + 0x28], ebp
mov byte [rcx + rdx], al
mov rax, qword [rsi + 0x30]
mov al, byte [rax + 5]
mov rcx, qword [rsi + 0x10]
mov edx, dword [rsi + 0x28]
lea ebp, [rdx + 1]
mov dword [rsi + 0x28], ebp
mov byte [rcx + rdx], al
mov rax, qword [rsi + 0x30]
mov al, byte [rax + 6]
mov rcx, qword [rsi + 0x10]
mov edx, dword [rsi + 0x28]
lea ebp, [rdx + 1]
mov dword [rsi + 0x28], ebp
mov byte [rcx + rdx], al
mov rax, qword [rsi + 0x30]
mov al, byte [rax + 7]
mov rcx, qword [rsi + 0x10]
mov edx, dword [rsi + 0x28]
lea ebp, [rdx + 1]
mov dword [rsi + 0x28], ebp
mov byte [rcx + rdx], al
mov ecx, dword [rsi + 0xac]
mov al, 2
cmp ecx, 9
je 0x140005316
cmp dword [rsi + 0xb0], 1
setg al
shl al, 2
cmp ecx, 2
movzx ecx, al
mov eax, 4
cmovge eax, ecx
mov rcx, qword [rsi + 0x10]
mov edx, dword [rsi + 0x28]
lea ebp, [rdx + 1]
mov dword [rsi + 0x28], ebp
mov byte [rcx + rdx], al
mov rax, qword [rsi + 0x30]
mov al, byte [rax + 0xc]
mov rcx, qword [rsi + 0x10]
mov edx, dword [rsi + 0x28]
lea ebp, [rdx + 1]
mov dword [rsi + 0x28], ebp
mov byte [rcx + rdx], al
mov rax, qword [rsi + 0x30]
cmp qword [rax + 0x10], 0
je 0x140005376
mov al, byte [rax + 0x18]
mov rcx, qword [rsi + 0x10]
mov edx, dword [rsi + 0x28]
lea ebp, [rdx + 1]
mov dword [rsi + 0x28], ebp
mov byte [rcx + rdx], al
mov rax, qword [rsi + 0x30]
mov al, byte [rax + 0x19]
mov rcx, qword [rsi + 0x10]
mov edx, dword [rsi + 0x28]
lea ebp, [rdx + 1]
mov dword [rsi + 0x28], ebp
mov byte [rcx + rdx], al
mov rax, qword [rsi + 0x30]
cmp dword [rax + 0x3c], 0
jne 0x14000590d
mov dword [rsi + 0x38], 0
mov dword [rsi + 8], 0x45
mov rcx, qword [rsi + 0x30]
mov rax, qword [rcx + 0x10]
test rax, rax
je 0x1400054dd
mov r15d, dword [rsi + 0x18]
mov r13d, dword [rsi + 0x28]
movzx r14d, word [rcx + 0x18]
mov edx, dword [rsi + 0x38]
sub r14d, edx
lea ecx, [r14 + r13]
cmp ecx, r15d
jbe 0x1400054a4
sub r15d, r13d
mov r12d, r13d
mov rcx, qword [rsi + 0x10]
add rcx, r12
mov edx, edx
add rdx, rax
mov r8, r15
call sub.VCRUNTIME140.dll_memcpy
mov r8d, dword [rsi + 0x18]
mov dword [rsi + 0x28], r8d
cmp r8d, r13d
jbe 0x1400053f0
mov rax, qword [rsi + 0x30]
cmp dword [rax + 0x3c], 0
jne 0x14000546f
add dword [rsi + 0x38], r15d
mov r12, qword [rdi + 0x28]
mov rcx, r12
call fcn.1400077a0
mov ebp, dword [r12 + 0x28]
mov eax, dword [rdi + 0x18]
cmp ebp, eax
cmova ebp, eax
test ebp, ebp
je 0x140005445
mov rcx, qword [rdi + 0x10]
mov rdx, qword [r12 + 0x20]
mov r13d, ebp
mov r8, r13
call sub.VCRUNTIME140.dll_memcpy
add qword [rdi + 0x10], r13
add qword [r12 + 0x20], r13
add dword [rdi + 0x1c], ebp
sub dword [rdi + 0x18], ebp
sub dword [r12 + 0x28], ebp
jne 0x140005445
mov rax, qword [r12 + 0x10]
mov qword [r12 + 0x20], rax
cmp dword [rsi + 0x28], 0
jne 0x140005759
sub r14d, r15d
mov r15d, dword [rsi + 0x18]
xor r13d, r13d
mov rax, qword [rsi + 0x30]
mov rax, qword [rax + 0x10]
mov edx, dword [rsi + 0x38]
cmp r14d, r15d
ja 0x1400053bf
jmp 0x1400054a4
sub r8d, r12d
add r12, qword [rsi + 0x10]
mov ecx, dword [rdi + 0x4c]
mov rdx, r12
call fcn.140003cd0
mov dword [rdi + 0x4c], eax
jmp 0x1400053f0
mov rcx, rsi
mov edx, ebx
call fcn.140006000
jmp 0x140004d70
lea r12, [0x14000d4b0]
jmp 0x140005c63
mov r15d, r13d
mov rcx, qword [rsi + 0x10]
add rcx, r15
mov edx, edx
add rdx, rax
mov r8d, r14d
call sub.VCRUNTIME140.dll_memcpy
add r14d, dword [rsi + 0x28]
mov dword [rsi + 0x28], r14d
cmp r14d, r13d
jbe 0x1400054d6
mov rax, qword [rsi + 0x30]
cmp dword [rax + 0x3c], 0
jne 0x140005925
mov dword [rsi + 0x38], 0
mov dword [rsi + 8], 0x49
mov rax, qword [rsi + 0x30]
cmp qword [rax + 0x20], 0
je 0x1400055e2
mov r8d, dword [rsi + 0x28]
mov r9d, r8d
cmp r8d, dword [rsi + 0x18]
jne 0x140005596
jmp 0x140005514
mov r8d, dword [rsi + 0x28]
cmp r8d, dword [rsi + 0x18]
jne 0x140005596
sub r8d, r9d
jbe 0x140005523
mov rcx, qword [rsi + 0x30]
cmp dword [rcx + 0x3c], 0
jne 0x140005582
mov r14, qword [rdi + 0x28]
mov rcx, r14
call fcn.1400077a0
mov ebp, dword [r14 + 0x28]
mov eax, dword [rdi + 0x18]
cmp ebp, eax
cmova ebp, eax
test ebp, ebp
je 0x14000556e
mov rcx, qword [rdi + 0x10]
mov rdx, qword [r14 + 0x20]
mov r15d, ebp
mov r8, r15
call sub.VCRUNTIME140.dll_memcpy
add qword [rdi + 0x10], r15
add qword [r14 + 0x20], r15
add dword [rdi + 0x1c], ebp
sub dword [rdi + 0x18], ebp
sub dword [r14 + 0x28], ebp
jne 0x14000556e
mov rax, qword [r14 + 0x10]
mov qword [r14 + 0x20], rax
xor r8d, r8d
cmp dword [rsi + 0x28], 0
mov r9d, 0
je 0x140005596
jmp 0x140005759
mov edx, r9d
add rdx, qword [rsi + 0x10]
mov ecx, dword [rdi + 0x4c]
call fcn.140003cd0
mov dword [rdi + 0x4c], eax
jmp 0x140005523
mov rcx, qword [rsi + 0x10]
mov rdx, qword [rsi + 0x30]
mov rdx, qword [rdx + 0x20]
mov ebp, dword [rsi + 0x38]
lea eax, [rbp + 1]
mov dword [rsi + 0x38], eax
movzx eax, byte [rdx + rbp]
lea edx, [r8 + 1]
mov dword [rsi + 0x28], edx
mov edx, r8d
mov byte [rcx + rdx], al
test al, al
jne 0x140005506
mov rax, qword [rsi + 0x30]
cmp dword [rax + 0x3c], 0
je 0x1400055db
mov r8d, dword [rsi + 0x28]
sub r8d, r9d
ja 0x140005a07
mov dword [rsi + 0x38], 0
mov dword [rsi + 8], 0x5b
mov rax, qword [rsi + 0x30]
cmp qword [rax + 0x30], 0
je 0x1400056e0
mov r8d, dword [rsi + 0x28]
mov r9d, r8d
cmp r8d, dword [rsi + 0x18]
jne 0x14000569b
jmp 0x140005619
mov r8d, dword [rsi + 0x28]
cmp r8d, dword [rsi + 0x18]
jne 0x14000569b
sub r8d, r9d
jbe 0x140005628
mov rcx, qword [rsi + 0x30]
cmp dword [rcx + 0x3c], 0
jne 0x140005687
mov r14, qword [rdi + 0x28]
mov rcx, r14
call fcn.1400077a0
mov ebp, dword [r14 + 0x28]
mov eax, dword [rdi + 0x18]
cmp ebp, eax
cmova ebp, eax
test ebp, ebp
je 0x140005673
mov rcx, qword [rdi + 0x10]
mov rdx, qword [r14 + 0x20]
mov r15d, ebp
mov r8, r15
call sub.VCRUNTIME140.dll_memcpy
add qword [rdi + 0x10], r15
add qword [r14 + 0x20], r15
add dword [rdi + 0x1c], ebp
sub dword [rdi + 0x18], ebp
sub dword [r14 + 0x28], ebp
jne 0x140005673
mov rax, qword [r14 + 0x10]
mov qword [r14 + 0x20], rax
xor r8d, r8d
cmp dword [rsi + 0x28], 0
mov r9d, 0
je 0x14000569b
jmp 0x140005759
mov edx, r9d
add rdx, qword [rsi + 0x10]
mov ecx, dword [rdi + 0x4c]
call fcn.140003cd0
mov dword [rdi + 0x4c], eax
jmp 0x140005628
mov rcx, qword [rsi + 0x10]
mov rdx, qword [rsi + 0x30]
mov rdx, qword [rdx + 0x30]
mov ebp, dword [rsi + 0x38]
lea eax, [rbp + 1]
mov dword [rsi + 0x38], eax
movzx eax, byte [rdx + rbp]
lea edx, [r8 + 1]
mov dword [rsi + 0x28], edx
mov edx, r8d
mov byte [rcx + rdx], al
test al, al
jne 0x14000560b
mov rax, qword [rsi + 0x30]
cmp dword [rax + 0x3c], 0
je 0x1400056e0
mov r8d, dword [rsi + 0x28]
sub r8d, r9d
ja 0x1400059f0
mov dword [rsi + 8], 0x67
mov rax, qword [rsi + 0x30]
cmp dword [rax + 0x3c], 0
je 0x1400058ac
mov eax, dword [rsi + 0x28]
lea ecx, [rax + 2]
cmp ecx, dword [rsi + 0x18]
jbe 0x140005878
mov r14, qword [rdi + 0x28]
mov rcx, r14
call fcn.1400077a0
mov ebp, dword [r14 + 0x28]
mov eax, dword [rdi + 0x18]
cmp ebp, eax
cmova ebp, eax
test ebp, ebp
je 0x14000574f
mov rcx, qword [rdi + 0x10]
mov rdx, qword [r14 + 0x20]
mov r15d, ebp
mov r8, r15
call sub.VCRUNTIME140.dll_memcpy
add qword [rdi + 0x10], r15
add qword [r14 + 0x20], r15
add dword [rdi + 0x1c], ebp
sub dword [rdi + 0x18], ebp
sub dword [r14 + 0x28], ebp
jne 0x14000574f
mov rax, qword [r14 + 0x10]
mov qword [r14 + 0x20], rax
cmp dword [rsi + 0x28], 0
je 0x140005876
mov dword [rsi + 0x40], 0xffffffff
xor eax, eax
jmp 0x140004c69
test ebx, ebx
jne 0x140005a1e
jmp 0x140004d81
mov rax, qword [rsi + 0x10]
mov ecx, dword [rsi + 0x28]
lea edx, [rcx + 1]
mov dword [rsi + 0x28], edx
mov byte [rax + rcx], 0
mov rax, qword [rsi + 0x10]
mov ecx, dword [rsi + 0x28]
lea edx, [rcx + 1]
mov dword [rsi + 0x28], edx
mov byte [rax + rcx], 0
mov rax, qword [rsi + 0x10]
mov ecx, dword [rsi + 0x28]
lea edx, [rcx + 1]
mov dword [rsi + 0x28], edx
mov byte [rax + rcx], 0
mov rax, qword [rsi + 0x10]
mov ecx, dword [rsi + 0x28]
lea edx, [rcx + 1]
mov dword [rsi + 0x28], edx
mov byte [rax + rcx], 0
mov rax, qword [rsi + 0x10]
mov ecx, dword [rsi + 0x28]
lea edx, [rcx + 1]
mov dword [rsi + 0x28], edx
mov byte [rax + rcx], 0
mov ecx, dword [rsi + 0xac]
mov al, 2
cmp ecx, 9
je 0x1400057f1
cmp dword [rsi + 0xb0], 1
setg al
shl al, 2
cmp ecx, 2
movzx ecx, al
mov eax, 4
cmovge eax, ecx
mov rcx, qword [rsi + 0x10]
mov edx, dword [rsi + 0x28]
lea ebp, [rdx + 1]
mov dword [rsi + 0x28], ebp
mov byte [rcx + rdx], al
mov rax, qword [rsi + 0x10]
mov ecx, dword [rsi + 0x28]
lea edx, [rcx + 1]
mov dword [rsi + 0x28], edx
mov byte [rax + rcx], 0xa
mov dword [rsi + 8], 0x71
mov r14, qword [rdi + 0x28]
mov rcx, r14
call fcn.1400077a0
mov ebp, dword [r14 + 0x28]
mov eax, dword [rdi + 0x18]
cmp ebp, eax
cmova ebp, eax
test ebp, ebp
je 0x140005864
mov rcx, qword [rdi + 0x10]
mov rdx, qword [r14 + 0x20]
mov r15d, ebp
mov r8, r15
call sub.VCRUNTIME140.dll_memcpy
add qword [rdi + 0x10], r15
add qword [r14 + 0x20], r15
add dword [rdi + 0x1c], ebp
sub dword [rdi + 0x18], ebp
sub dword [r14 + 0x28], ebp
jne 0x140005864
mov rax, qword [r14 + 0x10]
mov qword [r14 + 0x20], rax
cmp dword [rsi + 0x28], 0
jne 0x140005759
mov ecx, dword [rsi + 8]
jmp 0x140004d12
xor eax, eax
mov cl, byte [rdi + 0x4c]
mov rdx, qword [rsi + 0x10]
lea ebp, [rax + 1]
mov dword [rsi + 0x28], ebp
mov eax, eax
mov byte [rdx + rax], cl
mov al, byte [rdi + 0x4d]
mov rcx, qword [rsi + 0x10]
mov edx, dword [rsi + 0x28]
lea ebp, [rdx + 1]
mov dword [rsi + 0x28], ebp
mov byte [rcx + rdx], al
xor ecx, ecx
xor edx, edx
xor r8d, r8d
call fcn.140003cd0
mov dword [rdi + 0x4c], eax
mov dword [rsi + 8], 0x71
mov r14, qword [rdi + 0x28]
mov rcx, r14
call fcn.1400077a0
mov ebp, dword [r14 + 0x28]
mov eax, dword [rdi + 0x18]
cmp ebp, eax
cmova ebp, eax
test ebp, ebp
je 0x1400058fe
mov rcx, qword [rdi + 0x10]
mov rdx, qword [r14 + 0x20]
mov r15d, ebp
mov r8, r15
call sub.VCRUNTIME140.dll_memcpy
add qword [rdi + 0x10], r15
add qword [r14 + 0x20], r15
add dword [rdi + 0x1c], ebp
sub dword [rdi + 0x18], ebp
sub dword [r14 + 0x28], ebp
jne 0x1400058fe
mov rax, qword [r14 + 0x10]
mov qword [r14 + 0x20], rax
cmp dword [rsi + 0x28], 0
jne 0x140005759
jmp case.0x140004d28.70
mov r8d, dword [rsi + 0x28]
mov rdx, qword [rsi + 0x10]
mov ecx, dword [rdi + 0x4c]
call fcn.140003cd0
mov dword [rdi + 0x4c], eax
jmp 0x140005380
sub r14d, r15d
add r15, qword [rsi + 0x10]
mov ecx, dword [rdi + 0x4c]
mov rdx, r15
mov r8, r14
call fcn.140003cd0
mov dword [rdi + 0x4c], eax
jmp 0x1400054d6
mov ecx, eax
shr ecx, 0x10
shr eax, 0x18
mov rdx, qword [rsi + 0x10]
mov ebp, dword [rsi + 0x28]
lea ebx, [rbp + 1]
mov dword [rsi + 0x28], ebx
mov byte [rdx + rbp], al
mov rax, qword [rsi + 0x10]
mov edx, dword [rsi + 0x28]
lea ebp, [rdx + 1]
mov dword [rsi + 0x28], ebp
mov byte [rax + rdx], cl
mov eax, dword [rdi + 0x4c]
mov rcx, qword [rsi + 0x10]
mov edx, dword [rsi + 0x28]
lea ebp, [rdx + 1]
mov dword [rsi + 0x28], ebp
mov byte [rcx + rdx], ah
mov rcx, qword [rsi + 0x10]
mov edx, dword [rsi + 0x28]
lea ebp, [rdx + 1]
mov dword [rsi + 0x28], ebp
mov byte [rcx + rdx], al
mov rbx, qword [rdi + 0x28]
mov rcx, rbx
call fcn.1400077a0
mov ebp, dword [rbx + 0x28]
mov eax, dword [rdi + 0x18]
cmp ebp, eax
cmova ebp, eax
test ebp, ebp
je 0x1400059d6
mov rcx, qword [rdi + 0x10]
mov rdx, qword [rbx + 0x20]
mov r14d, ebp
mov r8, r14
call sub.VCRUNTIME140.dll_memcpy
add qword [rdi + 0x10], r14
add qword [rbx + 0x20], r14
add dword [rdi + 0x1c], ebp
sub dword [rdi + 0x18], ebp
sub dword [rbx + 0x28], ebp
jne 0x1400059d6
mov rax, qword [rbx + 0x10]
mov qword [rbx + 0x20], rax
mov eax, dword [rsi + 0x2c]
test eax, eax
jle 0x1400059e2
neg eax
mov dword [rsi + 0x2c], eax
xor eax, eax
cmp dword [rsi + 0x28], 0
sete al
jmp 0x140004c69
mov edx, r9d
add rdx, qword [rsi + 0x10]
mov ecx, dword [rdi + 0x4c]
call fcn.140003cd0
mov dword [rdi + 0x4c], eax
jmp 0x1400056e0
mov edx, r9d
add rdx, qword [rsi + 0x10]
mov ecx, dword [rdi + 0x4c]
call fcn.140003cd0
mov dword [rdi + 0x4c], eax
jmp 0x1400055db
mov dword [rsi + 0x170c], 0
cmp ebx, 4
jne 0x140005ad2
mov edx, dword [rsi + 0x84]
mov r8d, dword [rsi + 0x94]
sub r8d, edx
test edx, edx
js 0x140005c41
add rdx, qword [rsi + 0x50]
mov rcx, rsi
mov r9d, 1
call fcn.140007970
mov eax, dword [rsi + 0x94]
mov dword [rsi + 0x84], eax
mov r12, qword [rsi]
mov r14, qword [r12 + 0x28]
mov rcx, r14
call fcn.1400077a0
mov ebp, dword [r14 + 0x28]
mov eax, dword [r12 + 0x18]
cmp ebp, eax
cmova ebp, eax
test ebp, ebp
je 0x140005abe
mov rcx, qword [r12 + 0x10]
mov rdx, qword [r14 + 0x20]
mov r15d, ebp
mov r8, r15
call sub.VCRUNTIME140.dll_memcpy
add qword [r12 + 0x10], r15
add qword [r14 + 0x20], r15
add dword [r12 + 0x1c], ebp
sub dword [r12 + 0x18], ebp
sub dword [r14 + 0x28], ebp
jne 0x140005abe
mov rax, qword [r14 + 0x10]
mov qword [r14 + 0x20], rax
mov rax, qword [rsi]
cmp dword [rax + 0x18], 1
mov eax, 3
sbb eax, 0
jmp 0x140004d70
cmp dword [rsi + 0x16f4], 0
je 0x140005b76
mov edx, dword [rsi + 0x84]
mov r8d, dword [rsi + 0x94]
sub r8d, edx
test edx, edx
js 0x140005c48
add rdx, qword [rsi + 0x50]
mov rcx, rsi
xor r9d, r9d
call fcn.140007970
mov eax, dword [rsi + 0x94]
mov dword [rsi + 0x84], eax
mov r12, qword [rsi]
mov r14, qword [r12 + 0x28]
mov rcx, r14
call fcn.1400077a0
mov ebp, dword [r14 + 0x28]
mov eax, dword [r12 + 0x18]
cmp ebp, eax
cmova ebp, eax
test ebp, ebp
je 0x140005b69
mov rcx, qword [r12 + 0x10]
mov rdx, qword [r14 + 0x20]
mov r15d, ebp
mov r8, r15
call sub.VCRUNTIME140.dll_memcpy
add qword [r12 + 0x10], r15
add qword [r14 + 0x20], r15
add dword [r12 + 0x1c], ebp
sub dword [r12 + 0x18], ebp
sub dword [r14 + 0x28], ebp
jne 0x140005b69
mov rax, qword [r14 + 0x10]
mov qword [r14 + 0x20], rax
mov rax, qword [rsi]
cmp dword [rax + 0x18], 0
je 0x140004d81
cmp ebx, 5
je 0x140005be6
mov rcx, rsi
cmp ebx, 1
je 0x140005c4f
xor edx, edx
xor r8d, r8d
xor r9d, r9d
call fcn.140007650
cmp ebx, 3
jne 0x140005be6
mov rax, qword [rsi + 0x68]
mov ecx, dword [rsi + 0x74]
add ecx, 0xffffffff
mov word [rax + rcx*2], 0
mov rcx, qword [rsi + 0x68]
mov r8d, dword [rsi + 0x74]
add r8d, 0xffffffff
add r8, r8
xor edx, edx
call sub.VCRUNTIME140.dll_memset
cmp dword [rsi + 0x9c], 0
jne 0x140005be6
mov dword [rsi + 0x94], 0
mov dword [rsi + 0x84], 0
mov dword [rsi + 0x170c], 0
mov r14, qword [rdi + 0x28]
mov rcx, r14
call fcn.1400077a0
mov ebp, dword [r14 + 0x28]
mov eax, dword [rdi + 0x18]
cmp ebp, eax
cmova ebp, eax
test ebp, ebp
je 0x140005c34
mov rcx, qword [rdi + 0x10]
mov rdx, qword [r14 + 0x20]
mov r15d, ebp
mov r8, r15
call sub.VCRUNTIME140.dll_memcpy
add qword [rdi + 0x10], r15
add qword [r14 + 0x20], r15
add dword [rdi + 0x1c], ebp
sub dword [rdi + 0x18], ebp
sub dword [r14 + 0x28], ebp
jne 0x140005c31
mov rax, qword [r14 + 0x10]
mov qword [r14 + 0x20], rax
mov eax, dword [rdi + 0x18]
test eax, eax
jne 0x140004dca
jmp 0x140005759
xor edx, edx
jmp 0x140005a4d
xor edx, edx
jmp 0x140005afb
call fcn.140007830
jmp 0x140005be6
mov rax, qword [rsi]
cmp dword [rax + 0x18], 0
je 0x140004d81
mov r9d, dword [rsi + 0x9c]
cmp r9d, 0x103
jae 0x140005cb8
mov rcx, rsi
call fcn.140004450
mov r9d, dword [rsi + 0x9c]
test ebx, ebx
jne 0x140005c93
cmp r9d, 0x103
jb 0x140004d81
test r9d, r9d
je 0x140005a1e
mov dword [rsi + 0x88], 0
cmp r9d, 2
ja 0x140005cc2
mov r10d, dword [rsi + 0x94]
jmp 0x140005d67
mov dword [rsi + 0x88], 0
mov r10d, dword [rsi + 0x94]
test r10, r10
je 0x140005d64
mov rdx, qword [rsi + 0x50]
mov al, byte [rdx + r10 - 1]
cmp al, byte [rdx + r10]
jne 0x140005d67
add rdx, r10
cmp al, byte [rdx + 1]
jne 0x140005d67
cmp al, byte [rdx + 2]
jne 0x140005d67
lea r8, [rdx + 0x102]
xor ecx, ecx
cmp al, byte [rdx + rcx + 3]
jne 0x140005e61
cmp al, byte [rdx + rcx + 4]
jne 0x140005e6b
cmp al, byte [rdx + rcx + 5]
jne 0x140005f1a
cmp al, byte [rdx + rcx + 6]
jne 0x140005f27
cmp al, byte [rdx + rcx + 7]
jne 0x140005f34
cmp al, byte [rdx + rcx + 8]
jne 0x140005f41
cmp al, byte [rdx + rcx + 9]
jne 0x140005f4e
lea r11, [rcx + 0xa]
lea rbp, [rcx + 8]
cmp r11, 0x101
ja 0x140005f5b
cmp al, byte [rdx + rcx + 0xa]
mov rcx, rbp
je 0x140005cfb
jmp 0x140005f5b
xor r10d, r10d
mov rax, qword [rsi + 0x50]
mov ecx, r10d
movzx eax, byte [rax + rcx]
mov rcx, qword [rsi + 0x16f8]
mov edx, dword [rsi + 0x16f4]
mov word [rcx + rdx*2], 0
mov rcx, qword [rsi + 0x16e8]
mov edx, dword [rsi + 0x16f4]
lea ebp, [rdx + 1]
mov dword [rsi + 0x16f4], ebp
mov byte [rcx + rdx], al
add word [rsi + rax*4 + 0xbc], 1
mov eax, dword [rsi + 0x16f4]
mov ecx, dword [rsi + 0x16f0]
add ecx, 0xffffffff
add dword [rsi + 0x9c], 0xffffffff
mov r8d, dword [rsi + 0x94]
add r8d, 1
mov dword [rsi + 0x94], r8d
cmp eax, ecx
jne 0x140005c63
mov edx, dword [rsi + 0x84]
sub r8d, edx
test edx, edx
js 0x140005e5d
add rdx, qword [rsi + 0x50]
mov rcx, rsi
xor r9d, r9d
call fcn.140007970
mov eax, dword [rsi + 0x94]
mov dword [rsi + 0x84], eax
mov r13, qword [rsi]
mov r14, qword [r13 + 0x28]
mov rcx, r14
call fcn.1400077a0
mov ebp, dword [r14 + 0x28]
mov eax, dword [r13 + 0x18]
cmp ebp, eax
cmova ebp, eax
test ebp, ebp
je 0x140005c56
mov rcx, qword [r13 + 0x10]
mov rdx, qword [r14 + 0x20]
mov r15d, ebp
mov r8, r15
call sub.VCRUNTIME140.dll_memcpy
add qword [r13 + 0x10], r15
add qword [r14 + 0x20], r15
add dword [r13 + 0x1c], ebp
sub dword [r13 + 0x18], ebp
sub dword [r14 + 0x28], ebp
jne 0x140005c56
mov rax, qword [r14 + 0x10]
mov qword [r14 + 0x20], rax
jmp 0x140005c56
xor edx, edx
jmp 0x140005de8
lea rax, [rdx + rcx]
add rax, 3
jmp 0x140005e73
lea rax, [rdx + rcx]
add rax, 4
sub eax, r8d
add eax, 0x102
cmp eax, r9d
cmova eax, r9d
mov dword [rsi + 0x88], eax
cmp eax, 3
jb 0x140005d67
add al, 0xfd
mov rcx, qword [rsi + 0x16f8]
mov edx, dword [rsi + 0x16f4]
mov word [rcx + rdx*2], 1
mov rcx, qword [rsi + 0x16e8]
mov edx, dword [rsi + 0x16f4]
lea ebp, [rdx + 1]
mov dword [rsi + 0x16f4], ebp
mov byte [rcx + rdx], al
movzx eax, al
movzx eax, byte [rax + r12]
add word [rsi + rax*4 + 0x4c0], 1
add word [rsi + 0x9b0], 1
mov eax, dword [rsi + 0x16f4]
mov ecx, dword [rsi + 0x16f0]
mov r8d, dword [rsi + 0x88]
sub dword [rsi + 0x9c], r8d
add r8d, dword [rsi + 0x94]
add ecx, 0xffffffff
mov dword [rsi + 0x94], r8d
mov dword [rsi + 0x88], 0
cmp eax, ecx
jne 0x140005c63
jmp 0x140005dd7
lea rax, [rdx + rcx]
add rax, 5
jmp 0x140005e73
lea rax, [rdx + rcx]
add rax, 6
jmp 0x140005e73
lea rax, [rdx + rcx]
add rax, 7
jmp 0x140005e73
lea rax, [rdx + rcx]
add rax, 8
jmp 0x140005e73
lea rax, [rdx + rcx]
add rax, 9
jmp 0x140005e73
lea rax, [rdx + rbp]
add rax, 2
jmp 0x140005e73