Function at 0x14004e0a0
Capabilities:
Print debug messages

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
push rbp
push r14
push r15
lea rbp, [rax - 0x328]
sub rsp, 0x410
movaps xmmword [rax - 0x28], xmm6
movaps xmmword [rax - 0x38], xmm7
mov rax, qword [0x140067010]
xor rax, rsp
mov qword [rbp + 0x2e0], rax
lea rcx, [rbp + 0xc0]
call fcn.140046ef0
lea rcx, [0x140068970]
cmp rcx, rax
je 0x14004e0fe
xor r8d, r8d
mov rdx, rax
call fcn.140050810
lea rcx, [rbp + 0xc0]
call fcn.14004fdd0
xor ecx, ecx
call qword [sym.imp.USER32.dll_GetSystemMetrics]
mov ebx, eax
mov ecx, 1
call qword [sym.imp.USER32.dll_GetSystemMetrics]
mov ecx, eax
lea eax, [rbx - 0x14a]
cdq
sub eax, edx
sar eax, 1
mov esi, eax
lea eax, [rcx - 0x78]
cdq
sub eax, edx
sar eax, 1
mov r14d, eax
mov dword [rbp + 0x1d0], 0x50
mov dword [rbp + 0x1d4], 0x40
lea rax, [0x14004ec70]
mov qword [rbp + 0x1d8], rax
xor r15d, r15d
mov qword [rbp + 0x1e0], r15
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov qword [rbp + 0x1e8], rax
xorps xmm0, xmm0
movdqa xmmword [rbp + 0x1f0], xmm0
xorps xmm1, xmm1
movdqa xmmword [rbp + 0x200], xmm1
mov dword [rsp + 0x60], 0xfffbf6d4
mov dword [rsp + 0x64], 0xedeff9
mov byte [rsp + 0x68], 1
lea rcx, [rsp + 0x60]
call fcn.140026ed0
lea rax, [rsp + 0x60]
mov qword [rbp + 0x210], rax
mov qword [rbp + 0x218], r15
lea rcx, [rbp + 0x1d0]
call qword [sym.imp.USER32.dll_RegisterClassExA]
mov dword [rsp + 0x60], 0xfffbf6d4
mov dword [rsp + 0x64], 0xedeff9
mov byte [rsp + 0x68], 1
lea rcx, [rsp + 0x60]
call fcn.140026ed0
mov qword [rsp + 0x58], r15
mov rax, qword [rbp + 0x1e8]
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x48], r15
mov qword [rsp + 0x40], r15
mov dword [rsp + 0x38], 5
mov dword [rsp + 0x30], 5
mov dword [rsp + 0x28], r15d
mov dword [rsp + 0x20], r15d
mov r9d, 0x80000000
lea r8, [rsp + 0x60]
mov rdx, qword [rbp + 0x210]
xor ecx, ecx
call qword [sym.imp.USER32.dll_CreateWindowExA]
mov qword [0x140069500], rax
mov rcx, rax
call fcn.14004c920
test al, al
jne 0x14004e26c
call fcn.14004ca00
mov rdx, qword [rbp + 0x1e8]
mov rcx, qword [rbp + 0x210]
call qword [sym.imp.USER32.dll_UnregisterClassA]
lea eax, [r15 + 1]
jmp 0x14004ec2d
xor edx, edx
mov rcx, qword [0x140069500]
call qword [sym.imp.USER32.dll_ShowWindow]
mov rcx, qword [0x140069500]
call qword [sym.imp.USER32.dll_UpdateWindow]
movdqa xmm0, xmmword [0x14005c180]
movdqu xmmword [rbp - 0x78], xmm0
mov dword [rbp - 0x68], 0x100b0b1
lea rcx, [rbp - 0x78]
call fcn.14004fc10
xor edx, edx
lea rcx, [rbp - 0x78]
call qword [sym.imp.USER32.dll_FindWindowA]
xor edx, edx
mov rcx, rax
call qword [sym.imp.USER32.dll_ShowWindow]
xor ecx, ecx
call fcn.14000a240
mov rdi, qword [0x1400694a0]
mov qword [rdi + 0x20], r15
or dword [rdi + 8], 0x400
call fcn.140049260
call fcn.14004b1e0
call fcn.1400495e0
mov rcx, qword [0x140069500]
call fcn.140039370
mov rcx, qword [0x1400694f0]
call fcn.140038b90
lea rdx, [rbp + 0x258]
mov rcx, qword [0x140069500]
call qword [sym.imp.USER32.dll_GetWindowRect]
xorps xmm0, xmm0
movups xmmword [rbp + 0x228], xmm0
movups xmmword [rbp + 0x238], xmm0
movups xmmword [rbp + 0x248], xmm0
movss xmm6, dword [0x14005b9d0]
movss xmm7, dword [0x14005b91c]
nop dword [rax + rax]
cmp byte [0x140069499], 0
jne 0x14004ebde
mov dword [rsp + 0x20], 1
xor r9d, r9d
xor r8d, r8d
xor edx, edx
lea rcx, [rbp + 0x228]
call qword [sym.imp.USER32.dll_PeekMessageA]
test eax, eax
je 0x14004e38d
lea rcx, [rbp + 0x228]
call qword [sym.imp.USER32.dll_TranslateMessage]
lea rcx, [rbp + 0x228]
call qword [sym.imp.USER32.dll_DispatchMessageA]
jmp 0x14004ebd1
call fcn.14004ac40
movdqa xmm0, xmmword [0x14005c4b0]
movdqa xmmword [rbp + 0xe0], xmm0
movdqa xmm1, xmmword [0x14005c690]
movdqa xmmword [rbp + 0xf0], xmm1
movdqa xmm0, xmmword [0x14005bfc0]
movdqa xmmword [rbp + 0x100], xmm0
movdqa xmm1, xmmword [0x14005c0c0]
movdqa xmmword [rbp + 0x110], xmm1
movdqa xmm0, xmmword [0x14005bb50]
movdqa xmmword [rbp + 0x120], xmm0
movdqa xmm1, xmmword [0x14005bf40]
movdqa xmmword [rbp + 0x130], xmm1
movdqa xmm0, xmmword [0x14005bf30]
movdqa xmmword [rbp + 0x140], xmm0
movdqa xmm1, xmmword [0x14005bf20]
movdqa xmmword [rbp + 0x150], xmm1
movdqa xmm0, xmmword [0x14005bb60]
movdqa xmmword [rbp + 0x160], xmm0
movdqa xmm1, xmmword [0x14005bb70]
movdqa xmmword [rbp + 0x170], xmm1
mov dword [rbp + 0x180], 0x263635
mov byte [rbp + 0x184], 1
lea rcx, [rbp + 0xe0]
call fcn.14004eda0
lea rcx, [rbp + 0xe0]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
cmp qword [0x140069560], 0
jne 0x14004e47e
cmp qword [0x140069570], 0
je 0x14004e47e
call fcn.140038c60
test al, al
je 0x14004e47e
call fcn.140039300
call fcn.14003a040
call fcn.14000ba50
movd xmm0, esi
cvtdq2ps xmm0, xmm0
movd xmm1, r14d
cvtdq2ps xmm1, xmm1
mov rax, qword [0x1400694a0]
movss dword [rax + 0x1dd4], xmm0
movss dword [rax + 0x1dd8], xmm1
mov qword [rax + 0x1ddc], r15
mov dword [rax + 0x1dc4], 2
mov byte [rax + 0x1dfc], 1
or dword [rax + 0x1dc0], 3
mov dword [rax + 0x1de4], 0x44120000
mov dword [rax + 0x1de8], 0x43b40000
mov dword [rax + 0x1dc8], 1
mov qword [rbp + 0x88], 0x3f000000
lea rdx, [rbp + 0x88]
mov ecx, 5
call fcn.140008300
lea rcx, [0x1400688f0]
call fcn.14004fd20
mov rbx, rax
movdqa xmm0, xmmword [0x14005c790]
movdqu xmmword [rbp + 0x18], xmm0
movdqa xmm1, xmmword [0x14005bac0]
movdqu xmmword [rbp + 0x28], xmm1
mov byte [rbp + 0x38], 1
lea rcx, [rbp + 0x18]
call fcn.14004eec0
mov qword [rsp + 0x20], rbx
lea r9, [0x1400695e0]
lea r8, [rbp + 0x18]
mov edx, 0x64
lea rcx, [rbp + 0x270]
call fcn.140045780
xor edx, edx
lea r8d, [rdx + 0x22]
lea rcx, [rbp + 0x270]
call fcn.140012690
mov ecx, 1
call fcn.140008390
call fcn.1400490b0
mov dword [rbp + 0x90], 0x440c0000
mov dword [rbp + 0x94], 0x42c80000
mov dword [rbp - 0x60], 0xdad2ddfb
mov word [rbp - 0x5c], 0x100
lea rcx, [rbp - 0x60]
call fcn.14004fc40
lea rdx, [rbp + 0x90]
lea rcx, [rbp - 0x60]
call fcn.140048120
mov dword [rbp + 0x98], 0x42a00000
mov dword [rbp + 0x9c], 0x41700000
mov dword [rbp - 0x28], 0xbbe3ecda
mov dword [rbp - 0x24], 0xf4fdfcd4
mov word [rbp - 0x20], 0xd3
mov byte [rbp - 0x1e], 1
lea rcx, [rbp - 0x28]
call fcn.140026ea0
xor r8d, r8d
lea rdx, [rbp + 0x98]
lea rcx, [rbp - 0x28]
call fcn.14003dac0
test al, al
je 0x14004e665
movdqa xmm0, xmmword [0x14005c170]
movdqu xmmword [rbp + 0x18], xmm0
movdqa xmm1, xmmword [0x14005c580]
movdqu xmmword [rbp + 0x28], xmm1
mov dword [rbp + 0x38], 0x100aaa7
lea rcx, [rbp + 0x18]
call fcn.14004ed40
mov dword [rbp - 0x58], 0xdbd1c3dd
mov word [rbp - 0x54], 0x100
lea rcx, [rbp - 0x58]
call fcn.14004fc40
mov dword [rsp + 0x28], 1
mov qword [rsp + 0x20], r15
xor r9d, r9d
lea r8, [rbp + 0x18]
lea rdx, [rbp - 0x58]
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_ShellExecuteA]
movaps xmm1, xmm6
xorps xmm0, xmm0
call fcn.140016340
mov dword [rbp + 0xa0], 0x42a00000
mov dword [rbp + 0xa4], 0x41700000
mov dword [rbp - 0x50], 0xc5d8d6fa
mov word [rbp - 0x4c], 0x100
lea rcx, [rbp - 0x50]
call fcn.14004fc40
xor r8d, r8d
lea rdx, [rbp + 0xa0]
lea rcx, [rbp - 0x50]
call fcn.14003dac0
test al, al
je 0x14004e73a
movdqa xmm0, xmmword [0x14005c170]
movdqu xmmword [rbp + 0x48], xmm0
movdqa xmm1, xmmword [0x14005c650]
movdqu xmmword [rbp + 0x58], xmm1
movdqa xmm0, xmmword [0x14005c070]
movdqu xmmword [rbp + 0x68], xmm0
mov dword [rbp + 0x78], 0xc8978697
mov dword [rbp + 0x7c], 0x8c908e80
mov dword [rbp + 0x80], 0xc3ca99
mov byte [rbp + 0x84], 1
lea rcx, [rbp + 0x48]
call fcn.14004ed70
mov dword [rbp - 0x48], 0xdbd1c3dd
mov word [rbp - 0x44], 0x100
lea rcx, [rbp - 0x48]
call fcn.14004fc40
mov dword [rsp + 0x28], 1
mov qword [rsp + 0x20], r15
xor r9d, r9d
lea r8, [rbp + 0x48]
lea rdx, [rbp - 0x48]
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_ShellExecuteA]
movaps xmm1, xmm6
xorps xmm0, xmm0
call fcn.140016340
mov dword [rbp + 0xa8], 0x42a00000
mov dword [rbp + 0xac], 0x41700000
mov dword [rbp - 0x38], 0xe9fcfcca
mov dword [rbp - 0x34], 0xf6eef9
mov byte [rbp - 0x30], 1
lea rcx, [rbp - 0x38]
call fcn.140026ed0
xor r8d, r8d
lea rdx, [rbp + 0xa8]
lea rcx, [rbp - 0x38]
call fcn.14003dac0
test al, al
je 0x14004e790
call fcn.14004c010
movdqa xmm0, xmmword [0x14005c380]
movdqu xmmword [rbp + 0x18], xmm0
movdqa xmm1, xmmword [0x14005c4c0]
movdqu xmmword [rbp + 0x28], xmm1
mov dword [rbp + 0x38], 0xa1a4baa0
mov dword [rbp + 0x3c], 0xb6b8bf
mov byte [rbp + 0x40], 1
lea rcx, [rbp + 0x18]
call fcn.14004ee30
lea rcx, [rbp + 0x18]
call fcn.140047fa0
movaps xmm1, xmm6
xorps xmm0, xmm0
call fcn.140016340
mov dword [rbp + 0xb0], 0x42960000
mov dword [rbp + 0xb4], 0x41700000
mov dword [rbp - 0x18], 0xd2b7fcca
mov dword [rbp - 0x14], 0xfcfbf7f2
mov word [rbp - 0x10], 0xd4
mov byte [rbp - 0xe], 1
lea rcx, [rbp - 0x18]
call fcn.140026ea0
xor r8d, r8d
lea rdx, [rbp + 0xb0]
lea rcx, [rbp - 0x18]
call fcn.14003dac0
movaps xmm1, xmm6
xorps xmm0, xmm0
call fcn.140016340
mov dword [rbp + 0xb8], 0x42480000
mov dword [rbp + 0xbc], 0x41700000
mov dword [rbp - 0x40], 0xc1ddcbf7
mov word [rbp - 0x3c], 0x100
lea rcx, [rbp - 0x40]
call fcn.14004fc40
xor r8d, r8d
lea rdx, [rbp + 0xb8]
lea rcx, [rbp - 0x40]
call fcn.14003dac0
test al, al
je 0x14004e875
mov qword [0], r15
call fcn.1400488b0
mov dword [rsp + 0x60], 0x440c0000
mov dword [rsp + 0x64], 0x438c0000
mov dword [rsp + 0x70], 0x100dcdc
lea rcx, [rsp + 0x70]
call fcn.14004edd0
mov rcx, qword [0x1400694a0]
mov rax, qword [rcx + 0x1d18]
mov byte [rax + 0xd1], 1
xor r8d, r8d
lea rdx, [rsp + 0x70]
mov rcx, qword [rcx + 0x1d18]
call fcn.140009dc0
mov edx, eax
mov dword [rsp + 0x20], r15d
mov r9b, 1
lea r8, [rsp + 0x60]
lea rcx, [rsp + 0x70]
call fcn.14000f540
call fcn.14004caf0
mov byte [rbp + 0x220], 0
lea rdx, [rbp + 0x220]
lea rcx, str.Left_4_Dead_2
call fcn.14003f500
test al, al
je 0x14004eaf4
movdqa xmm0, xmmword [0x14005c7a0]
movdqu xmmword [rbp - 8], xmm0
mov dword [rbp + 8], 0xa0b6aa86
mov dword [rbp + 0xc], 0x8dfbb3a5
mov dword [rbp + 0x10], 0x100f2ea
lea rcx, [rbp - 8]
call fcn.14004ee90
lea rdx, [rbp - 8]
xor ecx, ecx
call qword [sym.imp.USER32.dll_FindWindowA]
test rax, rax
je 0x14004eabe
movdqa xmm0, xmmword [0x14005c620]
movdqu xmmword [rbp - 0x78], xmm0
mov word [rbp - 0x68], 0x100
lea rcx, [rbp - 0x78]
call fcn.14004ef50
lea r8, [rbp - 0x78]
lea rdx, [0x140069650]
lea rcx, [rbp + 0x18]
call fcn.1400508c0
nop
mov rcx, rax
call fcn.14004fd20
mov rdx, rax
lea rcx, [rbp + 0xc0]
call fcn.14004fe30
nop
movdqa xmm0, xmmword [0x14005c170]
movdqu xmmword [rbp + 0x48], xmm0
movdqa xmm1, xmmword [0x14005c520]
movdqu xmmword [rbp + 0x58], xmm1
movdqa xmm0, xmmword [0x14005c700]
movdqu xmmword [rbp + 0x68], xmm0
mov dword [rbp + 0x78], 0x898887cc
mov word [rbp + 0x7c], 0x100
lea rcx, [rbp + 0x48]
call fcn.14004ee00
lea rdx, [rbp + 0x48]
lea rcx, [rbp + 0x190]
call fcn.14004fe30
nop
lea r8, [rbp + 0xc0]
lea rdx, [rbp + 0x190]
lea rcx, [rbp + 0x1b0]
call fcn.140046b40
lea rcx, [rbp + 0x1b0]
call fcn.14004fdd0
nop
lea rcx, [rbp + 0x190]
call fcn.14004fdd0
nop
lea rcx, [rbp + 0xc0]
call fcn.14004fdd0
nop
lea rcx, [rbp + 0x18]
call fcn.14004fdd0
mov dword [rsp + 0x74], 0xd7d2c4
mov byte [rsp + 0x78], 1
lea rcx, [rsp + 0x74]
call fcn.14004ef20
mov dword [rsp + 0x7c], 0x828bca
mov byte [rbp - 0x80], 1
lea rcx, [rsp + 0x7c]
call fcn.14004ef20
movdqa xmm0, xmmword [0x14005c7a0]
movdqu xmmword [rbp - 8], xmm0
mov dword [rbp + 8], 0xa0b6aa86
mov dword [rbp + 0xc], 0x8dfbb3a5
mov dword [rbp + 0x10], 0x100f2ea
lea rcx, [rbp - 8]
call fcn.14004ee90
lea r8, [rsp + 0x74]
lea rdx, [rsp + 0x7c]
lea rcx, [rbp - 8]
call fcn.14004c290
movdqa xmm0, xmmword [0x14005c190]
movdqu xmmword [rbp - 0x78], xmm0
mov dword [rbp - 0x68], 0xa4b3eda6
mov word [rbp - 0x64], 0xb0
mov byte [rbp - 0x62], 1
lea rcx, [rbp - 0x78]
call fcn.14004ee60
lea rcx, [rbp - 0x78]
jmp 0x14004eae6
movdqa xmm0, xmmword [0x14005c570]
movdqu xmmword [rbp - 0x78], xmm0
mov dword [rbp - 0x68], 0xb2eab1ad
mov dword [rbp - 0x64], 0x100b1a7
lea rcx, [rbp - 0x78]
call fcn.14004eef0
lea rcx, [rbp - 0x78]
mov r8d, 0x20001
xor edx, edx
call qword [sym.imp.WINMM.dll_PlaySoundA]
call fcn.14000f7f0
call fcn.140015520
call fcn.14000e2e0
mov rcx, qword [0x1400694f0]
mov rax, qword [rcx]
mov dword [rsp + 0x30], r15d
movss dword [rsp + 0x28], xmm7
mov dword [rsp + 0x20], r15d
mov r9d, 3
xor r8d, r8d
xor edx, edx
call qword [rax + 0x158]
mov rcx, qword [0x1400694f0]
mov rax, qword [rcx]
call qword [rax + 0x148]
test eax, eax
js 0x14004eb7d
call fcn.14000e850
mov rax, qword [0x1400694a0]
mov rcx, qword [rax + 0x1ef8]
mov rax, qword [rcx]
add rax, 0xa8
mov rcx, r15
cmp byte [rax], r15b
cmovne rcx, rax
call fcn.140038590
mov rcx, qword [0x1400694f0]
mov rax, qword [rcx]
call qword [rax + 0x150]
test dword [rdi + 8], 0x400
je 0x14004eb94
call fcn.14001e690
xor edx, edx
xor ecx, ecx
call fcn.14001eaa0
mov rcx, qword [0x1400694f0]
mov rax, qword [rcx]
mov qword [rsp + 0x20], r15
xor r9d, r9d
xor r8d, r8d
xor edx, edx
call qword [rax + 0x88]
cmp eax, 0x88760868
jne 0x14004ebd1
mov rcx, qword [0x1400694f0]
mov rax, qword [rcx]
call qword [rax + 0x18]
cmp eax, 0x88760869
jne 0x14004ebd1
call fcn.14004ca50
cmp dword [rbp + 0x230], 0x12
jne 0x14004e340
call fcn.140038c30
call fcn.140039780
mov rbx, qword [0x1400694a0]
mov rcx, rbx
call fcn.14000d120
mov rax, qword [0x1400694a0]
cmp rax, rbx
cmove rax, r15
mov qword [0x1400694a0], rax
mov rcx, rbx
call fcn.140027dc0
call fcn.14004ca00
mov rdx, qword [rbp + 0x1e8]
mov rcx, qword [rbp + 0x210]
call qword [sym.imp.USER32.dll_UnregisterClassA]
mov rcx, qword [rbp + 0x2e0]
xor rcx, rsp
call fcn.140052570
lea r11, [rsp + 0x410]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rdi, qword [r11 + 0x30]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
mov rsp, r11
pop r15
pop r14
pop rbp
ret
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
jmp 0x14004e0a0