Function at 0x140044720
Capabilities:
Hash data using fnv

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x138
movaps xmmword [rsp + 0x120], xmm6
mov r14d, r9d
mov rsi, r8
mov rbx, rcx
mov r9, qword [rsp + 0x1a0]
lea r8, [r9 + 0x10]
xorps xmm0, xmm0
movaps xmmword [rsp + 0x80], xmm0
lea rcx, [rsp + 0x80]
call fcn.14002c6d0
mov r8, qword [rsp + 0x80]
test r8, r8
je 0x140044784
cmp qword [rsp + 0x88], 0
je 0x140044f2c
movabs r12, 0xcbf29ce484222325
movabs rdi, 0xbf58476d1ce4e5b9
movabs r9, 0x9e3779b97f4a7c15
movabs r11, 0x94d049bb133111eb
movabs r10, 0x100000001b3
movzx eax, word [0x14009e3c8]
lea ecx, [rax + 0x100]
movzx ecx, cx
mov qword [rsp + 0x68], rcx
inc eax
mov word [0x14009e3c8], ax
mov rcx, qword [0x14009e840]
mov r15, rcx
and r15, 0xffffffffffffffc0
lea rax, [r15 + r9]
mov rdx, rax
shr rdx, 0x1e
xor rdx, rax
imul rdx, rdi
mov rax, rdx
shr rax, 0x1b
xor rax, rdx
imul rax, r11
mov rbp, rax
shr rbp, 0x1f
xor rbp, rax
add rbp, r12
movzx eax, bl
mov qword [rsp + 0xe8], rax
xor rbp, rax
imul rbp, r10
movzx eax, bh
mov qword [rsp + 0xe0], rax
xor rbp, rax
imul rbp, r10
mov eax, ebx
shr eax, 0x10
movzx eax, al
mov qword [rsp + 0xd8], rax
xor rbp, rax
imul rbp, r10
mov eax, ebx
shr eax, 0x18
xor rbp, rax
imul rbp, r10
mov rdx, rbx
shr rdx, 0x20
movzx edx, dl
mov qword [rsp + 0xd0], rdx
xor rbp, rdx
imul rbp, r10
mov rdx, rbx
shr rdx, 0x28
movzx edx, dl
mov qword [rsp + 0xc8], rdx
xor rbp, rdx
imul rbp, r10
mov rdx, rbx
shr rdx, 0x30
movzx edx, dl
mov qword [rsp + 0xc0], rdx
xor rbp, rdx
imul rbp, r10
mov rdi, rbx
shr rdi, 0x38
xor rbp, rdi
imul rbp, r10
movabs rdx, 0x7fffffffffffffff
xor r11d, r11d
and rbp, rdx
sete dl
cmp qword [0x14009e848], 0
mov dword [rsp + 0x70], r14d
je 0x140044994
mov r11b, dl
mov edx, 1
shl rdx, cl
or rbp, r11
test rcx, rcx
cmove rdx, rcx
lea r13, [rdx - 1]
mov r12, rbp
and r12, r13
lea rcx, [r15 + rdx*8]
lea r11, [rcx + rdx*8]
mov r14, qword [r11 + r12*8]
test r14, r14
je 0x1400449a9
mov qword [rsp + 0xb8], rcx
mov qword [rsp + 0x78], rsi
sub rdx, r12
mov rsi, 0xffffffffffffffff
xor ecx, ecx
mov qword [rsp + 0x60], rcx
jmp 0x14004493f
inc r12
and r12, r13
mov r14, qword [r11 + r12*8]
test r14, r14
je 0x1400449a2
lea rcx, [rdx + r12]
and rcx, r13
inc rsi
cmp rsi, rcx
ja 0x1400449a2
cmp r14, rbp
jne 0x140044930
cmp qword [r15 + r12*8], rbx
jne 0x140044930
shl r12, 3
mov rcx, qword [rsp + 0xb8]
add rcx, r12
mov rsi, qword [rsp + 0x78]
mov rbp, qword [rsp + 0x68]
movabs r14, 0x94d049bb133111eb
movabs r11, 0xbf58476d1ce4e5b9
je 0x140044d9e
mov rcx, qword [rcx]
jmp 0x140044da0
xor ecx, ecx
mov qword [rsp + 0x60], rcx
mov rbp, qword [rsp + 0x68]
jmp 0x1400449bf
mov rsi, qword [rsp + 0x78]
jmp 0x1400449b0
xor ecx, ecx
mov qword [rsp + 0x60], rcx
mov rbp, qword [rsp + 0x68]
movabs r12, 0xcbf29ce484222325
movabs r14, 0x94d049bb133111eb
movabs r11, 0xbf58476d1ce4e5b9
mov rcx, qword [0x14009e860]
mov r13, rcx
and r13, 0xffffffffffffffc0
add r9, r13
mov rdx, r9
shr rdx, 0x1e
xor rdx, r9
imul rdx, r11
mov r11, rdx
shr r11, 0x1b
xor r11, rdx
imul r11, r14
mov r15, r11
shr r15, 0x1f
xor r15, r11
add r15, r12
xor r15, qword [rsp + 0xe8]
imul r15, r10
xor r15, qword [rsp + 0xe0]
imul r15, r10
xor r15, qword [rsp + 0xd8]
imul r15, r10
xor r15, rax
imul r15, r10
xor r15, qword [rsp + 0xd0]
imul r15, r10
xor r15, qword [rsp + 0xc8]
imul r15, r10
xor r15, qword [rsp + 0xc0]
imul r15, r10
xor r15, rdi
imul r15, r10
xor edx, edx
movabs rax, 0x7fffffffffffffff
and r15, rax
sete al
cmp qword [0x14009e868], 0
je 0x140044b14
mov dl, al
mov eax, 1
shl rax, cl
or r15, rdx
test rcx, rcx
cmove rax, rcx
lea r10, [rax - 1]
mov rdx, r15
and rdx, r10
lea rcx, [rax*8]
add rcx, r13
lea r11, [rcx + rax*4]
mov rdi, qword [r11 + rdx*8]
test rdi, rdi
je 0x140044b14
mov r12, rsi
sub rax, rdx
mov rsi, 0xffffffffffffffff
jmp 0x140044adf
inc rdx
and rdx, r10
mov rdi, qword [r11 + rdx*8]
test rdi, rdi
je 0x140044b11
lea r14, [rax + rdx]
and r14, r10
inc rsi
cmp rsi, r14
ja 0x140044b11
cmp rdi, r15
jne 0x140044ad0
cmp qword [r13 + rdx*8], rbx
jne 0x140044ad0
shl rdx, 2
add rcx, rdx
mov rsi, r12
mov r9d, 0
je 0x140044b17
mov r9d, dword [rcx]
jmp 0x140044b17
mov rsi, r12
xor r9d, r9d
or r9d, dword [rsp + 0x70]
or r9d, 0x50000000
mov eax, dword [rsi]
mov ecx, dword [rsi + 8]
mov edx, dword [rsi + 0x10]
mov r11d, dword [rsi + 0x18]
mov r10, qword [0x14009e3d0]
xorps xmm0, xmm0
movups xmmword [rsp + 0x50], xmm0
mov qword [rsp + 0x48], rbp
mov qword [rsp + 0x40], r10
mov dword [rsp + 0x38], r11d
mov dword [rsp + 0x30], edx
mov dword [rsp + 0x28], ecx
mov dword [rsp + 0x20], eax
xor r12d, r12d
xor ecx, ecx
mov rdx, qword [rsp + 0x60]
call sub.USER32.dll_CreateWindowExW
mov r15, rax
cmp rbx, 8
ja 0x140044b93
mov eax, 0x118
bt rax, rbx
jae 0x140044b93
lea r8, [0x140044640]
mov rcx, r15
mov edx, 0xfffffffc
call sub.USER32.dll_SetWindowLongPtrW
mov r12, rax
mov r13, qword [0x14009e800]
mov rax, qword [0x14009e7f8]
inc rax
cmp r13, rax
jge 0x140044ddb
lea rbp, [r13*2 + 8]
cmp r13, rbp
jge 0x140044ddb
mov rdi, rsi
mov rsi, qword [0x14009e808]
test rsi, rsi
je 0x140044bde
mov rdx, qword [0x14009e810]
mov r9, qword [rsp + 0x1a0]
jmp 0x140044c04
mov r9, qword [rsp + 0x1a0]
mov rsi, qword [r9]
mov rdx, qword [r9 + 8]
mov qword [0x14009e808], rsi
mov qword [0x14009e810], rdx
test rsi, rsi
je 0x140044f9b
mov rbx, rbp
shl rbx, 4
shl r13, 4
mov r14, qword [0x14009e7f0]
test rbx, rbx
je 0x140044c5c
test r14, r14
je 0x140044cad
cmp r13, rbx
jne 0x140044cf8
mov eax, r14d
and eax, 7
jne 0x140044cf8
test rbx, rbx
jns 0x140044d99
lea rcx, str.c:_odin_base_runtime_internal.odin
mov edx, 0xa3
mov r8d, 0x18
mov r9, rbx
call fcn.1400043a0
test r14, r14
je 0x140044d96
xorps xmm0, xmm0
movaps xmmword [rsp + 0x80], xmm0
mov qword [rsp + 0x40], r9
lea rax, [rsp + 0x80]
mov qword [rsp + 0x38], rax
lea rax, str.w:_dev_PortableBuildTools_master_src_widgets_widgets.odin
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x20], r14
xor r14d, r14d
mov rcx, rdx
mov dl, 1
xor r8d, r8d
xor r9d, r9d
call rsi
jmp 0x140044dbc
xorps xmm0, xmm0
movaps xmmword [rsp + 0x100], xmm0
mov qword [rsp + 0x40], r9
lea rax, [rsp + 0x100]
mov qword [rsp + 0x38], rax
lea rax, str.w:_dev_PortableBuildTools_master_src_widgets_widgets.odin
mov qword [rsp + 0x30], rax
movups xmmword [rsp + 0x20], xmm0
mov r9d, 8
mov rcx, rdx
xor edx, edx
mov r8, rbx
call rsi
mov r14, qword [rsp + 0x100]
jmp 0x140044dbc
xorps xmm6, xmm6
movaps xmmword [rsp + 0xf0], xmm6
mov qword [rsp + 0x40], r9
lea rax, [rsp + 0xf0]
mov qword [rsp + 0x38], rax
lea rax, str.w:_dev_PortableBuildTools_master_src_widgets_widgets.odin
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x20], r14
mov r9d, 8
mov rcx, rdx
mov qword [rsp + 0x60], rdx
mov dl, 3
mov r8, rbx
call rsi
cmp al, 4
jne 0x140044db4
movaps xmmword [rsp + 0xa0], xmm6
mov rax, qword [rsp + 0x1a0]
mov qword [rsp + 0x40], rax
lea rax, [rsp + 0xa0]
mov qword [rsp + 0x38], rax
lea rax, str.w:_dev_PortableBuildTools_master_src_widgets_widgets.odin
mov qword [rsp + 0x30], rax
movups xmmword [rsp + 0x20], xmm6
mov r9d, 8
mov rcx, qword [rsp + 0x60]
xor edx, edx
mov r8, rbx
call rsi
test al, al
je 0x140044e96
mov rsi, rdi
jmp 0x140044ddb
xor r14d, r14d
mov rsi, rdi
jmp 0x140044dc3
xor ecx, ecx
mov qword [rsp + 0x60], rcx
movabs r12, 0xcbf29ce484222325
jmp 0x1400449d3
mov r14, qword [rsp + 0xf0]
mov rsi, rdi
test al, al
jne 0x140044ddb
test rbx, rbx
jle 0x140044dcd
test r14, r14
je 0x140044ddb
mov qword [0x14009e7f0], r14
mov qword [0x14009e800], rbp
mov rcx, qword [0x14009e800]
mov rax, qword [0x14009e7f8]
sub rcx, rax
test rcx, rcx
jle 0x140044e15
mov rcx, qword [0x14009e7f0]
test rcx, rcx
je 0x140044f69
shl rax, 4
mov qword [rcx + rax], r15
mov qword [rcx + rax + 8], r12
inc qword [0x14009e7f8]
mov r8, qword [0x14009e3e0]
mov r9d, 1
mov rcx, r15
mov edx, 0x30
call fcn.14005513c
mov rcx, qword [0x14009e3d0]
mov eax, dword [rsi]
mov edx, dword [rsi + 8]
mov r8d, dword [rsi + 0x10]
add r8d, eax
mov r9d, dword [rsi + 0x18]
add r9d, edx
mov dword [rsp + 0x90], eax
mov dword [rsp + 0x94], edx
mov dword [rsp + 0x98], r8d
mov dword [rsp + 0x9c], r9d
lea rdx, [rsp + 0x90]
xor r8d, r8d
call sub.USER32.dll_InvalidateRect
mov rax, r15
movaps xmm6, xmmword [rsp + 0x120]
add rsp, 0x138
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
test r13, r13
js 0x140044f4f
mov rax, qword [rsp + 0xa0]
mov qword [rsp + 0x70], rax
mov r8, qword [rsp + 0xa8]
cmp r8, r13
cmovge r8, r13
test r8, r8
jle 0x140044ecd
mov rcx, qword [rsp + 0x70]
mov rdx, r14
call fcn.1400729c0
xorps xmm0, xmm0
movaps xmmword [rsp + 0x110], xmm0
mov rax, qword [rsp + 0x1a0]
mov qword [rsp + 0x40], rax
lea rax, [rsp + 0x110]
mov qword [rsp + 0x38], rax
lea rax, str.w:_dev_PortableBuildTools_master_src_widgets_widgets.odin
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x20], r14
mov rcx, qword [rsp + 0x60]
mov dl, 1
xor r8d, r8d
xor r9d, r9d
call rsi
mov rsi, rdi
mov r14, qword [rsp + 0x70]
test al, al
jne 0x140044ddb
jmp 0x140044dc3
mov qword [rsp + 0x20], 0
lea rcx, str.c:_odin_core_sys_windows_util.odin
mov edx, 0x39
mov r8d, 0xf
xor r9d, r9d
call fcn.1400525f0
lea rcx, str.c:_odin_base_runtime_internal.odin
mov edx, 0xb5
mov r8d, 0x1c
mov r9, r13
call fcn.1400043a0
mov r9, qword [rsp + 0x1a0]
mov rax, qword [r9 + 0x20]
test rax, rax
lea r10, [0x140005190]
cmovne r10, rax
lea rcx, str.runtime_assertion
lea rdx, [0x14008e408]
lea r8, str.w:_dev_PortableBuildTools_master_src_widgets_widgets.odin
call r10
mov rax, qword [r9 + 0x20]
test rax, rax
lea r10, [0x140005190]
cmovne r10, rax
lea rcx, str.runtime_assertion
lea rdx, [0x14008e408]
lea r8, str.Ny_b_
call r10
int3