Function at 0x401654
Capabilities:
Hide graphical window

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x100
mov qword [rbp + 0x10], rcx
mov qword [rbp + 0x18], rdx
mov eax, 0
mov dword [rbp - 0x68], eax
movabs rax, 0
mov r10, rax
mov rcx, r10
call sub.kernel32.dll_GetModuleHandleA
mov qword [rbp - 0x60], rax
mov eax, 3
mov dword [rbp - 0x48], eax
lea rax, [0x004024a6]
mov qword [rbp - 0x40], rax
mov eax, 0
mov dword [rbp - 0x38], eax
mov eax, 0
mov dword [rbp - 0x34], eax
mov rax, qword [rbp - 0x60]
mov qword [rbp - 0x30], rax
movabs rax, 0x7f00
mov r11, rax
movabs rax, 0
mov r10, rax
mov rcx, r10
mov rdx, r11
call sub.user32.dll_LoadIconA
mov qword [rbp - 0x28], rax
movabs rax, 0x7f00
mov r11, rax
movabs rax, 0
mov r10, rax
mov rcx, r10
mov rdx, r11
call sub.user32.dll_LoadCursorA
mov qword [rbp - 0x20], rax
mov eax, 0
mov r10, rax
mov rcx, r10
call sub.gdi32.dll_GetStockObject
mov qword [rbp - 0x18], rax
movabs rax, 0
mov qword [rbp - 0x10], rax
mov eax, dword [rbp + 0x18]
cmp eax, 0
je 0x401738
mov rax, qword [str.tkLibWClass]
mov qword [rbp - 8], rax
jmp 0x401743
mov rax, qword [0x00418200]
mov qword [rbp - 8], rax
mov eax, dword [rbp + 0x18]
cmp eax, 0
je 0x40176a
lea rax, [rbp - 0x48]
mov r10, rax
mov rcx, r10
call sub.user32.dll_RegisterClassW
movzx eax, ax
mov word [rbp - 0x62], ax
jmp 0x401780
lea rax, [rbp - 0x48]
mov r10, rax
mov rcx, r10
call sub.user32.dll_RegisterClassA
movzx eax, ax
mov word [rbp - 0x62], ax
mov eax, 0
movzx ecx, word [rbp - 0x62]
cmp eax, ecx
jne 0x4017ab
lea rax, [0x00418f28]
mov r10, rax
mov rcx, r10
call fcn.00403bb4
mov eax, dword [rbp - 0x68]
jmp 0x401bf3
mov eax, dword [0x004180d0]
mov dword [rbp - 0x58], eax
mov eax, dword [0x004180d0]
mov ecx, dword [0x004180d8]
add eax, ecx
mov dword [rbp - 0x50], eax
mov eax, dword [0x004180d4]
mov dword [rbp - 0x54], eax
mov eax, dword [0x004180d4]
mov ecx, dword [0x004180dc]
add eax, ecx
mov dword [rbp - 0x4c], eax
mov eax, 0
mov r8, rax
mov eax, 0xcf0000
mov r11, rax
lea rax, [rbp - 0x58]
mov r10, rax
mov rcx, r10
mov rdx, r11
call sub.user32.dll_AdjustWindowRect
mov eax, dword [rbp + 0x18]
cmp eax, 0
je 0x4018ef
mov eax, dword [0x004180e4]
cmp eax, 0
je 0x401821
jmp 0x401829
mov eax, dword [rbp - 0x58]
jmp 0x40182e
mov eax, 0x80000000
mov ecx, dword [0x004180e4]
mov qword [rbp - 0x70], rax
cmp ecx, 0
je 0x401846
jmp 0x40184e
mov eax, dword [rbp - 0x54]
jmp 0x401853
mov eax, 0x80000000
mov ecx, dword [rbp - 0x50]
mov edx, dword [rbp - 0x58]
sub ecx, edx
mov edx, dword [rbp - 0x4c]
mov qword [rbp - 0x78], rax
mov eax, dword [rbp - 0x54]
sub edx, eax
movabs rax, 0
mov qword [rsp + 0x58], rax
mov rax, qword [rbp - 0x60]
mov qword [rsp + 0x50], rax
movabs rax, 0
mov qword [rsp + 0x48], rax
movabs rax, 0
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], rdx
mov qword [rsp + 0x30], rcx
mov eax, dword [rbp - 0x78]
mov qword [rsp + 0x28], rax
mov eax, dword [rbp - 0x70]
mov qword [rsp + 0x20], rax
mov eax, 0x6cf0000
mov r9, rax
mov rax, qword [rbp + 0x10]
mov r8, rax
mov rax, qword [str.tkLibWClass]
mov r11, rax
mov eax, 0
mov r10, rax
mov rcx, r10
mov rdx, r11
call sub.user32.dll_CreateWindowExW
mov qword [0x004180e8], rax
jmp 0x4019d2
mov eax, dword [0x004180e4]
cmp eax, 0
je 0x401903
jmp 0x40190b
mov eax, dword [rbp - 0x58]
jmp 0x401910
mov eax, 0x80000000
mov ecx, dword [0x004180e4]
mov qword [rbp - 0x80], rax
cmp ecx, 0
je 0x401928
jmp 0x401930
mov eax, dword [rbp - 0x54]
jmp 0x401935
mov eax, 0x80000000
mov ecx, dword [rbp - 0x50]
mov edx, dword [rbp - 0x58]
sub ecx, edx
mov edx, dword [rbp - 0x4c]
mov qword [rbp - 0x88], rax
mov eax, dword [rbp - 0x54]
sub edx, eax
movabs rax, 0
mov qword [rsp + 0x58], rax
mov rax, qword [rbp - 0x60]
mov qword [rsp + 0x50], rax
movabs rax, 0
mov qword [rsp + 0x48], rax
movabs rax, 0
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], rdx
mov qword [rsp + 0x30], rcx
mov eax, dword [rbp - 0x88]
mov qword [rsp + 0x28], rax
mov eax, dword [rbp - 0x80]
mov qword [rsp + 0x20], rax
mov eax, 0x6cf0000
mov r9, rax
mov rax, qword [rbp + 0x10]
mov r8, rax
mov rax, qword [0x00418200]
mov r11, rax
mov eax, 0
mov r10, rax
mov rcx, r10
mov rdx, r11
call sub.user32.dll_CreateWindowExA
mov qword [0x004180e8], rax
movabs rax, 0
mov rcx, qword [0x004180e8]
cmp rax, rcx
je 0x401bbc
mov eax, dword [0x004180e4]
cmp eax, 0
je 0x401a8b
lea rax, [rbp - 0x58]
mov r11, rax
mov rax, qword [0x004180e8]
mov r10, rax
mov rcx, r10
mov rdx, r11
call sub.user32.dll_GetWindowRect
mov eax, 0x20
mov r10, rax
mov rcx, r10
call sub.user32.dll_GetSystemMetrics
mov ecx, dword [rbp - 0x58]
add ecx, eax
mov dword [0x004180d0], ecx
mov eax, 4
mov r10, rax
mov rcx, r10
call sub.user32.dll_GetSystemMetrics
mov ecx, dword [rbp - 0x54]
add ecx, eax
mov eax, 6
mov r10, rax
mov qword [rbp - 0x90], rcx
mov rcx, r10
call sub.user32.dll_GetSystemMetrics
mov ecx, dword [rbp - 0x90]
sub ecx, eax
mov eax, 0x21
mov r10, rax
mov qword [rbp - 0x98], rcx
mov rcx, r10
call sub.user32.dll_GetSystemMetrics
mov ecx, dword [rbp - 0x98]
add ecx, eax
mov dword [0x004180d4], ecx
mov rax, qword [0x004180e8]
mov r10, rax
mov rcx, r10
call sub.user32.dll_GetDC
mov qword [0x004180f0], rax
movabs rax, 0
mov rcx, qword [0x004180f0]
cmp rax, rcx
je 0x401b98
mov eax, 0xa
mov r11, rax
mov rax, qword [0x004180e8]
mov r10, rax
mov rcx, r10
mov rdx, r11
call sub.user32.dll_ShowWindow
mov eax, dword [0x004180e0]
mov r11, rax
mov rax, qword [0x004180f0]
mov r10, rax
mov rcx, r10
mov rdx, r11
call fcn.004039d2
cmp eax, 0
je 0x401b93
mov rax, qword [0x004180f0]
mov r10, rax
mov rcx, r10
call sub.opengl32.dll_wglCreateContext
mov qword [0x004180f8], rax
movabs rax, 0
mov rcx, qword [0x004180f8]
cmp rax, rcx
je 0x401b81
mov rax, qword [0x004180f8]
mov r11, rax
mov rax, qword [0x004180f0]
mov r10, rax
mov rcx, r10
mov rdx, r11
call sub.opengl32.dll_wglMakeCurrent
cmp eax, 0
je 0x401b6a
mov eax, 1
mov dword [rbp - 0x68], eax
jmp 0x401b7c
lea rax, str.wglMakeCurrent_Failed_n
mov r10, rax
mov rcx, r10
call fcn.00403bb4
jmp 0x401b93
lea rax, str.wglCreateContext_Failed_n
mov r10, rax
mov rcx, r10
call fcn.00403bb4
jmp 0x401bb7
mov rax, qword [0x004180e8]
mov r11, rax
lea rax, str.Could_not_get_an_HDC_for_window_0x_08lX_n
mov r10, rax
mov rcx, r10
mov rdx, r11
call fcn.00403bb4
jmp 0x401bce
lea rax, str.create_window_failed_n
mov r10, rax
mov rcx, r10
call fcn.00403bb4
mov eax, 0
mov ecx, dword [rbp - 0x68]
cmp eax, ecx
jne 0x401bf0
mov rax, qword [0x004180e8]
mov r10, rax
mov rcx, r10
call fcn.00403f28
mov eax, dword [rbp - 0x68]
leave
ret