Function at 0x140037a10
Capabilities:
Query environment variable

Disassembly:
push rbp
push rbx
push rdi
push r12
lea rbp, [rsp - 0x1a8]
sub rsp, 0x2a8
mov rax, qword [0x140051040]
xor rax, rsp
mov qword [rbp + 0x158], rax
xor ecx, ecx
call qword [sym.imp.USER32.dll_GetSystemMetrics]
mov ecx, 1
mov ebx, eax
call qword [sym.imp.USER32.dll_GetSystemMetrics]
xor r12d, r12d
mov dword [rbp + 0x10], 0x50
sub eax, 0x154
mov dword [rbp + 0x14], 0x40
cdq
mov qword [rbp + 0x20], r12
sub eax, edx
xor ecx, ecx
sar eax, 1
mov edi, eax
lea rax, [0x140038ef0]
mov qword [rbp + 0x18], rax
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
xorps xmm0, xmm0
mov qword [rbp + 0x58], r12
mov qword [rbp + 0x28], rax
lea rcx, [rbp + 0x10]
lea rax, [0x140047f48]
movdqa xmmword [rbp + 0x30], xmm0
xorps xmm1, xmm1
mov qword [rbp + 0x50], rax
movdqa xmmword [rbp + 0x40], xmm1
call qword [sym.imp.USER32.dll_RegisterClassExW]
mov rcx, qword [rbp + 0x28]
lea eax, [rbx - 0x1f4]
mov qword [rsp + 0x58], r12
lea r8, [0x140047f50]
mov qword [rsp + 0x50], rcx
cdq
mov qword [rsp + 0x48], r12
sub eax, edx
mov rdx, qword [rbp + 0x50]
mov r9d, 0xca0000
mov qword [rsp + 0x40], r12
xor ecx, ecx
mov dword [rsp + 0x38], 0x154
sar eax, 1
mov dword [rsp + 0x30], 0x1f4
mov dword [rsp + 0x28], edi
mov dword [rsp + 0x20], eax
call qword [sym.imp.USER32.dll_CreateWindowExW]
mov r9d, 4
mov dword [rbp + 0x60], 0x5a3628
mov rcx, rax
mov qword [0x140051d50], rax
lea r8, [rbp + 0x60]
mov edx, 0x14
call qword [sym.imp.dwmapi.dll_DwmSetWindowAttribute]
mov rcx, qword [0x140051d50]
mov edx, 1
call qword [sym.imp.USER32.dll_ShowWindow]
mov rcx, qword [0x140051d50]
call qword [sym.imp.USER32.dll_UpdateWindow]
mov rax, qword [0x140051d50]
mov qword [rbp + 0xc0], rax
lea rax, [0x140051d30]
mov qword [rsp + 0x58], rax
lea rax, [rbp + 0x88]
mov qword [rsp + 0x50], rax
lea rax, [0x140051d38]
mov qword [rsp + 0x48], rax
lea rax, [0x140051d40]
mov qword [rsp + 0x40], rax
lea rax, [rbp + 0x90]
mov qword [rbp + 0xa4], r12
mov qword [rbp + 0xb8], 2
mov qword [rbp + 0xd0], 2
mov qword [rbp + 0x90], r12
mov dword [rbp + 0xa0], 0x1c
mov dword [rbp + 0x98], 0x3c
mov dword [rbp + 0x9c], 1
mov dword [rbp + 0xb4], 0x20
mov qword [rbp + 0xac], 1
mov qword [rbp + 0xc8], 1
mov dword [rbp + 0x150], 0xb000
mov dword [rbp + 0x154], 0xa000
mov qword [rsp + 0x38], rax
xor r9d, r9d
mov dword [rsp + 0x30], 7
lea rax, [rbp + 0x150]
mov dword [rsp + 0x28], 2
xor r8d, r8d
mov edx, 1
mov qword [rsp + 0x20], rax
xor ecx, ecx
call qword [sym.imp.d3d11.dll_D3D11CreateDeviceAndSwapChain]
test eax, eax
je 0x140037c72
mov rcx, qword [0x140051d50]
lea rdx, str.Failed_To_Run
mov r9d, 0x10
xor r8d, r8d
call qword [sym.imp.USER32.dll_MessageBoxA]
call fcn.140038e00
mov rdx, qword [rbp + 0x28]
mov rcx, qword [rbp + 0x50]
call qword [sym.imp.USER32.dll_UnregisterClassW]
mov eax, 1
jmp 0x1400384b6
mov qword [rsp + 0x2d0], rsi
mov qword [rsp + 0x2d8], r13
call fcn.140038e80
mov rcx, qword [0x140051d50]
mov edx, 1
call qword [sym.imp.USER32.dll_ShowWindow]
mov r13, qword [0x140051d18]
mov ecx, 0x62c0
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov r8, qword [0x140051d18]
mov r9, rax
test r8, r8
je 0x140037d1a
movsx rax, word [r8 + 0x6130]
lea rdx, [r8 + 0x6134]
mov r10d, dword [r8 + 0x3f88]
lea rdx, [rdx + rax*8]
cmp dword [rdx], r10d
je 0x140037d0f
lea ecx, [rax + 1]
mov eax, 0x2aaaaaab
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
add eax, eax
lea rdx, [r8 + 0x6134]
sub ecx, eax
mov word [r8 + 0x6130], cx
movsx rax, cx
lea rdx, [rdx + rax*8]
mov dword [rdx], r10d
mov dword [rdx + 4], r12d
inc word [rdx + 4]
inc dword [r8 + 0x6128]
test r9, r9
je 0x140037d2b
xor edx, edx
mov rcx, r9
call fcn.140001470
jmp 0x140037d2e
mov rax, r12
mov qword [0x140051d18], rax
call fcn.140005d90
test r13, r13
je 0x140037d48
mov qword [0x140051d18], r13
jmp 0x140037d4f
mov r13, qword [0x140051d18]
mov rcx, qword [0x140051d50]
mov qword [r13 + 0x20], r12
call fcn.14002e7a0
call fcn.14002e5d0
xorps xmm0, xmm0
lea rdx, str.WindowsFonts_times.ttf
xorps xmm1, xmm1
lea rcx, [rsp + 0x60]
mov r8d, 0x18
movups xmmword [rsp + 0x60], xmm0
movdqu xmmword [rsp + 0x70], xmm1
call fcn.1400372c0
lea rcx, str.SystemDrive
call qword [sym.imp.api_ms_win_crt_environment_l1_1_0.dll_getenv]
mov rbx, 0xffffffffffffffff
mov rsi, rax
mov rdi, rbx
inc rdi
cmp byte [rax + rdi], r12b
jne 0x140037da6
mov rcx, qword [rsp + 0x78]
mov r8, qword [rsp + 0x70]
mov rax, rcx
sub rax, r8
mov qword [rsp + 0x2e0], r14
cmp rdi, rax
ja 0x140037e59
lea rax, [r8 + rdi]
mov qword [rsp + 0x2a0], r15
cmp rcx, 0xf
mov qword [rsp + 0x70], rax
lea r14, [rsp + 0x60]
cmova r14, qword [rsp + 0x60]
lea rax, [rdi + rsi]
cmp rax, r14
jbe 0x140037e14
lea rax, [r14 + r8]
cmp rsi, rax
ja 0x140037e14
cmp r14, rsi
ja 0x140037e0c
mov r15, r12
jmp 0x140037e17
mov r15, r14
sub r15, rsi
jmp 0x140037e17
mov r15, rdi
inc r8
lea rcx, [r14 + rdi]
mov rdx, r14
call sub.VCRUNTIME140.dll_memmove
mov r8, r15
mov rdx, rsi
mov rcx, r14
call sub.VCRUNTIME140.dll_memcpy
mov r8, rdi
lea rdx, [r15 + rdi]
sub r8, r15
lea rcx, [r14 + r15]
add rdx, rsi
call sub.VCRUNTIME140.dll_memcpy
mov r15, qword [rsp + 0x2a0]
lea rax, [rsp + 0x60]
jmp 0x140037e70
mov qword [rsp + 0x28], rdi
lea rcx, [rsp + 0x60]
mov rdx, rdi
mov qword [rsp + 0x20], rsi
call fcn.1400384e0
xorps xmm0, xmm0
xorps xmm1, xmm1
movups xmmword [rbp + 0x68], xmm0
movdqu xmmword [rbp + 0x78], xmm1
movups xmm0, xmmword [rax]
movups xmmword [rbp + 0x68], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp + 0x78], xmm1
mov qword [rax + 0x10], r12
mov qword [rax + 0x18], 0xf
mov byte [rax], r12b
mov rdx, qword [rsp + 0x78]
cmp rdx, 0xf
jbe 0x140037edd
mov rcx, qword [rsp + 0x60]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x140037ed8
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140037ed8
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.14003e1bc
cmp qword [rbp + 0x80], 0xf
lea rdi, [rbp + 0x68]
mov r14, qword [r13 + 0x38]
lea r8, [rbp + 0x150]
cmova rdi, qword [rbp + 0x68]
mov rcx, rdi
mov qword [rbp + 0x150], r12
call fcn.140003820
mov rsi, rax
test rax, rax
je 0x1400380eb
xorps xmm2, xmm2
movaps xmmword [rsp + 0x290], xmm6
movups xmmword [rbp - 0x30], xmm2
mov eax, 0xffff
mov dword [rbp - 0x30], 0x3f800000
movaps xmmword [rsp + 0x280], xmm7
xorps xmm5, xmm5
movups xmmword [rbp - 0x70], xmm2
mov word [rbp - 0x28], ax
movaps xmmword [rsp + 0x270], xmm8
xorps xmm7, xmm7
movups xmmword [rbp - 0x80], xmm2
mov dword [rbp - 0x2c], 0x3f800000
movaps xmm1, xmmword [rbp - 0x30]
xorps xmm8, xmm8
movups xmmword [rbp - 0x40], xmm2
mov byte [rbp - 0x74], 1
movdqa xmm0, xmm1
movaps xmmword [rsp + 0x260], xmm9
movaps xmm3, xmmword [rbp - 0x80]
xorps xmm9, xmm9
psrldq xmm0, 0xa
movd eax, xmm0
mov dword [rbp - 0x68], 2
mov dword [rbp - 0x64], 1
movaps xmm4, xmmword [rbp - 0x70]
mov dword [rbp - 0x3c], 0x7f7fffff
movaps xmm6, xmmword [rbp - 0x40]
movaps xmmword [rbp + 0x90], xmm3
movaps xmmword [rbp + 0xa0], xmm4
movaps xmmword [rbp + 0xb0], xmm2
movaps xmmword [rbp + 0xc0], xmm5
movaps xmmword [rbp + 0xd0], xmm6
movaps xmmword [rbp + 0xe0], xmm1
movaps xmmword [rbp + 0xf0], xmm7
movaps xmmword [rbp + 0x100], xmm8
movaps xmmword [rbp + 0x110], xmm9
test al, al
jne 0x140038083
nop dword [rax]
inc rbx
cmp byte [rdi + rbx], r12b
jne 0x140037ff0
add rbx, rdi
cmp rbx, rdi
jbe 0x140038019
movzx eax, byte [rbx - 1]
lea rcx, [rbx - 1]
cmp al, 0x2f
je 0x140038019
cmp al, 0x5c
je 0x140038019
mov rbx, rcx
cmp rcx, rdi
ja 0x140038001
movsd xmm0, qword [0x1400484f0]
lea r8, str._s___.0fpx
mov r9, rbx
movsd qword [rsp + 0x20], xmm0
mov edx, 0x28
lea rcx, [rbp + 0xea]
call fcn.1400033d0
movaps xmm1, xmmword [rbp + 0xe0]
movaps xmm5, xmmword [rbp + 0xc0]
movaps xmm2, xmmword [rbp + 0xb0]
movaps xmm4, xmmword [rbp + 0xa0]
movaps xmm3, xmmword [rbp + 0x90]
movaps xmm9, xmmword [rbp + 0x110]
movaps xmm8, xmmword [rbp + 0x100]
movaps xmm7, xmmword [rbp + 0xf0]
movaps xmm6, xmmword [rbp + 0xd0]
mov eax, dword [rbp + 0x150]
lea rdx, [rbp - 0x80]
movaps xmmword [rbp - 0x80], xmm3
mov rcx, r14
movaps xmmword [rbp - 0x70], xmm4
mov qword [rbp - 0x80], rsi
mov dword [rbp - 0x78], eax
mov dword [rbp - 0x6c], 0x41b80000
movaps xmmword [rbp - 0x60], xmm2
movaps xmmword [rbp - 0x50], xmm5
movaps xmmword [rbp - 0x40], xmm6
movaps xmmword [rbp - 0x30], xmm1
movaps xmmword [rbp - 0x20], xmm7
movaps xmmword [rbp - 0x10], xmm8
movaps xmmword [rbp], xmm9
call fcn.140028d30
movaps xmm9, xmmword [rsp + 0x260]
movaps xmm8, xmmword [rsp + 0x270]
movaps xmm7, xmmword [rsp + 0x280]
movaps xmm6, xmmword [rsp + 0x290]
xorps xmm0, xmm0
movups xmmword [rbp + 0x120], xmm0
movups xmmword [rbp + 0x130], xmm0
movups xmmword [rbp + 0x140], xmm0
nop dword [rax]
nop word [rax + rax]
xor r9d, r9d
mov dword [rsp + 0x20], 1
xor r8d, r8d
lea rcx, [rbp + 0x120]
xor edx, edx
call qword [sym.imp.USER32.dll_PeekMessageW]
test eax, eax
je 0x140038150
lea rcx, [rbp + 0x120]
call qword [sym.imp.USER32.dll_TranslateMessage]
lea rcx, [rbp + 0x120]
call qword [sym.imp.USER32.dll_DispatchMessageW]
jmp 0x140038212
mov rax, qword [0x140051d18]
test rax, rax
je 0x140038165
mov rcx, qword [rax + 0x98]
jmp 0x140038168
mov rcx, r12
cmp qword [rcx + 0x48], r12
jne 0x140038173
call fcn.14002df70
call fcn.14002f1b0
call fcn.140008760
call fcn.140039010
call fcn.14003aee0
call fcn.14000a2b0
call fcn.14000a660
mov rcx, qword [0x140051d30]
lea r8, [0x140051d48]
xor r9d, r9d
mov edx, 1
mov rax, qword [rcx]
call qword [rax + pe_nt_image_headers64]
mov rax, qword [0x140051d18]
mov rcx, qword [rax + 0x4b60]
mov rax, qword [rcx]
mov rcx, r12
add rax, 0x50
cmp byte [rax], r12b
cmovne rcx, rax
call fcn.14002d500
mov rcx, qword [0x140051d40]
mov edx, 1
mov r8d, dword [0x140051d80]
mov rax, qword [rcx]
call qword [rax + 0x40]
cmp eax, 0x87a0001
jne 0x14003820b
mov ecx, 0x32
mov dword [0x140051d80], 1
call qword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x140038212
mov dword [0x140051d80], r12d
cmp dword [rbp + 0x128], 0x12
jne 0x140038110
mov rbx, qword [0x140051d18]
test rbx, rbx
je 0x140038234
mov rdi, qword [rbx + 0x98]
jmp 0x140038237
mov rdi, r12
call fcn.14002e4b0
mov rcx, qword [rdi + 0x10]
test rcx, rcx
je 0x14003824b
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [rdi]
test rcx, rcx
je 0x140038259
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [rdi + 8]
test rcx, rcx
je 0x140038268
mov rax, qword [rcx]
call qword [rax + 0x10]
and dword [rbx + 0xc], 0xfffffff7
mov r8, qword [0x140051d18]
mov qword [rbx + 0x88], r12
mov qword [rbx + 0x98], r12
test r8, r8
je 0x1400382e6
movsx rdx, word [r8 + 0x6130]
lea rcx, [r8 + 0x6134]
mov r9d, dword [r8 + 0x3f88]
lea rcx, [rcx + rdx*8]
cmp dword [rcx], r9d
je 0x1400382db
lea ecx, [rdx + 1]
mov eax, 0x2aaaaaab
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
add eax, eax
sub ecx, eax
mov word [r8 + 0x6130], cx
movsx rax, cx
lea rcx, [r8 + 0x6134]
lea rcx, [rcx + rax*8]
mov dword [rcx], r9d
mov dword [rcx + 4], r12d
inc word [rcx + 6]
inc dword [r8 + 0x612c]
mov rcx, rdi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov r8, qword [0x140051d18]
test r8, r8
je 0x140038304
mov rdi, qword [r8 + 0x90]
jmp 0x140038307
mov rdi, r12
mov rcx, qword [rdi + 0x38]
lea rbx, [r8 + 8]
test rcx, rcx
je 0x140038321
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov r8, qword [0x140051d18]
and dword [rbx + 4], 0xfffffff8
mov qword [rbx + 0x78], r12
mov qword [rbx + 0x88], r12
test r8, r8
je 0x140038395
movsx rdx, word [r8 + 0x6130]
mov r9d, dword [r8 + 0x3f88]
lea rcx, [rdx*8 + 0x6134]
add rcx, r8
cmp dword [rcx], r9d
je 0x14003838a
lea ecx, [rdx + 1]
mov eax, 0x2aaaaaab
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
add eax, eax
sub ecx, eax
mov word [r8 + 0x6130], cx
movsx rax, cx
lea rcx, [rax*8 + 0x6134]
add rcx, r8
mov dword [rcx], r9d
mov dword [rcx + 4], r12d
inc word [rcx + 6]
inc dword [r8 + 0x612c]
mov rcx, rdi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rbx, qword [0x140051d18]
mov qword [0x140051d18], rbx
call fcn.1400062a0
mov qword [0x140051d18], r12
test rbx, rbx
je 0x14003843b
mov rcx, rbx
call fcn.14001cf20
mov r8, qword [0x140051d18]
test r8, r8
je 0x140038432
movsx r10, word [r8 + 0x6130]
lea rdx, [r8 + 0x6134]
mov r9d, dword [r8 + 0x3f88]
lea rdx, [rdx + r10*8]
cmp dword [rdx], r9d
je 0x140038427
lea ecx, [r10 + 1]
mov eax, 0x2aaaaaab
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
add eax, eax
lea rdx, [r8 + 0x6134]
sub ecx, eax
mov word [r8 + 0x6130], cx
movsx rax, cx
lea rdx, [rdx + rax*8]
mov dword [rdx], r9d
mov dword [rdx + 4], r12d
inc word [rdx + 6]
inc dword [r8 + 0x612c]
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
call fcn.140038e00
mov rcx, qword [0x140051d50]
call qword [sym.imp.USER32.dll_DestroyWindow]
mov rdx, qword [rbp + 0x28]
mov rcx, qword [rbp + 0x50]
call qword [sym.imp.USER32.dll_UnregisterClassW]
mov rdx, qword [rbp + 0x80]
cmp rdx, 0xf
jbe 0x14003849c
mov rcx, qword [rbp + 0x68]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x140038497
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140038497
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.14003e1bc
mov r14, qword [rsp + 0x2e0]
xor eax, eax
mov rsi, qword [rsp + 0x2d0]
mov r13, qword [rsp + 0x2d8]
mov rcx, qword [rbp + 0x158]
xor rcx, rsp
call fcn.14003e020
add rsp, 0x2a8
pop r12
pop rdi
pop rbx
pop rbp
ret