Function at 0x475db0
Capabilities:
Hide graphical window

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x6dc210
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x5c8
mov eax, dword [0x7ce4e4]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebx + 8]
mov edi, dword [ebx + 0x10]
push 1
mov dword [ebp - 0x594], eax
call fcn.005cff42
add esp, 4
mov dword [ebp - 0x458], 0
lea eax, [ebp - 0x452]
mov word [ebp - 0x24a], 0
push str.LocalSogouKaomojiWndEvent
push 0x104
push eax
call fcn.005d0460
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
add esp, 0xc
cmp byte [ebp - 0x24a], 0
je 0x475e6d
lea eax, [ebp - 0x452]
push eax
push 0
push 0x1f0003
call dword [sym.imp.KERNEL32.dll_OpenEventW]
mov dword [ebp - 0x458], eax
test eax, eax
je 0x475f48
mov byte [ebp - 0x454], 1
jmp 0x475ebf
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
lea eax, [ebp - 0x452]
push eax
push 1
push 1
push 0
call dword [sym.imp.KERNEL32.dll_CreateEventW]
mov dword [ebp - 0x458], eax
test eax, eax
jne 0x475ea1
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov byte [ebp - 0x454], 1
jmp 0x475ed5
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x475f04
mov eax, dword [ebp - 0x458]
mov byte [ebp - 0x454], 1
test eax, eax
je 0x475ed5
push eax
call esi
cmp byte [ebp - 0x454], 0
mov dword [ebp - 0x458], 0
je 0x475f4f
push 0x78537c
push str.CherryWindowClass
call dword [sym.imp.USER32.dll_FindWindowW]
mov esi, eax
test esi, esi
je 0x47667e
push 1
push esi
call dword [sym.imp.USER32.dll_ShowWindow]
push esi
call dword [sym.imp.USER32.dll_SetForegroundWindow]
jmp 0x47667e
mov eax, dword [0x802b94]
mov esi, dword [ebp - 0x458]
test eax, eax
jne 0x475f26
mov ecx, 0x802b94
call fcn.004a86f0
test al, al
je 0x475f38
mov eax, dword [0x802b94]
push 0
push eax
push 0
push 0
push 4
push 6
push esi
call dword [sym.imp.ADVAPI32.dll_SetSecurityInfo]
mov ecx, dword [ebp - 0x458]
mov edx, 6
call fcn.004a8940
mov byte [ebp - 0x454], 0
lea eax, [ebp - 0x59c]
mov byte [ebp - 0x598], 0
push eax
mov dword [ebp - 0x59c], 0
call fcn.0049f040
mov ecx, eax
call fcn.0049d9a0
call fcn.00479f80
push edi
call fcn.0047e7b0
push 0x208
lea eax, [ebp - 0x220]
push 0
push eax
call fcn.005c0be0
add esp, 0xc
lea eax, [ebp - 0x220]
push 0x104
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea eax, [ebp - 0x220]
push 0x5c
push eax
call fcn.005c02be
add esp, 8
test eax, eax
je 0x475fc2
xor ecx, ecx
mov word [eax], cx
lea eax, [ebp - 0x220]
push eax
lea ecx, [ebp - 0x580]
call fcn.00499bd0
push str.SGKaomoji.cupf
lea eax, [ebp - 0x580]
push 0x791e68
push eax
call fcn.0049a160
add esp, 0xc
lea esi, [ebp - 0x574]
cmp byte [ebp - 0x464], 0
cmove esi, dword [ebp - 0x578]
call fcn.004c9520
mov ecx, dword [eax]
lea eax, [esi + 4]
push eax
call fcn.004c8b60
mov dword [ebp - 0x584], eax
test eax, eax
je 0x4765fc
mov edi, dword [eax + 0x224]
xor esi, esi
sub edi, dword [eax + 0x220]
sar edi, 2
test edi, edi
jle 0x4765fc
nop dword [eax + eax]
mov eax, dword [eax + 0x220]
push str.Theme.xml
mov eax, dword [eax + esi*4]
mov dword [ebp - 0x58c], eax
push dword [eax]
call fcn.005d0064
add esp, 8
test eax, eax
je 0x476072
mov eax, dword [ebp - 0x584]
inc esi
cmp esi, edi
jl 0x476040
jmp 0x4765fc
mov esi, dword [ebp - 0x58c]
mov eax, dword [esi + 8]
inc eax
push eax
call fcn.005be278
mov ecx, dword [esi + 4]
mov edi, eax
mov eax, dword [esi + 8]
add esp, 4
mov dword [ebp - 0x588], eax
mov dword [ebp - 0x58c], ecx
lea edx, [eax + 1]
mov dword [ebp - 0x584], edx
test eax, eax
je 0x47610c
test edi, edi
jne 0x4760b7
call fcn.005c45dc
mov dword [eax], 0x16
jmp 0x476107
test ecx, ecx
je 0x4760cc
cmp edx, eax
jb 0x4760cc
push eax
push ecx
push edi
call fcn.005c0660
add esp, 0xc
jmp 0x47610c
push edx
push 0
push edi
call fcn.005c0be0
add esp, 0xc
cmp dword [ebp - 0x58c], 0
jne 0x4760ee
call fcn.005c45dc
mov dword [eax], 0x16
jmp 0x476107
mov eax, dword [ebp - 0x584]
cmp eax, dword [ebp - 0x588]
jae 0x47610c
call fcn.005c45dc
mov dword [eax], 0x22
call fcn.005c44ae
mov eax, dword [esi + 8]
mov byte [edi + eax], 0
call fcn.004c82c0
push edi
mov ecx, dword [eax]
call fcn.004c6f30
push edi
call fcn.004eddf0
add esp, 4
xorps xmm0, xmm0
movlpd qword [ebp - 0x590], xmm0
call fcn.00479f80
lea eax, [ebp - 0x5bc]
mov dword [ebp - 0x5b8], fcn.005cff37
push eax
mov dword [ebp - 0x5b4], fcn.005cfea2
mov dword [ebp - 0x5b0], fcn.005cff1c
mov dword [ebp - 0x5ac], 0
mov dword [ebp - 0x5a8], 0x8000
mov dword [ebp - method.common::allocator_unsigned_char__class_common::TAllocDefault_.virtual_0], vtable.common::t_heap.0
mov dword [ebp - 0x5a4], 0
mov byte [ebp - 0x5a0], 0
call fcn.0047c6c0
push 0x785ff8
push str.Main
lea ecx, [ebp - 0x5bc]
call fcn.004a4b30
mov ecx, eax
test ecx, ecx
je 0x47636f
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4761b4
sub ecx, edx
sar ecx, 1
je 0x47636f
push 0x786000
push str.Main
lea ecx, [ebp - 0x5bc]
call fcn.004a4b30
mov ecx, eax
test ecx, ecx
je 0x47636f
lea edx, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4761f0
sub ecx, edx
sar ecx, 1
je 0x47636f
push 0x785ff8
push str.Main
lea ecx, [ebp - 0x5bc]
xor esi, esi
call fcn.004a4b30
mov edx, eax
test edx, edx
je 0x476243
mov ecx, edx
lea edi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x476227
sub ecx, edi
sar ecx, 1
je 0x476243
push edx
call fcn.005cb06c
add esp, 4
mov esi, eax
push 0x786000
push str.Main
lea ecx, [ebp - 0x5bc]
xor edi, edi
call fcn.004a4b30
mov edx, eax
test edx, edx
je 0x476290
mov ecx, edx
lea eax, [ecx + 2]
mov dword [ebp - 0x588], eax
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x476270
sub ecx, dword [ebp - 0x588]
sar ecx, 1
je 0x476290
push edx
call fcn.005cb06c
add esp, 4
mov edi, eax
mov dword [ebp - 4], 1
mov ecx, dword [ebp - 0x5ac]
mov dword [ebp - method.common::allocator_unsigned_char__class_common::TAllocDefault_.virtual_0], vtable.common::allocator_unsigned_char__class_common::TAllocDefault_.0
test ecx, ecx
je 0x4762cd
nop dword [eax + eax]
mov eax, dword [ecx + 4]
push ecx
mov dword [ebp - 0x5ac], eax
call dword [ebp - 0x5b0]
mov ecx, dword [ebp - 0x5ac]
add esp, 4
test ecx, ecx
jne 0x4762b0
push 2
xorps xmm0, xmm0
mov dword [ebp - 4], 0xffffffff
push edi
push esi
movups xmmword [ebp - 0x248], xmm0
movups xmmword [ebp - 0x238], xmm0
movq qword [ebp - 0x228], xmm0
call dword [sym.imp.USER32.dll_MonitorFromPoint]
lea ecx, [ebp - 0x248]
mov dword [ebp - 0x248], 0x28
push ecx
push eax
call dword [sym.imp.USER32.dll_GetMonitorInfoW]
test esi, esi
jns 0x47631f
mov dword [ebp - 0x584], 0
jmp 0x476342
mov ecx, dword [ebp - 0x22c]
lea eax, [esi + 0x25b]
cmp eax, ecx
jle 0x476335
lea esi, [ecx - 0x25b]
xor eax, eax
test esi, esi
cmovs esi, eax
mov dword [ebp - 0x584], esi
test edi, edi
jns 0x47634d
xor edi, edi
jmp 0x47641e
mov ecx, dword [ebp - 0x228]
lea eax, [edi + 0x1a4]
cmp eax, ecx
jle 0x476363
lea edi, [ecx - 0x1a4]
xor eax, eax
test edi, edi
cmovs edi, eax
jmp 0x47641e
mov dword [ebp - 4], 0
mov ecx, dword [ebp - 0x5ac]
mov dword [ebp - method.common::allocator_unsigned_char__class_common::TAllocDefault_.virtual_0], vtable.common::allocator_unsigned_char__class_common::TAllocDefault_.0
test ecx, ecx
je 0x4763ad
nop word [eax + eax]
mov eax, dword [ecx + 4]
push ecx
mov dword [ebp - 0x5ac], eax
call dword [ebp - 0x5b0]
mov ecx, dword [ebp - 0x5ac]
add esp, 4
test ecx, ecx
jne 0x476390
push 2
push dword [ebp - 0x58c]
mov dword [ebp - 4], 0xffffffff
push dword [ebp - 0x590]
call dword [sym.imp.USER32.dll_MonitorFromPoint]
lea ecx, [ebp - 0x248]
mov dword [ebp - 0x248], 0x28
push ecx
push eax
call dword [sym.imp.USER32.dll_GetMonitorInfoW]
mov eax, dword [ebp - 0x22c]
sub eax, dword [ebp - 0x234]
mov ecx, dword [ebp - 0x230]
sub eax, 0x25b
cdq
sub eax, edx
sar eax, 1
add eax, dword [ebp - 0x234]
mov dword [ebp - 0x584], eax
mov eax, dword [ebp - 0x228]
sub eax, ecx
sub eax, 0x1a4
cdq
sub eax, edx
mov edi, eax
sar edi, 1
add edi, ecx
push ecx
mov ecx, dword [ebp - 0x594]
call fcn.004cd270
add esp, 4
push 0x1b8
call fcn.005be217
add esp, 4
mov esi, eax
mov ecx, esi
call fcn.004cbc70
mov dword [esi], vtable.t_MainWnd.0
mov dword [esi + 0x170], 0
mov dword [esi + 0x174], 0
mov dword [esi + 0x178], 0
mov dword [esi + 0x17c], 0
mov dword [esi + 0x180], 0
mov dword [esi + 0x184], 0
mov dword [esi + 0x190], 0
mov dword [esi + 0x194], 0
mov dword [esi + 0x198], 0
mov dword [esi + 0x188], 0
mov dword [esi + 0x18c], 0
mov dword [esi + 0x19c], 0
mov dword [esi + 0x1a0], 0
mov dword [esi + 0x1a4], 0
mov dword [esi + 0x1a8], 0
mov dword [esi + 0x1ac], 0
mov dword [esi + 0x1b0], 0
call fcn.00479f80
push ecx
mov ecx, esi
mov dword [eax + 4], esi
mov eax, dword [ebp - 0x594]
push eax
push 0
push 0x1a4
push 0x25b
push edi
push dword [ebp - 0x584]
mov dword [esi + 0x1a4], eax
push 0x800a0000
push 0x78537c
push 0xc0008
call fcn.004cbe90
cmp byte [esi + 0x30], 1
je 0x476545
mov eax, dword [esi]
mov ecx, esi
push 1
mov byte [esi + 0x30], 1
call dword [eax + 0x48]
cmp dword [esi + 0x8c], esi
je 0x476551
mov byte [esi + 0x64], 1
push dword [esi + 0x104]
call dword [sym.imp.USER32.dll_IsWindowEnabled]
neg eax
sbb eax, eax
neg eax
add eax, 4
push eax
push dword [esi + 0x104]
call dword [sym.imp.USER32.dll_ShowWindow]
mov ecx, esi
call fcn.004ccdf0
push 0
push 0
xorps xmm0, xmm0
mov dword [ebp - 0x5c0], 0
push 0
lea eax, [ebp - 0x5d8]
movq qword [ebp - 0x5c8], xmm0
push eax
movups xmmword [ebp - 0x5d8], xmm0
call dword [sym.imp.USER32.dll_GetMessageW]
test eax, eax
je 0x4765f5
mov edi, dword [sym.imp.USER32.dll_IsWindow]
cmp eax, 0xffffffff
je 0x4765f5
push dword [esi + 0x104]
call edi
test eax, eax
je 0x4765f5
lea eax, [ebp - 0x5d8]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [ebp - 0x5d8]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageW]
push 0
push 0
push 0
lea eax, [ebp - 0x5d8]
push eax
call dword [sym.imp.USER32.dll_GetMessageW]
test eax, eax
jne 0x4765b3
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 8]
cmp byte [ebp - 0x464], 0
mov dword [ebp - method.t_str.virtual_0], vtable.t_str.0
jne 0x476628
mov eax, dword [ebp - 0x578]
lea ecx, [ebp - 0x574]
cmp eax, ecx
je 0x476628
push eax
call fcn.005cff1c
add esp, 4
mov eax, dword [ebp - 0x59c]
test eax, eax
je 0x47667e
mov esi, eax
mov eax, dword [esi + 0x124]
mov dword [ebp - 0x59c], eax
test esi, esi
je 0x47667a
mov dword [esi], vtable.t_str.0
cmp byte [esi + 0x11c], 0
jne 0x476666
mov ecx, dword [esi + 8]
lea eax, [esi + 0xc]
cmp ecx, eax
je 0x476666
push ecx
call fcn.005cff1c
add esp, 4
push 0x128
push esi
call fcn.005be247
mov eax, dword [ebp - 0x59c]
add esp, 8
test eax, eax
jne 0x476632
cmp byte [ebp - 0x249], 0
jne 0x476698
mov eax, dword [ebp - 0x458]
test eax, eax
je 0x476698
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.005be209
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0x10