Function at 0x18004ad00
Capabilities:
Hash data using djb2

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0xf]
sub rsp, 0xc0
mov r14d, dword [rbp + 0x77]
mov rbx, rdx
mov rsi, r9
mov rdx, rcx
lea eax, [r14 + 0x48]
mov dword [rbp - 0x1d], eax
cmp r14d, eax
jae case.0x18004ad83.56
mov rdi, qword [rbp + 0x7f]
lea r9, [0x180000000]
mov r13, qword [rbp + 0x6f]
mov r15, qword [rbp - 0x11]
mov r12d, dword [rbp + 0x77]
nop
lea eax, [r14 - 0x2d]
cmp eax, 0xf0
ja case.0x18004ad83.62
movzx eax, byte [r9 + rax + 0x4b410]
mov ecx, dword [r9 + rax*4 + 0x4b3c8]
add rcx, r9
jmp rcx
movzx ecx, byte [rsi]
sub ecx, 0xa
je 0x18004b02b
sub ecx, 1
je 0x18004b084
sub ecx, 4
je 0x18004af40
cmp ecx, 6
jne 0x18004b084
mov r14d, 0x24
cmp r14d, 0x168
ja 0x18004aede
je 0x18004ae69
mov eax, r14d
sub eax, 0x24
je 0x18004ae49
sub eax, 0x6c
je 0x18004ade4
cmp eax, 0x6c
jne 0x18004af2a
mov r8, qword [r15 + 8]
jmp 0x18004af08
movzx eax, byte [r15 + 4]
lea rcx, [rbp + 0x77]
add al, al
mov r9d, 0x68
or al, 0x60
mov r8, rdi
mov rdx, rbx
mov byte [rbp + 0x77], al
call fcn.180043f50
mov esi, 0x17
nop word [rax + rax]
mov eax, esi
sub eax, 0x14
je 0x18004ae37
sub eax, 1
je 0x18004ae32
cmp eax, 2
jne 0x18004ae3d
xor r9d, r9d
mov r8b, 1
movzx edx, al
mov rcx, rdi
call qword [rbx + reloc.SHELL32.dll_ILFindLastID]
jmp 0x18004ae3d
mov qword [rdi], rbx
jmp 0x18004ae3d
mov rax, qword [rdi]
mov qword [rbx], rax
inc esi
cmp esi, 0x1a
jb 0x18004ae10
jmp 0x18004af2a
mov r15, qword [rbx + 8]
lea rcx, [0x18005c980]
mov r9, rdi
mov r8, rbx
mov edx, 0xeb
call fcn.18002d9c0
jmp 0x18004af2a
mov r9, rdi
lea rcx, [0x18005c980]
mov r8, rbx
mov edx, 0xeb
call fcn.18002d9c0
movzx eax, byte [r15 + 4]
lea rcx, [rbp + 0x77]
add al, al
mov r9d, 0x68
inc al
mov r8, rdi
or al, 0x60
mov rdx, rbx
mov byte [rbp + 0x77], al
call fcn.180043f50
mov esi, 0x17
mov eax, esi
sub eax, 0x14
je 0x18004aecf
sub eax, 1
je 0x18004aeca
cmp eax, 2
jne 0x18004aed5
xor r9d, r9d
mov r8b, 1
movzx edx, al
mov rcx, rdi
call qword [rbx + reloc.SHELL32.dll_ILFindLastID]
jmp 0x18004aed5
mov qword [rdi], rbx
jmp 0x18004aed5
mov rax, qword [rdi]
mov qword [rbx], rax
inc esi
cmp esi, 0x1a
jb 0x18004aea8
jmp 0x18004af2a
mov eax, r14d
sub eax, 0x1d4
je 0x18004aefd
cmp eax, 0x6c
jne 0x18004af2a
xor r9d, r9d
xor r8d, r8d
mov dl, 3
mov rcx, rdi
call qword [rbx + reloc.SHELL32.dll_ILFindLastID]
jmp 0x18004af2a
mov r8, qword [r15 + 8]
add r8, 0xa0
mov r9, rdi
mov qword [rsp + 0x20], rbx
mov edx, 0x36
mov byte [rbp + 0x77], 0xa0
lea rcx, [rbp + 0x77]
call fcn.1800088e0
test al, al
je 0x18004b3ac
add r14d, 0x6c
cmp r14d, 0x2ac
jb 0x18004adb2
jmp 0x18004b080
mov r14d, 0x3b
nop word [rax + rax]
mov eax, r14d
sub eax, 0x3b
je 0x18004b00e
sub eax, 1
je 0x18004af9b
cmp eax, 1
jne 0x18004b01c
xor r9d, r9d
xor r8d, r8d
mov dl, 3
mov rcx, rdi
call qword [rbx + reloc.SHELL32.dll_ILFindLastID]
mov byte [rbp - 0x49], 1
mov rax, qword [rbp - 0x49]
mov rbx, qword [rsp + 0x108]
add rsp, 0xc0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov esi, 0x17
mov eax, esi
sub eax, 0x14
je 0x18004afc7
sub eax, 1
je 0x18004afc2
cmp eax, 2
jne 0x18004afcd
xor r9d, r9d
xor r8d, r8d
movzx edx, al
mov rcx, rdi
call qword [rbx + reloc.SHELL32.dll_ILFindLastID]
jmp 0x18004afcd
mov qword [rdi], rbx
jmp 0x18004afcd
mov rax, qword [rdi]
mov qword [rbx], rax
inc esi
cmp esi, 0x1a
jb 0x18004afa0
mov r9d, 0x68
mov byte [rbp + 0x77], 0x81
mov r8, rdi
lea rcx, [rbp + 0x77]
mov rdx, rbx
call fcn.180043f50
movzx eax, byte [r13]
lea rcx, [rbp + 0x77]
shr al, 1
mov r9d, 0x68
mov r8, rdi
mov byte [rbp + 0x77], al
mov rdx, rbx
call fcn.180043f50
jmp 0x18004b01c
xor r9d, r9d
mov r8b, 1
mov dl, 3
mov rcx, rdi
call qword [rbx + reloc.SHELL32.dll_ILFindLastID]
inc r14d
cmp r14d, 0x3e
jb 0x18004af50
jmp 0x18004b080
mov esi, 0xeb
mov eax, esi
sub eax, 0xeb
je 0x18004b040
cmp eax, 1
je 0x18004b080
jmp 0x18004b076
xor r9d, r9d
mov byte [rbp + 0x77], 2
lea rax, [rbp + 0x77]
mov rdx, rbx
mov rcx, rdi
mov qword [rsp + 0x20], rax
lea r8d, [r9 + 0x2b]
call fcn.180036b60
mov r9, rdi
lea rcx, [0x18005c958]
mov r8, rbx
mov edx, 0xeb
call fcn.18002d9c0
inc esi
cmp esi, 0xed
jb 0x18004b030
mov rsi, qword [rbp + 0x67]
movzx eax, byte [rsi]
lea r9, [rbp + 0x77]
mov r14d, 0xbf
mov byte [rbp + 0x77], al
mov r8, rbx
mov qword [rsp + 0x20], r13
mov rcx, rdi
lea edx, [r14 + 2]
call fcn.180023ff0
mov byte [rbp - 0x49], al
jmp 0x18004b256
xor r9d, r9d
mov qword [rbp - 9], 4
lea r8, [rbp - 9]
mov qword [rsp + 0x20], 0
xor ecx, ecx
lea edx, [r9 + 0x20]
call fcn.180049720
mov qword [rbp - 0x19], rax
jmp 0x18004b256
mov eax, dword [rdi]
mov rcx, qword [rbp - 0x19]
mov dword [rcx], eax
inc dword [0x18008e104]
jmp case.0x18004ad83.62
mov rax, qword [0x180079878]
mov dword [rbp - 0x35], 0xa
mov qword [rbp + 7], 0
mov rax, qword [rax + 0x48]
mov qword [rbp - 1], rax
jmp case.0x18004ad83.62
mov rcx, qword [rbp - 1]
mov edx, 8
mov dword [rbp - 0x3d], 0
mov dword [rbp - 0x41], 0xa
call fcn.1800591e0
jmp 0x18004b256
movzx eax, byte [rdx]
test al, 2
je 0x18004b19a
movzx eax, byte [r8]
lea rcx, [rbp - 0x51]
sub al, byte [rsi]
lea r8, [rbp + 0x77]
mov byte [rbp + 0x77], al
mov r9d, 0xaf
movzx eax, byte [r13]
mov rdx, rdi
sub al, byte [rbx]
mov byte [rbp - 0x51], al
call fcn.180010b80
mov rcx, qword [rbp + 0x5f]
lea r8, [rbp + 0x77]
mov r9d, 0xaf
mov rdx, rdi
movzx eax, byte [rcx]
lea rcx, [rbp - 0x51]
sub al, byte [rbx]
mov byte [rbp + 0x77], al
movzx eax, byte [r13]
sub al, byte [rsi]
mov byte [rbp - 0x51], al
call fcn.180010b80
mov rdx, qword [rbp + 0x4f]
mov r8, qword [rbp + 0x5f]
movzx eax, byte [rdx]
test al, 8
je 0x18004b1fa
movzx eax, byte [r8]
lea rcx, [rbp - 0x51]
add al, byte [rsi]
lea r8, [rbp + 0x77]
mov byte [rbp + 0x77], al
mov r9d, 0xaf
movzx eax, byte [rbx]
mov rdx, rdi
add al, byte [r13]
mov byte [rbp - 0x51], al
call fcn.180010b80
mov rcx, qword [rbp + 0x5f]
lea r8, [rbp + 0x77]
movzx eax, byte [rbx]
mov r9d, 0xaf
mov rdx, rdi
add al, byte [rcx]
lea rcx, [rbp - 0x51]
mov byte [rbp + 0x77], al
movzx eax, byte [rsi]
add al, byte [r13]
mov byte [rbp - 0x51], al
call fcn.180010b80
mov rdx, qword [rbp + 0x4f]
movzx eax, byte [rdx]
test al, 4
je 0x18004b25a
mov rax, qword [rbp + 0x5f]
lea r8, [rbp + 0x77]
mov r9d, 0xaf
lea rcx, [rbp - 0x51]
mov rdx, rdi
movzx eax, byte [rax]
add al, byte [rsi]
mov byte [rbp + 0x77], al
movzx eax, byte [r13]
sub al, byte [rbx]
mov byte [rbp - 0x51], al
call fcn.180010b80
mov rcx, qword [rbp + 0x5f]
movzx eax, byte [rbx]
add al, byte [rcx]
mov byte [rbp + 0x77], al
movzx eax, byte [r13]
sub al, byte [rsi]
mov r9d, 0xaf
mov byte [rbp - 0x51], al
lea r8, [rbp + 0x77]
mov rdx, rdi
lea rcx, [rbp - 0x51]
call fcn.180010b80
mov rdx, qword [rbp + 0x4f]
mov r8, qword [rbp + 0x5f]
lea r9, [0x180000000]
add r14d, 4
cmp r14d, dword [rbp - 0x1d]
jb 0x18004ad60
jmp case.0x18004ad83.56
mov dword [rbp - 0x39], 0
jmp case.0x18004ad83.62
mov qword [rbp - 0x11], 0
mov dword [rbp - 0x29], 0
jmp case.0x18004ad83.62
mov qword [0x180079878], 0
jmp case.0x18004ad83.62
movzx eax, byte [rdi]
mov r12d, 0x1505
mov rsi, rdi
test al, al
je 0x18004b3a3
movzx ecx, al
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_tolower]
imul r12d, r12d, 0x21
lea rsi, [rsi + 1]
add r12d, eax
movzx eax, byte [rsi]
test al, al
jne 0x18004b2b3
mov rsi, qword [rbp + 0x67]
jmp 0x18004b256
xor r8d, r8d
mov dword [rbp - 0x2d], 0
mov edx, 0x92
xor ecx, ecx
call fcn.180013ba0
mov dword [rbp - 0x31], 0xa
jmp 0x18004b256
test byte [rdx], 1
je case.0x18004ad83.62
movzx eax, byte [r8]
lea rcx, [rbp - 0x51]
sub al, byte [rsi]
lea r8, [rbp + 0x77]
mov byte [rbp + 0x77], al
mov r9d, 0xaf
movzx eax, byte [rbx]
mov rdx, rdi
add al, byte [r13]
mov byte [rbp - 0x51], al
call fcn.180010b80
mov rax, qword [rbp + 0x5f]
movzx eax, byte [rax]
sub al, byte [rbx]
mov byte [rbp + 0x77], al
movzx eax, byte [rsi]
add al, byte [r13]
jmp 0x18004b23d
mov eax, dword [rbp - 0x21]
mov r9d, dword [rbp - 0x31]
mov r8d, dword [rbp - 0x2d]
mov edx, dword [rbp - 0x29]
mov rcx, qword [rbp - 0x11]
mov dword [rsp + 0x50], eax
mov eax, dword [rbp - 0x25]
mov dword [rsp + 0x48], eax
mov eax, dword [rbp - 0x41]
mov dword [rsp + 0x40], eax
mov eax, dword [rbp - 0x3d]
mov dword [rsp + 0x38], eax
mov eax, dword [rbp - 0x39]
mov dword [rsp + 0x30], eax
mov rax, qword [rbp + 7]
mov qword [rsp + 0x28], rax
mov eax, dword [rbp - 0x35]
mov dword [rsp + 0x20], eax
call qword [sym.imp.GDI32.dll_GdiTransparentBlt]
jmp 0x18004b256
mov dword [rbp - 0x25], 0xa
mov dword [rbp - 0x21], 0
jmp case.0x18004ad83.62
mov rsi, qword [rbp + 0x67]
jmp case.0x18004ad83.62
mov byte [rbp - 0x49], 0
jmp case.0x18004ad83.56
mov dword [rbp - 0x49], r12d
jmp case.0x18004ad83.56
mov rax, qword [rbp - 0x19]
jmp 0x18004af80