Function at 0x14005b860
Capabilities:
Compute adler32 checksum

Disassembly:
mov qword [rsp + 0x10], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov eax, 0x20090
call fcn.1400781d0
sub rsp, rax
mov rax, qword [0x140092040]
xor rax, rsp
mov qword [rsp + 0x20080], rax
xor r14d, r14d
mov dword [rsp + 0x50], edx
mov ebp, edx
mov qword [rsp + 0x40], rcx
mov rsi, rcx
mov qword [rsp + 0x70], r8
mov ebx, r14d
xor ecx, ecx
lea edx, [r14 + 0xa]
mov qword [rsp + 0x28], rbx
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_realloc]
lea r13d, [r14 + 2]
test rax, rax
je 0x14005b8ce
lea rbx, [rax + 8]
mov qword [rax], r13
mov qword [rsp + 0x28], rbx
movsxd rax, dword [rbx - 4]
lea rcx, [rbx - 8]
mov r8, 0xffffffffffffffff
mov byte [rax + rbx], 0x78
inc dword [rbx - 4]
mov eax, dword [rbx - 4]
mov edx, dword [rcx]
inc eax
cmp eax, edx
jl 0x14005b920
lea eax, [rdx + rdx]
movsxd rdx, eax
lea edi, [rax + 1]
inc rdx
add rdx, 8
cmovb rdx, r8
test rbx, rbx
cmove rcx, r14
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_realloc]
test rax, rax
je 0x14005b920
lea rbx, [rax + 8]
mov dword [rax], edi
mov qword [rsp + 0x28], rbx
movsxd rax, dword [rbx - 4]
lea rcx, [rsp + 0x80]
mov edi, 3
xor edx, edx
mov r8d, 0x20000
mov dword [rsp + 0x38], edi
mov r15d, edi
mov dword [rsp + 0x20], edi
mov byte [rax + rbx], 0x5e
inc dword [rbx - 4]
call sub.VCRUNTIME140.dll_memset
xor r9d, r9d
lea eax, [rbp - 3]
mov dword [rsp + 0x34], r9d
mov r10d, r9d
test eax, eax
jle 0x14005c48e
nop word [rax + rax]
mov rdx, qword [rsp + 0x40]
lea rbp, [rsp + 0x80]
movsxd r13, r10d
movzx eax, byte [rdx + r13 + 1]
lea rsi, [rdx + r13]
movzx ecx, byte [rsi + 2]
shl eax, 8
shl ecx, 0x10
add ecx, eax
mov qword [rsp + 0x58], r13
movzx eax, byte [rsi]
add ecx, eax
mov qword [rsp + 0x48], r9
lea eax, [rcx*8]
xor ecx, eax
mov eax, ecx
shr eax, 5
add ecx, eax
mov eax, ecx
shl eax, 4
xor ecx, eax
mov eax, ecx
shr eax, 0x11
add ecx, eax
mov eax, ecx
shl eax, 0x19
xor ecx, eax
mov eax, ecx
shr eax, 6
add eax, ecx
mov ecx, 3
and eax, 0x3fff
mov dword [rsp + 0x30], ecx
mov r14, qword [rbp + rax*8]
lea rbp, [rbp + rax*8]
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x60], rbp
test r14, r14
je 0x14005b9fe
mov eax, dword [r14 - 4]
jmp 0x14005ba01
mov eax, r9d
movsxd r12, eax
mov r11, r9
test eax, eax
jle 0x14005bab8
mov r15, qword [rsp + 0x58]
lea eax, [r10 - 0x8000]
mov ebx, dword [rsp + 0x50]
xor edi, edi
movsxd r13, eax
nop dword [rax]
nop dword [rax + rax]
mov rbp, qword [r14 + r11*8]
mov r9, rbp
sub r9, rdx
cmp r9, r13
jle 0x14005ba95
mov eax, ebx
mov r8d, edi
sub eax, r10d
mov rdx, rdi
test eax, eax
jle 0x14005ba7f
movsxd r10, eax
sub r9, r15
cmp rdx, 0x102
jge 0x14005ba76
movzx eax, byte [rsi + rdx]
lea rcx, [rsi + rdx]
cmp byte [r9 + rcx], al
jne 0x14005ba76
inc r8d
inc rdx
cmp rdx, r10
jl 0x14005ba54
mov ecx, dword [rsp + 0x30]
mov r10d, dword [rsp + 0x34]
mov rdx, qword [rsp + 0x40]
cmp r8d, ecx
jl 0x14005ba95
mov ecx, r8d
mov qword [rsp + 0x48], rbp
mov dword [rsp + 0x30], ecx
inc r11
cmp r11, r12
jl 0x14005ba30
mov rbx, qword [rsp + 0x28]
xor r9d, r9d
mov edi, dword [rsp + 0x38]
mov r15d, dword [rsp + 0x20]
mov r13, qword [rsp + 0x58]
mov rbp, qword [rsp + 0x60]
test r14, r14
je 0x14005bafc
mov eax, dword [r14 - 4]
cmp eax, 0x10
jne 0x14005bae3
lea rdx, [r14 + 0x40]
mov rcx, r14
lea r8d, [rax + 0x30]
call sub.VCRUNTIME140.dll_memmove
mov eax, 8
mov dword [r14 - 4], 8
inc eax
cmp eax, dword [r14 - 8]
jl 0x14005bb3d
mov eax, dword [r14 - 8]
lea rcx, [r14 - 8]
lea esi, [rax*2 + 1]
jmp 0x14005bb04
mov esi, 2
mov rcx, r9
lea eax, [rsi*8]
movsxd rdx, eax
mov rax, 0xffffffffffffffff
add rdx, 8
cmovb rdx, rax
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_realloc]
test rax, rax
je 0x14005bb3d
test r14, r14
jne 0x14005bb32
xor ecx, ecx
mov dword [rax + 4], ecx
add rax, 8
mov qword [rbp], rax
mov dword [rax - 8], esi
mov eax, dword [rsp + 0x68]
movsxd r10, dword [rsp + 0x34]
mov r8, qword [rsp + 0x40]
mov r12, qword [rsp + 0x48]
mov rdx, qword [rsp + rax*8 + 0x80]
lea rcx, [r8 + r10]
movsxd rax, dword [rdx - 4]
mov qword [rdx + rax*8], rcx
inc dword [rdx - 4]
test r12, r12
je 0x14005c2a8
movzx edx, byte [r10 + r8 + 3]
movzx eax, byte [r10 + r8 + 2]
shl eax, 8
shl edx, 0x10
add edx, eax
movzx eax, byte [r10 + r8 + 1]
add edx, eax
lea eax, [rdx*8]
xor edx, eax
mov eax, edx
shr eax, 5
add edx, eax
mov eax, edx
shl eax, 4
xor edx, eax
mov eax, edx
shr eax, 0x11
add edx, eax
mov eax, edx
shl eax, 0x19
xor edx, eax
mov eax, edx
shr eax, 6
add eax, edx
xor edx, edx
and eax, 0x3fff
mov r14, qword [rsp + rax*8 + 0x80]
test r14, r14
je 0x14005bbd2
mov eax, dword [r14 - 4]
jmp 0x14005bbd4
mov eax, edx
movsxd rsi, eax
mov r11, rdx
test eax, eax
jle 0x14005bc5e
lea eax, [r10 - 0x7fff]
movsxd rbp, eax
nop dword [rax]
mov r9, qword [r14 + r11*8]
mov rax, r9
sub rax, r8
cmp rax, rbp
jle 0x14005bc56
mov eax, dword [rsp + 0x50]
mov r8d, edx
sub eax, r10d
dec eax
test eax, eax
jle 0x14005bc44
mov r12, qword [rsp + 0x40]
movsxd r10, eax
cmp rdx, 0x102
jge 0x14005bc3a
lea rax, [r12 + r13]
movzx ecx, byte [rax + rdx + 1]
cmp byte [r9 + rdx], cl
jne 0x14005bc3a
inc r8d
inc rdx
cmp rdx, r10
jl 0x14005bc17
mov r12, qword [rsp + 0x48]
mov r10d, dword [rsp + 0x34]
cmp r8d, dword [rsp + 0x30]
mov r8, qword [rsp + 0x40]
jg 0x14005c2a8
xor edx, edx
inc r11
cmp r11, rsi
jl 0x14005bbf0
mov r13d, r8d
mov qword [rsp + 0x38], rdx
sub r13d, r12d
mov ecx, edx
mov r12d, dword [rsp + 0x30]
add r13d, r10d
mov dword [rsp + 0x48], r13d
mov r14, rdx
cmp r12d, 3
jle 0x14005bcaa
lea r8, [0x140000000]
nop dword [rax + rax]
movzx eax, word [r8 + r14*2 + 0x81104]
inc r14
dec eax
inc ecx
cmp r12d, eax
jg 0x14005bc90
mov qword [rsp + 0x38], r14
lea eax, [rcx + 0x101]
cmp eax, 0x8f
jg 0x14005bd7c
add ecx, 0x131
mov r8d, 8
nop word [rax + rax]
mov eax, ecx
add edx, edx
and eax, 1
sar ecx, 1
or edx, eax
sub r8d, 1
jne 0x14005bcd0
mov ecx, r15d
mov qword [rsp + 0x28], rbx
shl edx, cl
add r15d, 8
or edi, edx
cmp r15d, 8
jl 0x14005bfdb
mov ebp, r15d
lea r13d, [r8 + 2]
shr rbp, 3
mov eax, ebp
neg eax
xor r12d, r12d
lea r15d, [r15 + rax*8]
lea r14, [r12 - 1]
lea rcx, [rbx - 8]
test rbx, rbx
je 0x14005bd33
mov eax, dword [rbx - 4]
mov esi, dword [rcx]
inc eax
cmp eax, esi
jl 0x14005bd63
lea esi, [rsi*2 + 1]
jmp 0x14005bd36
mov esi, r13d
movsxd rdx, esi
add rdx, 8
cmovb rdx, r14
test rbx, rbx
cmove rcx, r12
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_realloc]
test rax, rax
je 0x14005bd63
test rbx, rbx
jne 0x14005bd5c
mov dword [rax + 4], r12d
lea rbx, [rax + 8]
mov dword [rbx - 8], esi
movsxd rax, dword [rbx - 4]
mov byte [rax + rbx], dil
inc dword [rbx - 4]
shr edi, 8
sub rbp, 1
jne 0x14005bd16
jmp 0x14005bfc7
cmp eax, 0xff
jg 0x14005be46
add ecx, 0x201
mov r8d, 9
mov eax, ecx
add edx, edx
and eax, 1
sar ecx, 1
or edx, eax
sub r8d, 1
jne 0x14005bd93
mov ecx, r15d
mov qword [rsp + 0x28], rbx
shl edx, cl
add r15d, 9
or edi, edx
cmp r15d, 8
jl 0x14005bfdb
mov ebp, r15d
lea r13d, [r8 + 2]
shr rbp, 3
mov eax, ebp
neg eax
xor r12d, r12d
lea r15d, [r15 + rax*8]
lea r14, [r12 - 1]
nop dword [rax]
lea rcx, [rbx - 8]
test rbx, rbx
je 0x14005bdfd
mov eax, dword [rbx - 4]
mov esi, dword [rcx]
inc eax
cmp eax, esi
jl 0x14005be2d
lea esi, [rsi*2 + 1]
jmp 0x14005be00
mov esi, r13d
movsxd rdx, esi
add rdx, 8
cmovb rdx, r14
test rbx, rbx
cmove rcx, r12
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_realloc]
test rax, rax
je 0x14005be2d
test rbx, rbx
jne 0x14005be26
mov dword [rax + 4], r12d
lea rbx, [rax + 8]
mov dword [rbx - 8], esi
movsxd rax, dword [rbx - 4]
mov byte [rax + rbx], dil
inc dword [rbx - 4]
shr edi, 8
sub rbp, 1
jne 0x14005bde0
jmp 0x14005bfc7
cmp eax, 0x117
jg 0x14005bf0c
inc ecx
mov r8d, 7
nop dword [rax]
mov eax, ecx
add edx, edx
and eax, 1
sar ecx, 1
or edx, eax
sub r8d, 1
jne 0x14005be60
mov ecx, r15d
mov qword [rsp + 0x28], rbx
shl edx, cl
add r15d, 7
or edi, edx
cmp r15d, 8
jl 0x14005bfdb
mov ebp, r15d
lea r13d, [r8 + 2]
shr rbp, 3
mov eax, ebp
neg eax
xor r12d, r12d
lea r15d, [r15 + rax*8]
lea r14, [r12 - 1]
lea rcx, [rbx - 8]
test rbx, rbx
je 0x14005bec3
mov eax, dword [rbx - 4]
mov esi, dword [rcx]
inc eax
cmp eax, esi
jl 0x14005bef3
lea esi, [rsi*2 + 1]
jmp 0x14005bec6
mov esi, r13d
movsxd rdx, esi
add rdx, 8
cmovb rdx, r14
test rbx, rbx
cmove rcx, r12
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_realloc]
test rax, rax
je 0x14005bef3
test rbx, rbx
jne 0x14005beec
mov dword [rax + 4], r12d
lea rbx, [rax + 8]
mov dword [rbx - 8], esi
movsxd rax, dword [rbx - 4]
mov byte [rax + rbx], dil
inc dword [rbx - 4]
shr edi, 8
sub rbp, 1
jne 0x14005bea6
jmp 0x14005bfc7
add ecx, 0xa9
mov r8d, 8
nop dword [rax + rax]
mov eax, ecx
add edx, edx
and eax, 1
sar ecx, 1
or edx, eax
sub r8d, 1
jne 0x14005bf20
mov ecx, r15d
mov qword [rsp + 0x28], rbx
shl edx, cl
add r15d, 8
or edi, edx
cmp r15d, 8
jl 0x14005bfdb
mov ebp, r15d
lea r13d, [r8 + 2]
shr rbp, 3
mov eax, ebp
neg eax
xor r12d, r12d
lea r15d, [r15 + rax*8]
lea r14, [r12 - 1]
lea rcx, [rbx - 8]
test rbx, rbx
je 0x14005bf83
mov eax, dword [rbx - 4]
mov esi, dword [rcx]
inc eax
cmp eax, esi
jl 0x14005bfb3
lea esi, [rsi*2 + 1]
jmp 0x14005bf86
mov esi, r13d
movsxd rdx, esi
add rdx, 8
cmovb rdx, r14
test rbx, rbx
cmove rcx, r12
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_realloc]
test rax, rax
je 0x14005bfb3
test rbx, rbx
jne 0x14005bfac
mov dword [rax + 4], r12d
lea rbx, [rax + 8]
mov dword [rbx - 8], esi
movsxd rax, dword [rbx - 4]
mov byte [rax + rbx], dil
inc dword [rbx - 4]
shr edi, 8
sub rbp, 1
jne 0x14005bf66
mov r12d, dword [rsp + 0x30]
mov r13d, dword [rsp + 0x48]
mov r14, qword [rsp + 0x38]
mov qword [rsp + 0x28], rbx
lea rax, [0x140000000]
movzx r8d, byte [r14 + rax + 0x810e0]
test r8b, r8b
je 0x14005c0b5
movzx eax, word [rax + r14*2 + 0x81100]
mov ecx, r15d
mov edx, r12d
mov qword [rsp + 0x28], rbx
sub edx, eax
add r15d, r8d
shl edx, cl
or edi, edx
cmp r15d, 8
jl 0x14005c0b5
mov ebp, r15d
mov r13d, 2
shr rbp, 3
mov eax, ebp
neg eax
xor r12d, r12d
lea r15d, [r15 + rax*8]
mov dword [rsp + 0x20], r15d
lea r15, [r12 - 1]
nop dword [rax]
lea rcx, [rbx - 8]
test rbx, rbx
je 0x14005c05d
mov eax, dword [rbx - 4]
mov esi, dword [rcx]
inc eax
cmp eax, esi
jl 0x14005c08d
lea esi, [rsi*2 + 1]
jmp 0x14005c060
mov esi, r13d
movsxd rdx, esi
add rdx, 8
cmovb rdx, r15
test rbx, rbx
cmove rcx, r12
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_realloc]
test rax, rax
je 0x14005c08d
test rbx, rbx
jne 0x14005c086
mov dword [rax + 4], r12d
lea rbx, [rax + 8]
mov dword [rbx - 8], esi
movsxd rax, dword [rbx - 4]
mov byte [rax + rbx], dil
inc dword [rbx - 4]
shr edi, 8
sub rbp, 1
jne 0x14005c040
mov r15d, dword [rsp + 0x20]
mov r13d, dword [rsp + 0x48]
mov r12d, dword [rsp + 0x30]
mov qword [rsp + 0x28], rbx
xor edx, edx
mov ecx, edx
mov r14d, edx
cmp r13d, 1
jle 0x14005c0e7
lea rdx, [0x140000000]
nop dword [rax]
movzx eax, word [rdx + r14*2 + 0x8109c]
inc r14
dec eax
inc ecx
cmp r13d, eax
jg 0x14005c0d0
xor edx, edx
mov r8d, 5
nop dword [rax]
mov eax, ecx
add edx, edx
and eax, 1
sar ecx, 1
or edx, eax
sub r8d, 1
jne 0x14005c0f0
mov ecx, r15d
add r15d, 5
shl edx, cl
or edi, edx
mov dword [rsp + 0x20], r15d
mov dword [rsp + 0x38], edi
cmp r15d, 8
jl 0x14005c1b9
mov ebp, r15d
shr rbp, 3
mov eax, ebp
neg eax
xor r12d, r12d
lea r15d, [r15 + rax*8]
mov dword [rsp + 0x20], r15d
lea r13, [r12 - 1]
lea r15d, [r8 + 2]
nop
lea rcx, [rbx - 8]
test rbx, rbx
je 0x14005c15d
mov eax, dword [rbx - 4]
mov esi, dword [rcx]
inc eax
cmp eax, esi
jl 0x14005c18d
lea esi, [rsi*2 + 1]
jmp 0x14005c160
mov esi, r15d
movsxd rdx, esi
add rdx, 8
cmovb rdx, r13
test rbx, rbx
cmove rcx, r12
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_realloc]
test rax, rax
je 0x14005c18d
test rbx, rbx
jne 0x14005c186
mov dword [rax + 4], r12d
lea rbx, [rax + 8]
mov dword [rbx - 8], esi
movsxd rax, dword [rbx - 4]
mov byte [rax + rbx], dil
inc dword [rbx - 4]
shr edi, 8
sub rbp, 1
jne 0x14005c140
mov r15d, dword [rsp + 0x20]
mov r13d, dword [rsp + 0x48]
mov r12d, dword [rsp + 0x30]
mov dword [rsp + 0x38], edi
mov qword [rsp + 0x28], rbx
lea rax, [0x140000000]
movzx edx, byte [r14 + rax + 0x81140]
test dl, dl
je 0x14005c29b
movzx eax, word [rax + r14*2 + 0x81098]
mov ecx, r15d
sub r13d, eax
mov qword [rsp + 0x28], rbx
shl r13d, cl
add r15d, edx
or edi, r13d
mov dword [rsp + 0x20], r15d
mov dword [rsp + 0x38], edi
cmp r15d, 8
jl 0x14005c29b
mov ebp, r15d
shr rbp, 3
mov eax, ebp
neg eax
xor r12d, r12d
lea r15d, [r15 + rax*8]
mov dword [rsp + 0x20], r15d
mov r15d, 2
nop
lea rcx, [rbx - 8]
test rbx, rbx
je 0x14005c23d
mov eax, dword [rbx - 4]
mov esi, dword [rcx]
inc eax
cmp eax, esi
jl 0x14005c274
lea esi, [rsi*2 + 1]
jmp 0x14005c240
mov esi, r15d
mov rax, 0xffffffffffffffff
movsxd rdx, esi
add rdx, 8
cmovb rdx, rax
test rbx, rbx
cmove rcx, r12
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_realloc]
test rax, rax
je 0x14005c274
test rbx, rbx
jne 0x14005c26d
mov dword [rax + 4], r12d
lea rbx, [rax + 8]
mov dword [rbx - 8], esi
movsxd rax, dword [rbx - 4]
mov byte [rax + rbx], dil
inc dword [rbx - 4]
shr edi, 8
sub rbp, 1
jne 0x14005c220
mov r15d, dword [rsp + 0x20]
mov r12d, dword [rsp + 0x30]
mov dword [rsp + 0x38], edi
mov qword [rsp + 0x28], rbx
mov r10d, dword [rsp + 0x34]
add r10d, r12d
jmp 0x14005c46a
movsxd rax, r10d
movzx ecx, byte [r8 + rax]
cmp cl, 0x8f
ja 0x14005c38d
add ecx, 0x30
xor r14d, r14d
mov edx, r14d
lea r8d, [r14 + 8]
nop word [rax + rax]
mov eax, ecx
add edx, edx
and eax, 1
sar ecx, 1
or edx, eax
sub r8d, 1
jne 0x14005c2d0
mov ecx, r15d
mov qword [rsp + 0x28], rbx
shl edx, cl
add r15d, 8
or edi, edx
mov dword [rsp + 0x20], r15d
mov dword [rsp + 0x38], edi
cmp r15d, 8
jl 0x14005c467
mov ebp, r15d
shr rbp, 3
mov eax, ebp
neg eax
lea r15d, [r15 + rax*8]
mov dword [rsp + 0x20], r15d
lea r15d, [r8 + 2]
nop dword [rax]
lea rcx, [rbx - 8]
test rbx, rbx
je 0x14005c33d
mov eax, dword [rbx - 4]
mov esi, dword [rcx]
inc eax
cmp eax, esi
jl 0x14005c374
lea esi, [rsi*2 + 1]
jmp 0x14005c340
mov esi, r15d
mov rax, 0xffffffffffffffff
movsxd rdx, esi
add rdx, 8
cmovb rdx, rax
test rbx, rbx
cmove rcx, r14
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_realloc]
test rax, rax
je 0x14005c374
test rbx, rbx
jne 0x14005c36d
mov dword [rax + 4], r14d
lea rbx, [rax + 8]
mov dword [rbx - 8], esi
movsxd rax, dword [rbx - 4]
mov byte [rax + rbx], dil
inc dword [rbx - 4]
shr edi, 8
sub rbp, 1
jne 0x14005c320
jmp 0x14005c454
add ecx, 0x100
xor r14d, r14d
mov edx, r14d
lea r8d, [r14 + 9]
nop dword [rax]
mov eax, ecx
add edx, edx
and eax, 1
sar ecx, 1
or edx, eax
sub r8d, 1
jne 0x14005c3a0
mov ecx, r15d
mov qword [rsp + 0x28], rbx
shl edx, cl
add r15d, 9
or edi, edx
mov dword [rsp + 0x20], r15d
mov dword [rsp + 0x38], edi
cmp r15d, 8
jl 0x14005c467
mov ebp, r15d
shr rbp, 3
mov eax, ebp
neg eax
lea r15d, [r15 + rax*8]
mov dword [rsp + 0x20], r15d
lea r15d, [r8 + 2]
nop dword [rax]
test rbx, rbx
je 0x14005c40d
mov eax, dword [rbx - 4]
lea rcx, [rbx - 8]
mov esi, dword [rcx]
inc eax
cmp eax, esi
jl 0x14005c440
lea esi, [rsi*2 + 1]
jmp 0x14005c413
mov esi, r15d
mov rcx, r14
mov rax, 0xffffffffffffffff
movsxd rdx, esi
add rdx, 8
cmovb rdx, rax
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_realloc]
test rax, rax
je 0x14005c440
test rbx, rbx
jne 0x14005c439
mov dword [rax + 4], r14d
lea rbx, [rax + 8]
mov dword [rbx - 8], esi
movsxd rax, dword [rbx - 4]
mov byte [rax + rbx], dil
inc dword [rbx - 4]
shr edi, 8
sub rbp, 1
jne 0x14005c3f0
mov r10d, dword [rsp + 0x34]
mov r15d, dword [rsp + 0x20]
mov qword [rsp + 0x28], rbx
mov dword [rsp + 0x38], edi
inc r10d
mov ebp, dword [rsp + 0x50]
mov r9d, 0
mov dword [rsp + 0x34], r10d
lea eax, [rbp - 3]
cmp r10d, eax
jl 0x14005b970
mov rsi, qword [rsp + 0x40]
lea r13d, [r9 + 2]
movsxd r14, r10d
movsxd r12, ebp
mov qword [rsp + 0x58], r14
mov qword [rsp + 0x28], r12
cmp r14, r12
jge 0x14005c64b
nop word [rax + rax]
movzx ecx, byte [rsi + r14]
mov edx, r9d
cmp cl, 0x8f
ja 0x14005c57e
add ecx, 0x30
mov r8d, 8
nop word [rax + rax]
mov eax, ecx
add edx, edx
and eax, 1
sar ecx, 1
or edx, eax
sub r8d, 1
jne 0x14005c4d0
mov ecx, r15d
add r15d, 8
shl edx, cl
or edi, edx
cmp r15d, 8
jl 0x14005c63a
mov ebp, r15d
shr rbp, 3
mov eax, ebp
neg eax
xor r12d, r12d
lea r15d, [r15 + rax*8]
lea r14, [r12 - 1]
nop dword [rax]
lea rcx, [rbx - 8]
test rbx, rbx
je 0x14005c52d
mov eax, dword [rbx - 4]
mov esi, dword [rcx]
inc eax
cmp eax, esi
jl 0x14005c55d
lea esi, [rsi*2 + 1]
jmp 0x14005c530
mov esi, r13d
movsxd rdx, esi
add rdx, 8
cmovb rdx, r14
test rbx, rbx
cmove rcx, r12
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_realloc]
test rax, rax
je 0x14005c55d
test rbx, rbx
jne 0x14005c556
mov dword [rax + 4], r12d
lea rbx, [rax + 8]
mov dword [rbx - 8], esi
movsxd rax, dword [rbx - 4]
mov byte [rax + rbx], dil
inc dword [rbx - 4]
shr edi, 8
sub rbp, 1
jne 0x14005c510
mov r14, qword [rsp + 0x58]
xor r9d, r9d
jmp 0x14005c630
add ecx, 0x100
mov r8d, 9
nop word [rax + rax]
mov eax, ecx
add edx, edx
and eax, 1
sar ecx, 1
or edx, eax
sub r8d, 1
jne 0x14005c590
mov ecx, r15d
add r15d, 9
shl edx, cl
or edi, edx
cmp r15d, 8
jl 0x14005c63a
mov ebp, r15d
mov r12, 0xffffffffffffffff
shr rbp, 3
mov eax, ebp
neg eax
lea r15d, [r15 + rax*8]
nop dword [rax]
test rbx, rbx
je 0x14005c5ed
mov eax, dword [rbx - 4]
lea rcx, [rbx - 8]
mov esi, dword [rcx]
inc eax
cmp eax, esi
jl 0x14005c61c
lea esi, [rsi*2 + 1]
jmp 0x14005c5f3
mov esi, r13d
mov rcx, r9
movsxd rdx, esi
add rdx, 8
cmovb rdx, r12
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_realloc]
xor r9d, r9d
test rax, rax
je 0x14005c61c
test rbx, rbx
jne 0x14005c615
mov dword [rax + 4], r9d
lea rbx, [rax + 8]
mov dword [rbx - 8], esi
movsxd rax, dword [rbx - 4]
mov byte [rax + rbx], dil
inc dword [rbx - 4]
shr edi, 8
sub rbp, 1
jne 0x14005c5d0
mov rsi, qword [rsp + 0x40]
mov r12, qword [rsp + 0x28]
inc r14
mov qword [rsp + 0x58], r14
cmp r14, r12
jl 0x14005c4b0
mov ecx, r9d
mov edx, r9d
mov r8d, 7
nop word [rax + rax]
mov eax, ecx
add edx, edx
and eax, 1
sar ecx, 1
or edx, eax
sub r8d, 1
jne 0x14005c660
mov ecx, r15d
add r15d, 7
shl edx, cl
or edi, edx
cmp r15d, 8
jl 0x14005c6fd
mov ebp, r15d
mov r12, 0xffffffffffffffff
shr rbp, 3
mov eax, ebp
neg eax
lea r15d, [r15 + rax*8]
test rbx, rbx
je 0x14005c6b5
mov eax, dword [rbx - 4]
lea rcx, [rbx - 8]
mov esi, dword [rcx]
inc eax
cmp eax, esi
jl 0x14005c6e4
lea esi, [rsi*2 + 1]
jmp 0x14005c6bb
mov esi, r13d
mov rcx, r9
movsxd rdx, esi
add rdx, 8
cmovb rdx, r12
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_realloc]
xor r9d, r9d
test rax, rax
je 0x14005c6e4
test rbx, rbx
jne 0x14005c6dd
mov dword [rax + 4], r9d
lea rbx, [rax + 8]
mov dword [rbx - 8], esi
movsxd rax, dword [rbx - 4]
mov byte [rax + rbx], dil
inc dword [rbx - 4]
shr edi, 8
sub rbp, 1
jne 0x14005c698
mov r12, qword [rsp + 0x28]
test r15d, r15d
je 0x14005c79f
mov r12, 0xffffffffffffffff
jmp 0x14005c713
xor r9d, r9d
inc r15d
cmp r15d, 8
jl 0x14005c791
mov ebp, r15d
shr rbp, 3
mov eax, ebp
neg eax
lea r15d, [r15 + rax*8]
jmp 0x14005c733
xor r9d, r9d
test rbx, rbx
je 0x14005c750
mov eax, dword [rbx - 4]
lea rcx, [rbx - 8]
mov esi, dword [rcx]
inc eax
cmp eax, esi
jl 0x14005c77d
lea esi, [rsi*2 + 1]
jmp 0x14005c756
mov esi, r13d
mov rcx, r9
movsxd rdx, esi
add rdx, 8
cmovb rdx, r12
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_realloc]
test rax, rax
je 0x14005c77d
test rbx, rbx
jne 0x14005c776
xor ecx, ecx
mov dword [rax + 4], ecx
lea rbx, [rax + 8]
mov dword [rbx - 8], esi
movsxd rax, dword [rbx - 4]
mov byte [rax + rbx], dil
inc dword [rbx - 4]
shr edi, 8
sub rbp, 1
jne 0x14005c730
test r15d, r15d
jne 0x14005c710
mov r12, qword [rsp + 0x28]
lea rdi, [rsp + 0x80]
mov esi, 0x4000
nop dword [rax]
mov rcx, qword [rdi]
test rcx, rcx
je 0x14005c7c2
add rcx, 0xfffffffffffffff8
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add rdi, 8
sub rsi, 1
jne 0x14005c7b0
xor r14d, r14d
lea edi, [rsi + 1]
mov esi, r14d
test r12, r12
jle 0x14005c852
mov ecx, dword [rsp + 0x50]
mov eax, 0x5e6ea9af
mov r10, qword [rsp + 0x40]
mov r9d, r14d
imul ecx
sar edx, 0xb
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x15b0
sub ecx, eax
movsxd r8, ecx
mov rcx, r14
test r8, r8
jle 0x14005c820
lea rdx, [r10 + r9]
nop
movzx eax, byte [rdx + rcx]
inc rcx
add edi, eax
add esi, edi
cmp rcx, r8
jl 0x14005c810
mov eax, 0x80078071
add r9, r8
mul edi
mov r8d, 0x15b0
shr edx, 0xf
imul eax, edx, 0xffff000f
add edi, eax
mov eax, 0x80078071
mul esi
shr edx, 0xf
imul eax, edx, 0xffff000f
add esi, eax
cmp r9, r12
jl 0x14005c802
test rbx, rbx
je 0x14005c871
mov eax, dword [rbx - 4]
mov ecx, dword [rbx - 8]
inc eax
cmp eax, ecx
jl 0x14005c8a4
lea r13d, [rcx*2 + 1]
lea rcx, [rbx - 8]
jmp 0x14005c874
mov rcx, r14
movsxd rdx, r13d
mov r15, 0xffffffffffffffff
add rdx, 8
cmovb rdx, r15
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_realloc]
test rax, rax
je 0x14005c8ab
test rbx, rbx
jne 0x14005c89a
mov dword [rax + 4], r14d
lea rbx, [rax + 8]
mov dword [rbx - 8], r13d
jmp 0x14005c8ab
mov r15, 0xffffffffffffffff
movsxd rax, dword [rbx - 4]
mov ecx, esi
shr ecx, 8
mov byte [rax + rbx], cl
lea rcx, [rbx - 8]
inc dword [rbx - 4]
mov eax, dword [rbx - 4]
mov edx, dword [rcx]
inc eax
cmp eax, edx
jl 0x14005c8f5
lea eax, [rdx + rdx]
movsxd rdx, eax
lea ebp, [rax + 1]
inc rdx
add rdx, 8
cmovb rdx, r15
test rbx, rbx
cmove rcx, r14
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_realloc]
test rax, rax
je 0x14005c8f5
lea rbx, [rax + 8]
mov dword [rax], ebp
movsxd rax, dword [rbx - 4]
lea rcx, [rbx - 8]
mov byte [rax + rbx], sil
inc dword [rbx - 4]
mov eax, dword [rbx - 4]
mov edx, dword [rcx]
inc eax
cmp eax, edx
jl 0x14005c93b
lea eax, [rdx + rdx]
movsxd rdx, eax
lea esi, [rax + 1]
inc rdx
add rdx, 8
cmovb rdx, r15
test rbx, rbx
cmove rcx, r14
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_realloc]
test rax, rax
je 0x14005c93b
lea rbx, [rax + 8]
mov dword [rax], esi
movsxd rax, dword [rbx - 4]
mov ecx, edi
shr ecx, 8
mov byte [rax + rbx], cl
lea rcx, [rbx - 8]
inc dword [rbx - 4]
mov eax, dword [rbx - 4]
mov edx, dword [rcx]
inc eax
cmp eax, edx
jl 0x14005c985
lea eax, [rdx + rdx]
movsxd rdx, eax
lea esi, [rax + 1]
inc rdx
add rdx, 8
cmovb rdx, r15
test rbx, rbx
cmove rcx, r14
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_realloc]
test rax, rax
je 0x14005c985
lea rbx, [rax + 8]
mov dword [rax], esi
movsxd rax, dword [rbx - 4]
mov rdx, rbx
mov byte [rax + rbx], dil
inc dword [rbx - 4]
movsxd rcx, dword [rbx - 4]
mov rax, qword [rsp + 0x70]
mov r8, rcx
mov dword [rax], ecx
lea rcx, [rbx - 8]
call sub.VCRUNTIME140.dll_memmove
lea rax, [rbx - 8]
mov rcx, qword [rsp + 0x20080]
xor rcx, rsp
call fcn.140077230
mov rbx, qword [rsp + 0x200d8]
add rsp, 0x20090
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret