Function at 0x46cfd0
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x50afc0
mov eax, dword fs:[0]
push eax
sub esp, 0x8c
mov eax, dword [0x542040]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, dword [ebp + 0x14]
mov ecx, dword [ebp + 0xc]
mov esi, dword [ebp + 0x10]
mov edx, dword [ebp + 0x18]
mov edi, dword [ebp + 8]
movzx eax, bx
mov dword [ebp - 0x90], esi
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x94], edx
cmp ecx, 0x111
ja 0x46d708
je 0x46d6b5
lea eax, [ecx - 1]
cmp eax, 0x4d
ja case.default.0x46d730
movzx eax, byte [eax + 0x46dae4]
jmp dword [eax*4 + 0x46dab4]
mov ecx, dword [0x5493e8]
mov eax, 0x2aaaaaab
sub ecx, dword [0x5493e0]
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
jne 0x46d095
mov dword [ebp - 0x18], 0x3e8
cmp eax, 0x3e8
jae 0x46d080
lea eax, [ebp - 0x18]
push eax
call fcn.0046f270
push ecx
push 0x46cd10
push 0x5493dc
mov ecx, 0x5493ec
call fcn.00403530
test edi, edi
je 0x46d0e0
lea eax, [ebp - 0x38]
xor edx, edx
push eax
push 0
push 0
mov ecx, edi
call fcn.004184a0
mov eax, dword [ebp - 0x2c]
mov esi, dword [ebp - 0x30]
sub eax, dword [ebp - 0x34]
sub esi, dword [ebp - 0x38]
push edi
mov dword [ebp - 0x18], eax
call dword [sym.imp.USER32.dll_GetParent]
test eax, eax
je 0x46d0cf
lea ecx, [ebp - 0x38]
push ecx
push eax
call dword [sym.imp.USER32.dll_ScreenToClient]
mov eax, dword [ebp - 0x38]
add eax, esi
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x34]
add eax, dword [ebp - 0x18]
mov dword [ebp - 0x2c], eax
mov esi, dword [ebp - 0x94]
xor edx, edx
push 0
mov ecx, edi
lea eax, [esi + 0x124]
push eax
lea eax, [esi + 0x114]
push eax
call fcn.004184a0
mov eax, dword [ebp - 0x30]
sub eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x34]
mov dword [esi + 0x13c], eax
mov eax, dword [ebp - 0x2c]
sub eax, ecx
mov dword [esi + 0x134], ecx
mov dword [esi + 0x140], eax
push dword [ebx]
push 0x10
push edi
call dword [sym.imp.USER32.dll_SetWindowLongW]
push edi
mov ecx, 0x545ecc
mov dword [0x5482c0], edi
call fcn.00468630
mov ecx, edi
call fcn.00467110
lea eax, [ebp - 0x28]
push eax
push edi
call dword [sym.imp.USER32.dll_GetWindowRect]
movzx edx, word [0x545ed0]
lea eax, [ebp - 0x28]
push esi
push eax
movzx eax, word [0x545ecc]
mov ecx, edi
shl edx, 0x10
or edx, eax
push edx
call fcn.0046e850
add esp, 0xc
xor eax, eax
jmp 0x46d995
test ebx, ebx
je 0x46daad
cmp dword [0x549340], 0
je 0x46d1a0
push 2
push str.nDarkMode
mov ecx, 0x5492d0
call fcn.004347b0
mov dword [0x5492e8], eax
jmp 0x46d1a5
mov eax, dword [0x5492e8]
cmp eax, 2
jne 0x46daad
push 1
push 0xffffffffffffffff
push str.ImmersiveColorSet
push 0xffffffffffffffff
push ebx
call dword [sym.imp.KERNEL32.dll_CompareStringOrdinal]
cmp eax, 2
jne 0x46daad
mov ecx, eax
call fcn.00471c00
xor eax, eax
jmp 0x46d995
mov eax, dword [ebx + 4]
add eax, 0xffffd508
cmp eax, 0x46
ja case.0x46d1eb.11002
movzx eax, byte [eax + 0x46db48]
jmp dword [eax*4 + 0x46db34]
lea eax, [ebp - 0x14]
mov dword [ebp - 0x14], 0
push eax
push ebx
push ecx
mov ecx, edi
call fcn.00473740
xor ecx, ecx
add esp, 0xc
test al, al
cmovne ecx, dword [ebp - 0x14]
mov eax, ecx
jmp 0x46d995
push ecx
push ebx
mov edx, ecx
mov ecx, edi
push esi
call fcn.0045d820
add esp, 0xc
mov ecx, eax
jmp 0x46d995
push ebx
mov edx, ecx
mov ecx, edi
push esi
call fcn.00460cf0
add esp, 8
mov ecx, eax
jmp 0x46d995
push edx
push ebx
mov edx, ecx
mov ecx, edi
push esi
call fcn.00469350
add esp, 0xc
mov ecx, eax
jmp 0x46d995
push ebx
push esi
push ecx
push edi
call dword [sym.imp.USER32.dll_DefWindowProcW]
mov ecx, eax
jmp 0x46d995
lea eax, [ebp - 0x88]
push eax
push edi
call dword [sym.imp.USER32.dll_BeginPaint]
lea eax, [ebp - 0x28]
push eax
push edi
call dword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x28]
mov ebx, dword [ebp - 0x94]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x24]
mov ebx, dword [ebx + 0x48]
mov ecx, ebx
mov dword [ebp - 0x90], eax
mov eax, dword [ebx]
call dword [eax + 8]
mov edx, dword [ebx]
mov ecx, ebx
mov esi, eax
call dword [edx + 0xc]
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x90]
cmp esi, edx
jl 0x46d2c2
cmp eax, ecx
jge 0x46d2cb
mov eax, dword [ebx]
push ecx
push edx
mov ecx, ebx
call dword [eax + 0x20]
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x18]
mov eax, dword [ebp - 0x94]
mov esi, dword [ebx]
mov edx, dword [eax + 0x5c]
mov eax, edx
shr eax, 0x10
movzx ecx, al
mov eax, edx
or eax, 0xffffff00
and edx, 0xff00
shl eax, 0x10
or ecx, eax
or ecx, edx
push ecx
mov ecx, ebx
call dword [esi + 0x30]
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x28]
push 0xcc0020
push 0
push 0
push eax
push dword [ebp - 0x90]
push dword [ebp - 0x14]
push 0
push 0
push dword [ebp - 0x88]
call dword [sym.imp.GDI32.dll_BitBlt]
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x2c]
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x1c]
lea eax, [ebp - 0x88]
push eax
push edi
call dword [sym.imp.USER32.dll_EndPaint]
xor eax, eax
jmp 0x46d995
mov eax, 1
jmp 0x46d995
lea eax, [ebp - 0x28]
push eax
push edi
call dword [sym.imp.USER32.dll_GetWindowRect]
cmp byte [0x547ea5], 0
jne 0x46d383
push edi
call dword [sym.imp.USER32.dll_IsIconic]
test eax, eax
jne 0x46d383
push str.rcWindow
lea eax, [ebp - 0x28]
push eax
call fcn.0044c450
movzx eax, byte [0x547ea5]
mov ecx, 0x5492d0
push eax
push str.isZoomed
call fcn.00437440
mov eax, dword [0x548d78]
mov ecx, 0x190
cmp eax, ecx
cmovl eax, ecx
mov ecx, 0x5492d0
push eax
push 0x52c83c
call fcn.00437440
mov eax, dword [0x54875c]
mov edx, 0x190
cmp eax, 0x190
mov ecx, 0x5492d0
cmovl eax, edx
push eax
push str.middleMax
call fcn.00437440
push ebx
push esi
push dword [ebp + 0xc]
jmp 0x46d98e
mov esi, dword [sym.imp.USER32.dll_KillTimer]
push 0x1e306
push edi
call esi
push 0x1e307
push edi
call esi
mov eax, dword [0x5493b8]
test eax, eax
je 0x46d42a
cmp dword [eax + 8], 0
jle 0x46d42a
mov dword [eax], 0
mov eax, dword [0x5493b8]
mov dword [eax + 8], 0
push dword [0x5493b8]
push dword [0x549370]
call esi
push dword [0x549370]
call dword [sym.imp.USER32.dll_DestroyWindow]
cmp byte [0x547ea6], 0
je 0x46daad
push 0
call dword [sym.imp.USER32.dll_PostQuitMessage]
xor eax, eax
jmp 0x46d995
mov eax, dword [0x54a488]
sub eax, dword [0x54a480]
mov dword [ebp - 0x94], eax
mov eax, dword [0x54a48c]
sub eax, dword [0x54a484]
mov dword [ebp - 0x98], eax
mov eax, dword [ebp - 0x18]
movzx eax, ax
mov dword [ebp - 0x14], eax
mov eax, ebx
shr eax, 0x10
mov dword [ebp - 0x18], eax
mov eax, dword [0x545ee8]
test eax, eax
je 0x46d4ae
push 0
push 0x2b0a
push 0x40a
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
test eax, eax
jle 0x46d4ae
push 0
push 0
call fcn.0044b780
mov eax, dword [ebp - 0x14]
test eax, eax
jne 0x46d4e5
push edi
call dword [sym.imp.USER32.dll_IsZoomed]
push edi
mov esi, eax
call dword [sym.imp.USER32.dll_IsIconic]
test esi, esi
jne 0x46d4cd
test eax, eax
je 0x46d4dc
push ebx
push dword [ebp - 0x90]
push dword [ebp + 0xc]
jmp 0x46d98e
mov esi, dword [ebp - 0x90]
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x18]
mov dword [0x54a480], eax
add eax, dword [ebp - 0x94]
mov dword [0x54a488], eax
mov eax, dword [ebp - 0x98]
push ebx
add eax, ecx
mov dword [0x54a484], ecx
push esi
push dword [ebp + 0xc]
mov dword [0x54a48c], eax
jmp 0x46d98e
cmp esi, 2
je 0x46d523
cmp esi, 3
je 0x46d523
xor al, al
jmp 0x46d525
mov al, 1
cmp byte [0x547ea5], 0
mov byte [ebp - 0x89], al
jne 0x46d550
test al, al
je 0x46d55a
push str.rcWindow
push 0x54a480
call fcn.0044c450
cmp byte [0x547ea5], 0
je 0x46d55a
mov al, byte [ebp - 0x89]
test al, al
jne 0x46d56c
push 0x54a480
push edi
call dword [sym.imp.USER32.dll_GetWindowRect]
mov al, byte [ebp - 0x89]
mov byte [0x547ea5], al
lea eax, [ebp - 0x48]
push eax
push edi
call dword [sym.imp.USER32.dll_GetClientRect]
mov ecx, dword [ebp - 0x40]
mov edx, 0x54875c
sub ecx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x3c]
sub eax, dword [ebp - 0x44]
cmp byte [0x547ea5], 0
mov dword [ebp - 0x98], 0x548d78
cmove edx, dword [ebp - 0x98]
mov dword [ebp - 0x90], ecx
mov dword [ebp - 0x94], eax
mov dword [ebp - 0x98], edx
cmp esi, 1
je 0x46d68f
mov eax, dword [edx]
movsd xmm1, qword [0x537280]
add eax, 0x12c
cmp eax, ecx
mov eax, dword [0x545ecc]
jl 0x46d633
test eax, eax
jne 0x46d5e4
add ecx, 0xfffffed4
jmp 0x46d631
movd xmm0, eax
cvtdq2pd xmm0, xmm0
divsd xmm0, xmm1
movsd qword [ebp - 0x20], xmm0
mulsd xmm0, qword [0x537290]
call fcn.00507b20
mov ecx, dword [ebp - 0x90]
sub ecx, eax
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
divsd xmm0, qword [ebp - 0x20]
call fcn.00507b20
movsd xmm1, qword [0x537280]
mov ecx, eax
mov edx, dword [ebp - 0x98]
mov eax, dword [0x545ecc]
mov dword [edx], ecx
mov ecx, dword [edx]
mov dword [ebp - 0x14], ecx
test eax, eax
je 0x46d65c
movd xmm0, eax
cvtdq2pd xmm0, xmm0
divsd xmm0, xmm1
movd xmm1, ecx
cvtdq2pd xmm1, xmm1
mulsd xmm0, xmm1
call fcn.00507b20
mov dword [ebp - 0x14], eax
push 0x2bd6
push edi
call dword [sym.imp.USER32.dll_GetDlgItem]
push 0x414
push dword [ebp - 0x94]
push dword [ebp - 0x14]
push 0
push 0
push 0
push eax
call dword [sym.imp.USER32.dll_SetWindowPos]
mov ecx, dword [ebp - 0x90]
mov eax, dword [ebp - 0x94]
mov edx, eax
call fcn.0046e040
push ebx
push esi
push dword [ebp + 0xc]
jmp 0x46d98e
mov dword [ebx + 0x18], 0x320
xor eax, eax
mov dword [ebx + 0x1c], 0x258
jmp 0x46d995
test ebx, ebx
je 0x46d6c1
movzx eax, si
mov dword [ebp - 0x14], eax
jmp 0x46d6c6
mov eax, esi
mov dword [ebp - 0x14], esi
mov ecx, eax
call fcn.004374e0
test eax, eax
jne 0x46daad
mov ecx, dword [ebp - 0x14]
lea eax, [ecx - 0x2b03]
cmp eax, 0x26
ja case.0x46d6ea.11013
movzx eax, byte [eax + 0x46db98]
jmp dword [eax*4 + 0x46db90]
call fcn.0045a820
test eax, eax
jne 0x46daad
push ebx
push esi
push dword [ebp + 0xc]
jmp 0x46d98e
cmp ecx, 0x2a2
ja 0x46d944
je case.default.0x46d730
lea eax, [ecx - 0x132]
cmp eax, 6
ja case.default.0x46d730
movzx eax, byte [eax + 0x46dbc4]
jmp dword [eax*4 + 0x46dbc0]
push ebx
call dword [sym.imp.USER32.dll_GetDlgCtrlID]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x94]
mov ecx, dword [eax + 0x5c]
call fcn.00472fa0
mov dword [ebp - 0x18], eax
mov edx, ebx
mov eax, ebx
shr edx, 0x18
shr eax, 0x10
mov dword [ebp - 0x3c], eax
mov eax, ebx
shr eax, 8
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x98], eax
test ebx, ebx
je 0x46d7c8
movzx eax, bl
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
mov eax, dword [ebp - 0x98]
movzx eax, al
xor ecx, eax
mov eax, dword [ebp - 0x3c]
movzx eax, al
imul ecx, ecx, 0x1000193
xor ecx, eax
imul eax, ecx, 0x1000193
xor eax, edx
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.00474d60
mov edi, dword [eax + 4]
test edi, edi
je 0x46d7c8
cmp edi, dword [0x5495bc]
je 0x46d7c8
add edi, 0xc
jne 0x46d7d1
xor ecx, ecx
call fcn.00472c40
mov edi, eax
push dword [edi + 0x60]
push esi
call dword [sym.imp.GDI32.dll_SetTextColor]
mov eax, dword [0x5482c4]
test eax, eax
je 0x46d821
push dword [eax]
call dword [sym.imp.USER32.dll_IsWindow]
mov ecx, dword [ebp - 0x14]
test eax, eax
jne case.default.0x46d805
lea eax, [ecx - 0x2b0d]
cmp eax, 8
ja case.default.0x46d805
movzx eax, byte [eax + 0x46dbd0]
jmp dword [eax*4 + 0x46dbcc]
mov eax, dword [sym.imp.GDI32.dll_SetTextColor]
push 0xff
push esi
call eax
mov eax, dword [ebp - 0x18]
jmp 0x46d995
mov ecx, dword [ebp - 0x14]
cmp dword [ebp + 0xc], 0x138
jne 0x46d86b
push ebx
call dword [sym.imp.USER32.dll_IsWindowEnabled]
test eax, eax
jne 0x46d843
mov ebx, dword [edi + 0x6c]
mov edi, dword [edi + 0x8c]
jmp 0x46d849
mov ebx, dword [edi + 0x60]
mov edi, dword [edi + 0x5c]
push 1
push esi
call dword [sym.imp.GDI32.dll_SetBkMode]
push edi
push esi
call dword [sym.imp.GDI32.dll_SetBkColor]
mov eax, dword [sym.imp.GDI32.dll_SetTextColor]
push ebx
push esi
call eax
mov eax, dword [ebp - 0x18]
jmp 0x46d995
cmp ecx, 0x2b0c
jne 0x46d93f
mov edx, ebx
mov dword [ebp - 0x14], 0
lea ecx, [ebp - 0x14]
call fcn.0042e7c0
mov esi, dword [ebp - 0x14]
test esi, esi
je 0x46d8ac
mov ecx, dword [esi + 8]
xor edx, edx
mov eax, ecx
test ecx, ecx
je 0x46d8b0
cmp word [ecx], dx
je 0x46d8b0
nop
lea ecx, [ecx + 2]
inc edx
cmp word [ecx], 0
jne 0x46d8a0
jmp 0x46d8b0
xor eax, eax
xor edx, edx
mov ecx, 0x52b070
xor edi, edi
lea ecx, [ecx + 2]
inc edi
cmp word [ecx], 0
jne 0x46d8b7
test eax, eax
jne 0x46d8cd
test edx, edx
jne 0x46d925
test edi, edi
je 0x46d90f
cmp eax, 0x52b070
je 0x46d90f
test eax, eax
je 0x46d925
mov ecx, 0x52b070
nop dword [eax]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x46d906
test dx, dx
je 0x46d902
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x46d906
add eax, 4
add ecx, 4
test dx, dx
jne 0x46d8e0
xor eax, eax
jmp 0x46d90b
sbb eax, eax
or eax, 1
test eax, eax
jne 0x46d925
mov eax, dword [ebp - 0x94]
push dword [eax + 0x6c]
mov eax, dword [sym.imp.GDI32.dll_SetTextColor]
push dword [ebp - 0x90]
call eax
mov dword [ebp - 4], 0
test esi, esi
je 0x46d93f
add dword [esi + 4], 0xffffffff
jne 0x46d93f
push esi
call fcn.004eb01a
add esp, 4
mov eax, dword [ebp - 0x18]
jmp 0x46d995
cmp ecx, 0x320
ja 0x46d9c2
je 0x46daad
mov eax, ecx
sub eax, 0x2e0
je 0x46d9b3
sub eax, 0x32
jne case.default.0x46d730
cmp esi, 0xfa0
jne case.default.0x46d730
call fcn.00475480
push 0x46dbe0
push 0x7d0
push 0x403
push dword [0x5482c0]
call dword [sym.imp.USER32.dll_SetTimer]
mov ecx, dword [ebp + 0xc]
push ebx
push esi
push ecx
push edi
call dword [sym.imp.USER32.dll_DefWindowProcW]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004dadd7
mov esp, ebp
pop ebp
ret 0x14
push edx
push ebx
push esi
mov ecx, edi
call fcn.0046e850
add esp, 0xc
jmp 0x46d995
cmp ecx, 0x33f
je case.default.0x46d730
cmp ecx, 0x8001
jne case.default.0x46d730
mov eax, dword [0x5493e4]
mov esi, dword [0x5493e0]
mov dword [ebp - 0x1c], eax
cmp esi, eax
je 0x46daad
mov edi, dword [ebp - 0x90]
nop
mov eax, dword [esi]
test eax, eax
je 0x46da94
push eax
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x46da94
mov eax, dword [esi + 4]
sub eax, 7
je 0x46da43
sub eax, 1
jne 0x46da78
push dword [ebx]
push eax
push 0x1001
push dword [esi]
call dword [sym.imp.USER32.dll_SendMessageW]
push dword [ebx]
push 0
push 0x1026
push dword [esi]
call dword [sym.imp.USER32.dll_SendMessageW]
push dword [ebx + 0x40]
push 0
push 0x1024
jmp 0x46da70
push dword [ebx]
push 0
push 0x111d
push dword [esi]
call dword [sym.imp.USER32.dll_SendMessageW]
push dword [ebx + 0x40]
push 0
push 0x111e
push dword [esi]
call dword [sym.imp.USER32.dll_SendMessageW]
push dword [ebx + 0x74]
push 0
push 0x1128
push dword [esi]
call dword [sym.imp.USER32.dll_SendMessageW]
test edi, edi
mov ecx, str.Explorer
push 0
mov eax, str.DarkMode_Explorer
cmove eax, ecx
push eax
push dword [esi]
call dword [sym.imp.UxTheme.dll_SetWindowTheme]
jmp 0x46daa1
mov dword [esi], 0
mov dword [esi + 4], 0
add esi, 0xc
cmp esi, dword [ebp - 0x1c]
jne 0x46d9f0
xor eax, eax
jmp 0x46d995