Function at 0x48e870
Capabilities:
Accept command line arguments

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4dc82d
mov eax, dword fs:[0]
push eax
sub esp, 0x60
mov eax, dword [0x51a3c4]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push ecx
push 0x4e2f50
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
call fcn.00482490
add esp, 0xc
xor esi, esi
push 1
call fcn.004790b0
mov ecx, eax
call fcn.0047b2b0
mov eax, dword fs:[0x2c]
mov ecx, dword [0x5229d0]
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x522178]
cmp eax, dword [ecx + 4]
jg 0x48ec06
movzx eax, byte [0x522174]
neg eax
sbb eax, eax
and eax, 0x800
push eax
push 0
push 0x4e2ed8
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
push 0xa
xor eax, eax
mov dword [ebp - 0x28], esi
push str.resources_
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x14], 7
mov word [ebp - 0x28], ax
call fcn.00408d10
push 0x4f32b7
push 0x4e2f08
push 0xca
mov dword [ebp - 4], 0
call fcn.0040af20
add esp, 0xc
lea eax, [ebp - 0x28]
cmp dword [ebp - 0x14], 8
jb 0x48e94a
mov eax, dword [ebp - 0x28]
push 2
push str.langzh_CN
push str.themesdefault
push eax
call fcn.0040ae40
mov edx, dword [ebp - 0x14]
add esp, 0x10
mov dword [ebp - 4], 0xffffffff
cmp edx, 8
jb 0x48e9a0
mov ecx, dword [ebp - 0x28]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x48e996
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x48ec52
push edx
push ecx
call fcn.004a42a7
add esp, 8
xor eax, eax
mov dword [ebp - 0x18], 0
push eax
mov dword [ebp - 0x14], 7
mov word [ebp - 0x28], ax
call dword [sym.imp.ole32.dll_OleInitialize]
call fcn.0048a2b0
test al, al
je 0x48ebcf
xor eax, eax
mov dword [ebp - 0x60], vtable.WTL::CMessageLoop.0
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], eax
mov ebx, dword [0x5225e0]
add ebx, 0x10
mov dword [ebp - 4], 1
push ebx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov esi, dword [0x522638]
mov edi, eax
push 4
mov eax, dword [esi + 8]
inc eax
push eax
push dword [esi]
call fcn.004b2c40
add esp, 0xc
test eax, eax
je 0x48ea8b
mov dword [esi], eax
mov eax, dword [esi + 8]
push 4
inc eax
push eax
push dword [esi + 4]
call fcn.004b2c40
mov ecx, eax
add esp, 0xc
test ecx, ecx
je 0x48ea8b
mov eax, dword [esi + 8]
mov dword [esi + 4], ecx
lea edx, [eax*4]
mov eax, dword [esi]
add eax, edx
je 0x48ea7c
mov dword [eax], edi
mov ecx, dword [esi + 4]
lea eax, [edx + ecx]
test eax, eax
je 0x48ea88
lea ecx, [ebp - 0x60]
mov dword [eax], ecx
inc dword [esi + 8]
push ebx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov edi, dword [sym.imp.USER32.dll_PeekMessageW]
xor esi, esi
mov ebx, 1
nop
test ebx, ebx
je 0x48eac7
push 0
push 0
push 0
push 0
lea eax, [ebp - 0x44]
push eax
call edi
test eax, eax
jne 0x48eac7
mov eax, dword [ebp - 0x60]
lea ecx, [ebp - 0x60]
push esi
call dword [eax + 8]
inc esi
test eax, eax
jne 0x48eaa4
xor ebx, ebx
push 0
push 0
push 0
lea eax, [ebp - 0x44]
push eax
call dword [sym.imp.USER32.dll_GetMessageW]
cmp eax, 0xffffffff
je 0x48eaa0
test eax, eax
je 0x48eb18
lea eax, [ebp - 0x44]
push eax
mov eax, dword [ebp - 0x60]
lea ecx, [ebp - 0x60]
call dword [eax + 4]
test eax, eax
jne 0x48eb05
lea eax, [ebp - 0x44]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [ebp - 0x44]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageW]
lea eax, [ebp - 0x44]
push eax
mov eax, dword [ebp - 0x60]
lea ecx, [ebp - 0x60]
call dword [eax + 0xc]
test eax, eax
je 0x48eaa0
jmp 0x48ea98
mov ebx, dword [0x5225e0]
mov eax, dword [ebp - 0x3c]
add ebx, 0x10
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x6c], ebx
push ebx
mov byte [ebp - 4], 2
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov byte [ebp - 0x68], 1
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov edi, dword [0x522638]
mov esi, eax
xor eax, eax
mov edx, dword [edi + 8]
test edx, edx
jle 0x48eb6d
mov ecx, dword [edi]
cmp dword [ecx], esi
je 0x48eb60
inc eax
add ecx, 4
cmp eax, edx
jl 0x48eb52
jmp 0x48eb6d
cmp eax, 0xffffffff
je 0x48eb6d
push eax
mov ecx, edi
call fcn.0048e730
push ebx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [ebp - 0x50]
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x60], vtable.WTL::CMessageLoop.0
test eax, eax
je 0x48eb99
push eax
call fcn.004b2c1a
add esp, 4
mov dword [ebp - 0x50], 0
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 0
test eax, eax
je 0x48ebbe
push eax
call fcn.004b2c1a
add esp, 4
mov dword [ebp - 0x5c], 0
mov esi, dword [ebp - 0x64]
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x54], 0
call fcn.0040ae60
call dword [sym.imp.ole32.dll_OleUninitialize]
call fcn.004790b0
mov ecx, eax
call fcn.0047b3d0
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004a44be
mov esp, ebp
pop ebp
ret 0xc
push 0x522178
call fcn.004a43e8
add esp, 4
cmp dword [0x522178], 0xffffffff
jne 0x48e8e0
push str.AddDllDirectory
push str.Kernel32.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
push 0x522178
setne byte [0x522174]
call fcn.004a439e
add esp, 4
jmp 0x48e8e0
call fcn.004aba7f
int3