Function at 0x14001b190
Capabilities:
Compute adler32 checksum

Disassembly:
push rbx
push rbp
push rsi
push rdi
sub rsp, 0x28
cmp byte [0x1400d70ac], 0
je 0x14001b270
lea rdi, [0x1400d70ac]
mov rbx, 0xffffffffffffffff
inc rbx
cmp byte [rdi + rbx], 0
jne 0x14001b1b4
cmp rbx, 0x100000
jb 0x14001b1df
mov r8d, 0x34d
lea rdx, [0x1401f5e40]
lea rcx, str.len___UPX_RSIZE_MAX_STR
call fcn.14009d2e8
mov r8d, 5
lea rdx, str.ERROR
mov rcx, rdi
call fcn.14009d8f0
test eax, eax
jne 0x14001b21f
cmp rbx, 5
je 0x14001b24a
cmp rbx, 6
je 0x14001b250
mov r8d, 0x53b
lea rdx, [0x1401e12f0]
lea rcx, str.revlen__5__revlen__6
call fcn.14009d2e8
jmp 0x14001b24a
cmp rbx, 0xc
je 0x14001b270
cmp rbx, 0xd
je 0x14001b250
mov r8d, 0x53c
lea rdx, [0x1401e12f0]
lea rcx, str.revlen__12__revlen__13
call fcn.14009d2e8
cmp rbx, 6
je 0x14001b250
cmp rbx, 0xd
jne 0x14001b270
cmp byte [rbx + rdi - 1], 0x2b
je 0x14001b270
mov r8d, 0x53d
lea rdx, [0x1401e12f0]
lea rcx, str.gitrev_revlen_1___
call fcn.14009d2e8
call fcn.14001d890
test al, al
jne 0x14001b292
mov r8d, 0x541
lea rdx, [0x1401e12f0]
lea rcx, str.TestBELE_LE16_::test__
call fcn.14009d2e8
call fcn.14001d590
test al, al
jne 0x14001b2b4
mov r8d, 0x542
lea rdx, [0x1401e12f0]
lea rcx, str.TestBELE_LE32_::test__
call fcn.14009d2e8
call fcn.14001d230
test al, al
jne 0x14001b2d6
mov r8d, 0x543
lea rdx, [0x1401e12f0]
lea rcx, str.TestBELE_LE64_::test__
call fcn.14009d2e8
mov ebp, 4
lea rdi, [0x1401e34cf]
mov ebx, 1
xor esi, esi
mov r11d, ebp
mov r9, rdi
mov ecx, ebx
mov r8d, esi
nop dword [rax]
nop dword [rax + rax]
mov edx, 0x15b0
cmp r11d, edx
cmovb edx, r11d
sub r11d, edx
cmp edx, 0x10
jl 0x14001b3dc
mov r10d, edx
shr r10, 4
mov eax, r10d
neg eax
shl eax, 4
add edx, eax
nop dword [rax]
movzx eax, byte [r9]
add ecx, eax
movzx eax, byte [r9 + 1]
add r8d, ecx
add ecx, eax
movzx eax, byte [r9 + 2]
add r8d, ecx
add ecx, eax
movzx eax, byte [r9 + 3]
add r8d, ecx
add ecx, eax
movzx eax, byte [r9 + 4]
add r8d, ecx
add ecx, eax
movzx eax, byte [r9 + 5]
add r8d, ecx
add ecx, eax
movzx eax, byte [r9 + 6]
add r8d, ecx
add ecx, eax
movzx eax, byte [r9 + 7]
add r8d, ecx
add ecx, eax
movzx eax, byte [r9 + 8]
add r8d, ecx
add ecx, eax
movzx eax, byte [r9 + 9]
add r8d, ecx
add ecx, eax
movzx eax, byte [r9 + 0xa]
add r8d, ecx
add ecx, eax
movzx eax, byte [r9 + 0xb]
add r8d, ecx
add ecx, eax
movzx eax, byte [r9 + 0xc]
add r8d, ecx
add ecx, eax
movzx eax, byte [r9 + 0xd]
add r8d, ecx
add ecx, eax
movzx eax, byte [r9 + 0xe]
add r8d, ecx
add ecx, eax
movzx eax, byte [r9 + 0xf]
add r8d, ecx
add r9, 0x10
add ecx, eax
add r8d, ecx
sub r10, rbx
jne 0x14001b330
test edx, edx
je 0x14001b3f2
movzx eax, byte [r9]
dec edx
add ecx, eax
inc r9
add r8d, ecx
test edx, edx
jg 0x14001b3e0
mov eax, 0x80078071
mul ecx
shr edx, 0xf
imul eax, edx, 0xffff000f
add ecx, eax
mov eax, 0x80078071
mul r8d
shr edx, 0xf
imul eax, edx, 0xffff000f
add r8d, eax
test r11d, r11d
jne 0x14001b300
shl r8d, 0x10
or r8d, ecx
cmp r8d, 0x9f003f7
je 0x14001b44a
mov r8d, 0x554
lea rdx, [0x1401e12f0]
lea rcx, str.upx_adler32_d__4___0x09f003f7
call fcn.14009d2e8
mov r11d, ebp
mov r9, rdi
mov ecx, esi
mov r8d, esi
nop word [rax + rax]
mov edx, 0x15b0
cmp r11d, edx
cmovb edx, r11d
sub r11d, edx
cmp edx, 0x10
jl 0x14001b53c
mov r10d, edx
shr r10, 4
mov eax, r10d
neg eax
shl eax, 4
add edx, eax
nop dword [rax]
movzx eax, byte [r9]
add ecx, eax
movzx eax, byte [r9 + 1]
add r8d, ecx
add ecx, eax
movzx eax, byte [r9 + 2]
add r8d, ecx
add ecx, eax
movzx eax, byte [r9 + 3]
add r8d, ecx
add ecx, eax
movzx eax, byte [r9 + 4]
add r8d, ecx
add ecx, eax
movzx eax, byte [r9 + 5]
add r8d, ecx
add ecx, eax
movzx eax, byte [r9 + 6]
add r8d, ecx
add ecx, eax
movzx eax, byte [r9 + 7]
add r8d, ecx
add ecx, eax
movzx eax, byte [r9 + 8]
add r8d, ecx
add ecx, eax
movzx eax, byte [r9 + 9]
add r8d, ecx
add ecx, eax
movzx eax, byte [r9 + 0xa]
add r8d, ecx
add ecx, eax
movzx eax, byte [r9 + 0xb]
add r8d, ecx
add ecx, eax
movzx eax, byte [r9 + 0xc]
add r8d, ecx
add ecx, eax
movzx eax, byte [r9 + 0xd]
add r8d, ecx
add ecx, eax
movzx eax, byte [r9 + 0xe]
add r8d, ecx
add ecx, eax
movzx eax, byte [r9 + 0xf]
add r8d, ecx
add r9, 0x10
add ecx, eax
add r8d, ecx
sub r10, rbx
jne 0x14001b490
test edx, edx
je 0x14001b552
movzx eax, byte [r9]
dec edx
add ecx, eax
inc r9
add r8d, ecx
test edx, edx
jg 0x14001b540
mov eax, 0x80078071
mul ecx
shr edx, 0xf
imul eax, edx, 0xffff000f
add ecx, eax
mov eax, 0x80078071
mul r8d
shr edx, 0xf
imul eax, edx, 0xffff000f
add r8d, eax
test r11d, r11d
jne 0x14001b460
shl r8d, 0x10
or r8d, ecx
cmp r8d, 0x9ec03f6
je 0x14001b5aa
mov r8d, 0x555
lea rdx, [0x1401e12f0]
lea rcx, str.upx_adler32_d__4__0___0x09ec03f6
call fcn.14009d2e8
mov r8, rdi
mov ecx, esi
nop
mov edx, 0x15b0
cmp ebp, edx
cmovb edx, ebp
sub ebp, edx
cmp edx, 0x10
jl 0x14001b67d
mov r9d, edx
shr r9, 4
mov eax, r9d
neg eax
shl eax, 4
add edx, eax
nop word [rax + rax]
movzx eax, byte [r8]
add ebx, eax
movzx eax, byte [r8 + 1]
add ecx, ebx
add ebx, eax
movzx eax, byte [r8 + 2]
add ecx, ebx
add ebx, eax
movzx eax, byte [r8 + 3]
add ecx, ebx
add ebx, eax
movzx eax, byte [r8 + 4]
add ecx, ebx
add ebx, eax
movzx eax, byte [r8 + 5]
add ecx, ebx
add ebx, eax
movzx eax, byte [r8 + 6]
add ecx, ebx
add ebx, eax
movzx eax, byte [r8 + 7]
add ecx, ebx
add ebx, eax
movzx eax, byte [r8 + 8]
add ecx, ebx
add ebx, eax
movzx eax, byte [r8 + 9]
add ecx, ebx
add ebx, eax
movzx eax, byte [r8 + 0xa]
add ecx, ebx
add ebx, eax
movzx eax, byte [r8 + 0xb]
add ecx, ebx
add ebx, eax
movzx eax, byte [r8 + 0xc]
add ecx, ebx
add ebx, eax
movzx eax, byte [r8 + 0xd]
add ecx, ebx
add ebx, eax
movzx eax, byte [r8 + 0xe]
add ecx, ebx
add ebx, eax
movzx eax, byte [r8 + 0xf]
add ecx, ebx
add r8, 0x10
add ebx, eax
add ecx, ebx
sub r9, 1
jne 0x14001b5e0
test edx, edx
je 0x14001b692
movzx eax, byte [r8]
dec edx
add ebx, eax
inc r8
add ecx, ebx
test edx, edx
jg 0x14001b681
mov eax, 0x80078071
mul ebx
shr edx, 0xf
imul eax, edx, 0xffff000f
add ebx, eax
mov eax, 0x80078071
mul ecx
shr edx, 0xf
imul eax, edx, 0xffff000f
add ecx, eax
test ebp, ebp
jne 0x14001b5b0
shl ecx, 0x10
or ecx, ebx
cmp ecx, 0x9f003f7
je 0x14001b6e4
mov r8d, 0x556
lea rdx, [0x1401e12f0]
lea rcx, str.upx_adler32_d__4__1___0x09f003f7
call fcn.14009d2e8
mov rax, qword [0x140209f30]
lea rcx, [0x140209f30]
mov rdx, rdi
call qword [rax + 0x18]
cmp eax, 0xfffe
je 0x14001b718
mov r8d, 0x559
lea rdx, [0x1401e12f0]
lea rcx, str.bele__get16_d___0xfffe
call fcn.14009d2e8
mov rax, qword [0x140209f30]
lea rcx, [0x140209f30]
mov rdx, rdi
call qword [rax + 0x20]
cmp eax, 0xfffefd
je 0x14001b74c
mov r8d, 0x55c
lea rdx, [0x1401e12f0]
lea rcx, str.bele__get24_d___0xfffefd
call fcn.14009d2e8
mov rax, qword [0x140209f30]
lea rcx, [0x140209f30]
mov rdx, rdi
call qword [rax + 0x28]
cmp eax, 0xfffefdfc
je 0x14001b780
mov r8d, 0x55f
lea rdx, [0x1401e12f0]
lea rcx, str.bele__get32_d___0xfffefdfc
call fcn.14009d2e8
movzx eax, word [0x1401e34cf]
mov ebx, 0xfeff
cmp ax, bx
je 0x14001b7aa
mov r8d, 0x562
lea rdx, [0x1401e12f0]
lea rcx, str.get_le16_d___0xfeff
call fcn.14009d2e8
mov rax, qword [0x140209f38]
lea rcx, [0x140209f38]
mov rdx, rdi
call qword [rax + 0x18]
cmp eax, ebx
je 0x14001b7db
mov r8d, 0x563
lea rdx, [0x1401e12f0]
lea rcx, str.bele__get16_d___0xfeff
call fcn.14009d2e8
movzx eax, word [0x1401e34cf]
mov ecx, eax
and eax, 0x8000
neg eax
or eax, ecx
cmp eax, 0xfffffeff
je 0x14001b80d
mov r8d, 0x564
lea rdx, [0x1401e12f0]
lea rcx, str.get_le16_signed_d____257
call fcn.14009d2e8
mov rax, qword [0x140209f38]
lea rcx, [0x140209f38]
mov rdx, rdi
call qword [rax + 0x20]
cmp eax, 0xfdfeff
je 0x14001b841
mov r8d, 0x566
lea rdx, [0x1401e12f0]
lea rcx, str.bele__get24_d___0xfdfeff
call fcn.14009d2e8
mov eax, dword [0x1401e34cf]
cmp eax, 0xfcfdfeff
je 0x14001b867
mov r8d, 0x568
lea rdx, [0x1401e12f0]
lea rcx, str.get_le32_d___0xfcfdfeff
call fcn.14009d2e8
mov rax, qword [0x140209f38]
lea rcx, [0x140209f38]
mov rdx, rdi
call qword [rax + 0x28]
cmp eax, 0xfcfdfeff
je 0x14001b89b
mov r8d, 0x569
lea rdx, [0x1401e12f0]
lea rcx, str.bele__get32_d___0xfcfdfeff
call fcn.14009d2e8
mov eax, dword [0x1401e34cf]
mov ecx, eax
and ecx, 0x80000000
neg ecx
or ecx, eax
cmp ecx, 0xfcfdfeff
je 0x14001b8ce
mov r8d, 0x56a
lea rdx, [0x1401e12f0]
lea rcx, str.get_le32_signed_d____50462977
call fcn.14009d2e8
mov rax, qword [0x1401e34cf]
movabs rdx, 0x8000000000000000
mov rcx, rax
and rcx, rdx
neg rcx
or rcx, rax
movabs rax, 0xf8f9fafbfcfdfeff
cmp rcx, rax
je 0x14001b913
mov r8d, 0x56b
lea rdx, [0x1401e12f0]
lea rcx, str.get_le64_signed_d___UPX_INT64_C__506097522914230529_
call fcn.14009d2e8
mov word [rsp + 0x50], bx
mov rcx, rdi
mov edx, esi
movzx eax, bx
cmp byte [rcx], 0xff
jne 0x14001b92a
cmp word [rcx], ax
je 0x14001b935
inc edx
inc rcx
test edx, edx
jle 0x14001b920
jmp 0x14001b939
test edx, edx
je 0x14001b952
mov r8d, 0x56c
lea rdx, [0x1401e12f0]
lea rcx, str.find_be16_d__2__0xfffe___0
call fcn.14009d2e8
mov word [rsp + 0x58], bx
mov rcx, rdi
movzx eax, word [rsp + 0x58]
mov edx, esi
cmp byte [rcx], al
jne 0x14001b96a
cmp word [rcx], ax
je 0x14001b975
inc edx
inc rcx
test edx, edx
jle 0x14001b961
jmp 0x14001b979
test edx, edx
je 0x14001b992
mov r8d, 0x56d
lea rdx, [0x1401e12f0]
lea rcx, str.find_le16_d__2__0xfeff___0
call fcn.14009d2e8
mov dword [rsp + 0x60], 0xfcfdfeff
mov rcx, rdi
mov eax, dword [rsp + 0x60]
mov edx, esi
cmp byte [rcx], 0xff
jne 0x14001b9ac
cmp dword [rcx], eax
je 0x14001b9b7
inc edx
inc rcx
test edx, edx
jle 0x14001b9a3
jmp 0x14001b9bb
test edx, edx
je 0x14001b9d4
mov r8d, 0x56e
lea rdx, [0x1401e12f0]
lea rcx, str.find_be32_d__4__0xfffefdfc___0
call fcn.14009d2e8
mov dword [rsp + 0x68], 0xfcfdfeff
mov eax, dword [rsp + 0x68]
cmp byte [rdi], al
jne 0x14001b9e8
cmp dword [rdi], eax
je 0x14001b9f3
inc esi
inc rdi
test esi, esi
jle 0x14001b9e0
jmp 0x14001b9f7
test esi, esi
je 0x14001ba10
mov r8d, 0x56f
lea rdx, [0x1401e12f0]
lea rcx, str.find_le32_d__4__0xfcfdfeff___0
call fcn.14009d2e8
add rsp, 0x28
pop rdi
pop rsi
pop rbp
pop rbx
ret