Function at 0x180003a40
Capabilities:
Hash data using djb2
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 0x18], rbx
push rdi
push r14
push r15
sub rsp, 0x20
cmp byte [0x180020da8], 0
mov r14, rdx
mov edi, ecx
jne 0x180003af6
mov ecx, 0x22d3b5ed
call fcn.1800032a0
mov qword [0x180020da0], rax
mov r8, rax
test rax, rax
je 0x180003ea0
movsxd rax, dword [rax + 0x3c]
cmp dword [rax + r8], 0x4550
jne 0x180003ea0
mov ecx, dword [rax + r8 + 0x88]
add rcx, r8
mov edx, dword [rcx + 0x18]
mov dword [0x180020d98], edx
mov r10d, dword [rcx + 0x20]
add r10, r8
mov qword [0x180020d88], r10
mov r9d, dword [rcx + 0x1c]
add r9, r8
mov qword [0x180020d80], r9
mov ecx, dword [rcx + 0x24]
add rcx, r8
mov qword [0x180020d90], rcx
test edx, edx
je 0x180003ea0
test r10, r10
je 0x180003ea0
test r9, r9
je 0x180003ea0
test rcx, rcx
je 0x180003ea0
mov byte [0x180020da8], 1
xor r9d, r9d
mov dword [r14 + 4], edi
mov ebx, dword [0x180020d98]
lea r15d, [r9 + 1]
test ebx, ebx
je 0x180003d48
mov r10, qword [0x180020d88]
mov r11, qword [0x180020d90]
mov qword [rsp + 0x40], rbp
mov rbp, qword [0x180020d80]
mov qword [rsp + 0x48], rsi
mov rsi, qword [0x180020da0]
nop word [rax + rax]
movzx eax, word [r11]
mov ecx, dword [r10]
add rcx, rsi
mov edx, dword [rbp + rax*4]
mov eax, 0x1505
add rdx, rsi
movsx r8d, byte [rcx]
test r8d, r8d
je 0x180003b73
nop
imul eax, eax, 0x21
lea rcx, [rcx + 1]
add eax, r8d
movsx r8d, byte [rcx]
test r8d, r8d
jne 0x180003b60
cmp eax, edi
je 0x180003b8c
inc r9d
add r11, 2
add r10, 4
cmp r9d, ebx
jb 0x180003b40
jmp 0x180003d3e
movzx eax, byte [rdx]
mov r10d, 0xff
cmp al, 0x4c
jne 0x180003bdb
cmp byte [rdx + 1], 0x8b
jne 0x180003c91
cmp byte [rdx + 2], 0xd1
jne 0x180003c91
cmp byte [rdx + 3], 0xb8
jne 0x180003c91
cmp byte [rdx + 6], 0
jne 0x180003c91
cmp byte [rdx + 7], 0
jne 0x180003c91
movzx ecx, byte [rdx + 5]
movzx eax, byte [rdx + 4]
shl ecx, 8
jmp 0x180003d39
cmp al, 0xe9
jne 0x180003c91
movzx ecx, r15w
nop word [rax + rax]
movzx r8d, cx
mov eax, r8d
shl eax, 5
cmp byte [rax + rdx], 0x4c
jne 0x180003c23
cmp byte [rax + rdx + 1], 0x8b
jne 0x180003c23
cmp byte [rax + rdx + 2], 0xd1
jne 0x180003c23
cmp byte [rax + rdx + 3], 0xb8
jne 0x180003c23
cmp byte [rax + rdx + 6], 0
jne 0x180003c23
cmp byte [rax + rdx + 7], 0
je 0x180003c68
mov eax, r8d
neg eax
shl eax, 5
movsxd r9, eax
cmp byte [r9 + rdx], 0x4c
jne 0x180003c5d
cmp byte [r9 + rdx + 1], 0x8b
jne 0x180003c5d
cmp byte [r9 + rdx + 2], 0xd1
jne 0x180003c5d
cmp byte [r9 + rdx + 3], 0xb8
jne 0x180003c5d
cmp byte [r9 + rdx + 6], 0
jne 0x180003c5d
cmp byte [r9 + rdx + 7], 0
je 0x180003c7a
inc cx
cmp cx, r10w
jbe 0x180003bf0
jmp 0x180003c91
movzx ecx, byte [rax + rdx + 5]
movzx eax, byte [rax + rdx + 4]
shl ecx, 8
sub eax, r8d
jmp 0x180003c8c
movzx ecx, byte [r9 + rdx + 4]
movzx eax, byte [r9 + rdx + 5]
add ecx, r8d
shl eax, 8
or ecx, eax
mov dword [r14], ecx
cmp byte [rdx + 3], 0xe9
jne 0x180003d3e
movzx ecx, r15w
nop
movzx r8d, cx
mov eax, r8d
shl eax, 5
cmp byte [rax + rdx], 0x4c
jne 0x180003cd3
cmp byte [rax + rdx + 1], 0x8b
jne 0x180003cd3
cmp byte [rax + rdx + 2], 0xd1
jne 0x180003cd3
cmp byte [rax + rdx + 3], 0xb8
jne 0x180003cd3
cmp byte [rax + rdx + 6], 0
jne 0x180003cd3
cmp byte [rax + rdx + 7], 0
je 0x180003d18
mov eax, r8d
neg eax
shl eax, 5
movsxd r9, eax
cmp byte [r9 + rdx], 0x4c
jne 0x180003d0d
cmp byte [r9 + rdx + 1], 0x8b
jne 0x180003d0d
cmp byte [r9 + rdx + 2], 0xd1
jne 0x180003d0d
cmp byte [r9 + rdx + 3], 0xb8
jne 0x180003d0d
cmp byte [r9 + rdx + 6], 0
jne 0x180003d0d
cmp byte [r9 + rdx + 7], 0
je 0x180003d27
inc cx
cmp cx, r10w
jbe 0x180003ca0
jmp 0x180003d3e
movzx ecx, byte [rax + rdx + 4]
movzx eax, byte [rax + rdx + 5]
sub ecx, r8d
jmp 0x180003d36
movzx ecx, byte [r9 + rdx + 4]
movzx eax, byte [r9 + rdx + 5]
add ecx, r8d
shl eax, 8
or ecx, eax
mov dword [r14], ecx
mov rbp, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
cmp dword [r14], 0
je 0x180003ea0
mov ecx, dword [0x18001fa14]
xor ebx, ebx
shl ecx, 0xd
xor ecx, dword [0x18001fa14]
mov eax, ecx
shr eax, 0x11
xor eax, ecx
mov edi, eax
shl edi, 5
xor edi, eax
mov dword [0x18001fa14], edi
and edi, 0xf
cmp byte [0x180020d78], bl
jne 0x180003e1f
mov ecx, 0x34c755b7
call fcn.1800032a0
mov qword [0x180020d70], rax
mov rdx, rax
test rax, rax
je 0x180003ea0
movsxd rax, dword [rax + 0x3c]
cmp dword [rax + rdx], 0x4550
jne 0x180003ea0
mov ecx, dword [rax + rdx + 0x88]
add rcx, rdx
mov r8d, dword [rcx + 0x18]
mov dword [0x180020d68], r8d
mov r9d, dword [rcx + 0x20]
add r9, rdx
mov qword [0x180020d58], r9
mov r10d, dword [rcx + 0x1c]
add r10, rdx
mov qword [0x180020d50], r10
mov ecx, dword [rcx + 0x24]
add rcx, rdx
mov qword [0x180020d60], rcx
test r8d, r8d
je 0x180003ea0
test r9, r9
je 0x180003ea0
test r10, r10
je 0x180003ea0
test rcx, rcx
je 0x180003ea0
mov byte [0x180020d78], r15b
jmp 0x180003e26
mov r8d, dword [0x180020d68]
xor r9d, r9d
test r8d, r8d
je 0x180003ea0
nop
mov rax, qword [0x180020d60]
movzx edx, word [rax + r9*2]
mov rax, qword [0x180020d50]
mov r10d, dword [rax + rdx*4]
add r10, qword [0x180020d70]
xor r8d, r8d
mov rdx, r10
nop dword [rax]
nop dword [rax + rax]
movzx eax, word [0x18001fa10]
movzx ecx, word [rdx]
xor ax, 0x25
cmp cx, ax
jne 0x180003e7f
cmp byte [rdx + 2], 0xc3
jne 0x180003e7f
cmp ebx, edi
je 0x180003eb1
inc ebx
inc r8d
inc rdx
cmp r8d, 0x20
jb 0x180003e60
mov rcx, qword [r14 + 8]
test rcx, rcx
jne 0x180003ebd
inc r9d
cmp r9d, dword [0x180020d68]
jb 0x180003e30
xor eax, eax
mov rbx, qword [rsp + 0x50]
add rsp, 0x20
pop r15
pop r14
pop rdi
ret
mov ecx, r8d
add rcx, r10
mov qword [r14 + 8], rcx
jmp 0x180003e8f
mov rbx, qword [rsp + 0x50]
mov eax, r15d
add rsp, 0x20
pop r15
pop r14
pop rdi
ret