Function at 0x424690
Capabilities:
Hide graphical window

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x118
mov eax, dword [0x008d9200]
test al, 0x10
mov rsi, rcx
mov ebp, edx
je 0x4246d0
test al, 0x80
jne 0x4246d0
add rsp, 0x118
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
lea rbx, [rsp + 0xc0]
xor eax, eax
mov ecx, 0xa
lea r12, str.classSDIMain
mov rdi, rbx
mov edx, 0xc8
rep stosq qword [rdi], rax
mov rcx, qword [0x008d9348]
lea rax, [0x004275f0]
mov dword [rsp + 0xc0], 0x50
mov qword [rsp + 0xc8], rax
mov qword [rsp + 0xd8], rcx
call qword [sym.imp.USER32.dll_LoadIconW]
xor ecx, ecx
mov edx, 0x7f00
mov qword [rsp + 0xe0], rax
call qword [sym.imp.USER32.dll_LoadCursorW]
mov qword [rsp + 0x100], r12
mov rcx, rbx
mov rdi, qword [sym.imp.USER32.dll_RegisterClassExW]
mov qword [rsp + 0xe8], rax
mov qword [rsp + 0xf0], 6
call rdi
test ax, ax
jne 0x424782
mov r8, qword [rsp + 0x100]
lea rdx, str.ERROR_in_gui__:_failed_to_register__S_class_n
mov rcx, qword [0x00826910]
call fcn.0041db00
jmp 0x4246b6
lea rax, [0x0041fd40]
mov rcx, rbx
mov qword [rsp + 0xe0], 0
lea r13, str.classSDIPopup
mov qword [rsp + 0xc8], rax
mov qword [rsp + 0x100], r13
call rdi
test ax, ax
je 0x424840
lea rax, [0x00422aa0]
mov rcx, rbx
mov qword [rsp + 0xc8], rax
lea rax, str.classSDIField
mov qword [rsp + 0x100], rax
call rdi
test ax, ax
jne 0x424880
mov r8, qword [rsp + 0x100]
lea rdx, str.ERROR_in_gui__:_failed_to_register__S_class_n
mov rcx, qword [0x00826910]
call fcn.0041db00
mov rcx, qword [0x00826970]
mov rdx, r12
lea r9, str.classMain
lea r8, [0x007fdfcc]
call fcn.0043e700
mov rcx, qword [0x00826970]
lea r9, str.classPopup
mov rdx, r13
lea r8, [0x007fdfcc]
call fcn.0043e700
jmp 0x4246b6
mov r8, qword [rsp + 0x100]
lea rdx, str.ERROR_in_gui__:_failed_to_register__S_class_n
mov rcx, qword [0x00826910]
call fcn.0041db00
mov rcx, qword [0x00826970]
lea r9, str.classMain
mov rdx, r12
lea r8, [0x007fdfcc]
call fcn.0043e700
jmp 0x4246b6
mov rax, qword [0x008d9348]
mov r9d, 0x2cf0000
mov qword [rsp + 0x58], 0
mov ecx, 0x80000
mov qword [rsp + 0x48], 0
lea r8, [0x007fdff0]
mov qword [rsp + 0x40], 0
mov qword [rsp + 0x50], rax
mov rax, qword [0x00828d60]
mov edx, dword [rax + 0x2a8]
mov dword [rsp + 0x38], edx
mov eax, dword [rax + 0x290]
mov rdx, r12
mov dword [rsp + 0x28], 0x80000000
mov dword [rsp + 0x20], 0x80000000
mov dword [rsp + 0x30], eax
call qword [sym.imp.USER32.dll_CreateWindowExW]
test rax, rax
mov qword [rsi + 0x50], rax
je 0x424e7f
mov eax, dword [0x008d9210]
test eax, eax
je 0x424e16
cmp eax, 2
je 0x424e46
test eax, eax
je 0x4249f0
test byte [0x008d9200], 0x10
mov eax, 0
mov rcx, qword [rsi + 0x50]
lea rbx, [rsp + 0x90]
cmovne ebp, eax
mov edx, ebp
call qword [sym.imp.USER32.dll_ShowWindow]
mov r15, qword [sym.imp.USER32.dll_SendMessageW]
mov r12, qword [sym.imp.USER32.dll_MsgWaitForMultipleObjectsEx]
mov rbp, qword [sym.imp.USER32.dll_PeekMessageW]
mov r14, qword [sym.imp.USER32.dll_TranslateMessage]
mov r13, qword [sym.imp.USER32.dll_DispatchMessageW]
mov qword [rsp + 0x68], r15
mov edi, 0xffffffff
nop dword [rax]
xor edx, edx
xor ecx, ecx
mov dword [rsp + 0x20], 2
mov r8d, edi
mov r9d, 0x4ff
call r12
cmp eax, 0xc0
je 0x424970
nop
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov dword [rsp + 0x20], 1
mov rcx, rbx
call rbp
test eax, eax
je 0x424964
mov eax, dword [rsp + 0x98]
cmp eax, 0x12
je 0x4249f0
cmp eax, 0x100
je 0x424a60
cmp eax, 0x101
je 0x424af0
cmp eax, 0x104
jne 0x4249dd
cmp qword [rsp + 0xa0], 0x12
je 0x424990
mov rcx, rbx
call r14
mov rcx, rbx
call r13
jmp 0x424990
mov rcx, qword [0x00826970]
lea r9, str.classMain
lea r8, [0x007fdfcc]
lea rdx, str.classSDIMain
call fcn.0043e700
mov rcx, qword [0x00826970]
lea r9, str.classPopup
lea r8, [0x007fdfcc]
lea rdx, str.classSDIPopup
call fcn.0043e700
mov rcx, qword [0x00826970]
lea r9, str.classField
lea r8, [0x007fdfcc]
lea rdx, str.classSDIField
call fcn.0043e700
jmp 0x4246b6
test byte [rsp + 0xab], 0x40
mov rax, qword [rsp + 0xa0]
je 0x424b40
cmp rax, 0x20
je 0x424c57
mov rdx, rax
and rdx, 0xfffffffffffffffd
cmp rdx, 0x25
jne 0x424a9a
cmp dword [rsi + 0x80], 5
je 0x424d70
cmp rax, 0x25
je 0x424bf0
cmp rax, 0x27
je 0x424b90
cmp rax, 0x26
je 0x424d93
cmp rax, 0x28
jne 0x424ad3
mov edx, 1
mov rcx, rsi
call fcn.004244a0
mov rax, qword [rsp + 0xa0]
cmp rax, 9
je 0x424ca0
mov eax, dword [rsp + 0x98]
jmp 0x4249cb
mov rdx, qword [rsp + 0xa0]
cmp rdx, 0x11
je 0x424cc0
cmp rdx, 0x20
je 0x424cc0
cmp rdx, 0x20
je 0x424b30
lea rcx, [rdx - 0xa0]
cmp rcx, 1
jbe 0x424b29
cmp rdx, 0x10
jne 0x4249cb
mov dword [rsi + 0x7c], 0
mov dword [rsi + 0x78], 0
jmp 0x4249cb
cmp rax, 0x11
je 0x424d12
cmp rax, 0x20
je 0x424d12
cmp rax, 0x20
je 0x424c50
lea rdx, [rax - 0xa0]
cmp rdx, 1
jbe 0x424b75
cmp rax, 0x10
jne 0x424a80
mov dword [rsi + 0x7c], 1
mov dword [rsi + 0x78], 1
jmp 0x424a80
cmp dword [rsi + 0x80], 1
jne 0x424add
mov rcx, qword [0x007e36f0]
lea rax, [rsp + 0x7c]
xor r8d, r8d
xor edx, edx
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x80]
call fcn.0042cb50
mov rdx, qword [rsp + 0x80]
mov r8d, 1
mov rcx, qword [0x007e36f0]
call fcn.0042da10
mov rax, qword [rsp + 0xa0]
jmp 0x424aae
cmp dword [rsi + 0x80], 1
jne 0x424add
mov rcx, qword [0x007e36f0]
lea rax, [rsp + 0x7c]
xor r8d, r8d
xor edx, edx
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x80]
call fcn.0042cb50
mov rdx, qword [rsp + 0x80]
mov r8d, 2
mov rcx, qword [0x007e36f0]
call fcn.0042da10
mov rax, qword [rsp + 0xa0]
jmp 0x424aa4
mov dword [rsi + 0x78], 1
mov eax, dword [rsi + 0x80]
test eax, eax
je 0x424add
cmp eax, 1
je 0x424ddc
mov rcx, qword [rsi + 0x50]
xor r9d, r9d
xor r8d, r8d
mov edx, 0x201
call r15
mov rcx, qword [rsi + 0x50]
xor r9d, r9d
xor r8d, r8d
mov edx, 0x202
call r15
mov rax, qword [rsp + 0xa0]
jmp 0x424a80
mov edx, dword [rsi + 0x7c]
test edx, edx
jne 0x424db0
mov edx, 1
mov rcx, rsi
call fcn.00424390
jmp 0x424add
mov rax, qword [rsi + 0x58]
xor edx, edx
xor r9d, r9d
xor r8d, r8d
mov rcx, qword [0x008d92d0]
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
mov qword [rsp + 0x30], rax
call fcn.004079c0
mov rdx, qword [rsp + 0xa0]
mov eax, dword [rsp + 0x98]
cmp rdx, 0x11
jne 0x424b0c
mov dword [rsi + 0x74], 0
jmp 0x4249cb
lea rcx, [rsp + 0x80]
call qword [sym.imp.USER32.dll_GetCursorPos]
mov eax, dword [rsp + 0x80]
mov edx, dword [rsp + 0x84]
lea ecx, [rax + 1]
call qword [sym.imp.USER32.dll_SetCursorPos]
mov edx, dword [rsp + 0x84]
mov ecx, dword [rsp + 0x80]
call qword [sym.imp.USER32.dll_SetCursorPos]
mov rax, qword [rsp + 0xa0]
cmp rax, 0x11
jne 0x424b54
mov dword [rsi + 0x74], 1
jmp 0x424add
xor edx, edx
cmp rax, 0x25
mov rcx, rsi
sete dl
neg edx
or edx, 1
call fcn.004244a0
mov rax, qword [rsp + 0xa0]
jmp 0x424a9a
mov edx, 0xffffffff
mov rcx, rsi
call fcn.004244a0
mov rax, qword [rsp + 0xa0]
jmp 0x424ad3
mov edx, 0xffffffff
mov rcx, rsi
call fcn.00424390
cmp qword [rsp + 0xa0], 9
jne 0x424add
mov eax, dword [rsi + 0x7c]
test eax, eax
jne 0x4249dd
jmp 0x424cab
mov rdi, qword [rsp + 0x68]
xor r9d, r9d
xor r8d, r8d
mov edx, 0x201
mov rcx, qword [rsi + 0x58]
mov rax, rdi
call rax
mov rcx, qword [rsi + 0x58]
xor r9d, r9d
xor r8d, r8d
mov edx, 0x202
mov rax, rdi
call rax
mov rax, qword [rsp + 0xa0]
jmp 0x424a80
lea r9, [0x0041f8e0]
xor r8d, r8d
mov qword [rsp + 0x20], 0
mov edx, 0x12d
mov rcx, qword [0x008d9348]
call qword [sym.imp.USER32.dll_DialogBoxParamW]
mov eax, dword [0x008d9210]
jmp 0x424908
mov rax, qword [0x008269c0]
or dword [0x008d9200], 0x20
mov rcx, qword [rax]
mov rax, qword [rcx]
call qword [rax + 0x20]
mov rax, qword [0x00828c10]
mov rcx, qword [0x008d9350]
or dword [rax], 8
mov rax, qword [rcx]
call qword [rax + 0x20]
mov eax, dword [0x008d9210]
jmp 0x424911
mov rcx, qword [0x00826910]
mov r8, r12
lea rdx, str.ERROR_in_gui__:_failed_to_create__S_window_n
call fcn.0041db00
jmp 0x4246b6