Function at 0x4031f0
Capabilities:
Create process on windows
Delete file
Query environment variable
Set current directory

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4079c4
mov eax, dword fs:[0]
push eax
sub esp, 0x300
mov eax, dword [0x40c008]
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
mov ebx, dword [ebp + 0xc]
push str.temp
mov dword [ebp - 0x2d8], ebx
call dword [sym.imp.api_ms_win_crt_environment_l1_1_0.dll_getenv]
add esp, 4
lea ecx, [ebp - 0x21c]
push eax
call fcn.004050e0
mov esi, 0x7fffffff
mov dword [ebp - 4], 0
mov ecx, dword [ebp - 0x20c]
mov eax, esi
sub eax, ecx
cmp eax, 0x12
jb 0x4042c3
cmp dword [ebp - 0x208], 0x10
lea eax, [ebp - 0x21c]
push 0x12
cmovae eax, dword [ebp - 0x21c]
push str.MarkCaUpdate.lock
push ecx
push eax
push ecx
push dword [ebp - 0x2d4]
lea ecx, [ebp - 0x174]
call fcn.004062c0
mov byte [ebp - 4], 1
lea eax, [ebp - 0x174]
cmp dword [ebp - 0x160], 0x10
mov edi, dword [sym.imp.api_ms_win_crt_filesystem_l1_1_0.dll__access]
cmovae eax, dword [ebp - 0x174]
push 0
push eax
call edi
add esp, 8
test eax, eax
jne 0x40331a
cmp dword [ebp - 0x160], 0x10
lea eax, [ebp - 0x174]
cmovae eax, dword [ebp - 0x174]
push eax
call dword [sym.imp.api_ms_win_crt_filesystem_l1_1_0.dll_remove]
add esp, 4
push 0x1f4
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp dword [ebp - 0x160], 0x10
lea eax, [ebp - 0x174]
push 0
cmovae eax, dword [ebp - 0x174]
push eax
call edi
add esp, 8
test eax, eax
jne 0x40331a
push 0x20
push str.Service_is_Running_on_PC
push str.Calcium_Update_Service_is_Already_Running_on_your_PC._Please_try_to_use_taskmgr_taskkill_old_process_and_run_again
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
jmp 0x403d0b
push 0xb0
lea eax, [ebp - 0x2cc]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 8
lea ecx, [ebp - 0x2cc]
call fcn.004042e0
mov byte [ebp - 4], 2
lea eax, [ebp - 0x174]
cmp dword [ebp - 0x160], 0x10
push ecx
cmovae eax, dword [ebp - 0x174]
lea ecx, [ebp - 0x2c8]
push 2
push eax
call fcn.00405600
test eax, eax
lea ecx, [ebp - 0x2cc]
mov eax, dword [ebp - 0x2cc]
push 0
je 0x403381
add ecx, dword [eax + 4]
push 0
call dword [sym.imp.MSVCP140.dll_public:_void___thiscall_std::basic_ios_char__struct_std::char_traits_char__::clear_int__bool_]
jmp 0x40338c
add ecx, dword [eax + 4]
push 2
call dword [sym.imp.MSVCP140.dll_public:_void___thiscall_std::basic_ios_char__struct_std::char_traits_char__::setstate_int__bool_]
push 0x405840
mov edx, str.Hello_World
lea ecx, [ebp - 0x2cc]
call fcn.00405920
mov ecx, eax
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
mov eax, dword [ebp + 8]
cmp eax, 1
jne 0x403db8
push str.ProgramData
call dword [sym.imp.api_ms_win_crt_environment_l1_1_0.dll_getenv]
add esp, 4
lea ecx, [ebp - 0x1bc]
push eax
call fcn.004050e0
mov byte [ebp - 4], 3
mov eax, esi
mov ecx, dword [ebp - 0x1ac]
sub eax, ecx
cmp eax, 0xe
jb 0x4042c8
cmp dword [ebp - 0x1a8], 0x10
lea eax, [ebp - 0x1bc]
push 0xe
cmovae eax, dword [ebp - 0x1bc]
push str.CalciumScript
push ecx
push eax
push ecx
push dword [ebp - 0x2d4]
lea ecx, [ebp - 0x1a4]
call fcn.004062c0
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x194]
sub esi, ecx
cmp esi, 0xb
jb 0x4042cd
cmp dword [ebp - 0x190], 0x10
lea eax, [ebp - 0x1a4]
push 0xb
cmovae eax, dword [ebp - 0x1a4]
push str.CaInfo.txt
push ecx
push eax
push ecx
push dword [ebp - 0x2d4]
lea ecx, [ebp - 0x1d4]
call fcn.004062c0
mov byte [ebp - 4], 5
lea eax, [ebp - 0x1d4]
cmp dword [ebp - 0x1c0], 0x10
push 0
cmovae eax, dword [ebp - 0x1d4]
push eax
call edi
add esp, 8
test eax, eax
je 0x4034a6
cmp dword [ebp - 0x1c0], 0x10
lea eax, [ebp - 0x1d4]
push 0x10
cmovae eax, dword [ebp - 0x1d4]
push eax
push str.Failed_to_Find_Install_Path__Check_your_Calcium_is_Install_On_Your_Computer._if_your_Calcium_is_Portable_Version__Dont_use_this_Update._Calcium_Cannot_Auto_Update.if_you_dont_want_update._please_disabled_caupdater.exe_autorun
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
jmp 0x403c37
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x2d4], esp
push str.Path
call fcn.004050e0
sub esp, 0x18
mov byte [ebp - 4], 6
mov ecx, esp
mov dword [ebp - 0x2d8], esp
push str.Install
call fcn.004050e0
sub esp, 0x18
mov byte [ebp - 4], 7
lea eax, [ebp - 0x1d4]
mov ecx, esp
push eax
call fcn.004051f0
lea ecx, [ebp - 0x18c]
mov byte [ebp - 4], 5
call fcn.004023c0
add esp, 0x30
mov byte [ebp - 4], 8
mov ecx, esp
mov dword [ebp - 0x2d0], esp
push 0x40965c
call fcn.004050e0
sub esp, 0x18
mov byte [ebp - 4], 9
lea eax, [ebp - 0x18c]
mov ecx, esp
push eax
call fcn.004051f0
mov byte [ebp - 4], 8
call fcn.00401e10
add esp, 0x30
test al, al
je 0x403bbe
mov ebx, dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atoi]
cmp dword [ebp - 0x178], 0x10
lea eax, [ebp - 0x18c]
cmovae eax, dword [ebp - 0x18c]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x2d0], esp
push str.CURRENT
call fcn.004050e0
sub esp, 0x18
mov byte [ebp - 4], 0xa
mov ecx, esp
mov dword [ebp - 0x2d4], esp
push str.Version
call fcn.004050e0
sub esp, 0x18
mov byte [ebp - 4], 0xb
mov ecx, esp
push str..config.ini
call fcn.004050e0
lea ecx, [ebp - 0x1ec]
mov byte [ebp - 4], 8
call fcn.004023c0
add esp, 0x30
mov byte [ebp - 4], 0xc
mov ecx, esp
mov dword [ebp - 0x2d0], esp
push 0x409430
call fcn.004050e0
sub esp, 0x18
mov byte [ebp - 4], 0xd
mov ecx, esp
mov dword [ebp - 0x2d4], esp
push str.Version
call fcn.004050e0
sub esp, 0x18
mov byte [ebp - 4], 0xe
mov ecx, esp
push str..config.ini
call fcn.004050e0
lea ecx, [ebp - 0x144]
mov byte [ebp - 4], 0xc
call fcn.004023c0
add esp, 0x30
mov byte [ebp - 4], 0xf
lea eax, [ebp - 0x144]
mov ecx, esp
push eax
call fcn.004051f0
lea ecx, [ebp - 0x15c]
call fcn.00402710
add esp, 0x18
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x15c]
mov eax, dword [ebp - 0x148]
lea edx, [ebp - 0x1ec]
mov esi, dword [ebp - 0x1dc]
cmp eax, 0x10
mov edi, dword [ebp - 0x14c]
cmovae ecx, dword [ebp - 0x15c]
cmp dword [ebp - 0x1d8], 0x10
cmovae edx, dword [ebp - 0x1ec]
cmp esi, edi
jne 0x403922
sub esi, 4
jb 0x403681
nop dword [eax]
mov eax, dword [edx]
cmp eax, dword [ecx]
jne 0x403686
add edx, 4
add ecx, 4
sub esi, 4
jae 0x403670
cmp esi, 0xfffffffc
je 0x4036ba
mov al, byte [edx]
cmp al, byte [ecx]
jne 0x4036b3
cmp esi, 0xfffffffd
je 0x4036ba
mov al, byte [edx + 1]
cmp al, byte [ecx + 1]
jne 0x4036b3
cmp esi, 0xfffffffe
je 0x4036ba
mov al, byte [edx + 2]
cmp al, byte [ecx + 2]
jne 0x4036b3
cmp esi, 0xffffffff
je 0x4036ba
mov al, byte [edx + 3]
cmp al, byte [ecx + 3]
je 0x4036ba
sbb eax, eax
or eax, 1
jmp 0x4036bc
xor eax, eax
test eax, eax
jne 0x40391c
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x2d0], esp
push str.UpdateSleep
call fcn.004050e0
sub esp, 0x18
mov byte [ebp - 4], 0x11
mov ecx, esp
mov dword [ebp - 0x2d4], esp
push str.Version
call fcn.004050e0
sub esp, 0x18
mov byte [ebp - 4], 0x12
mov ecx, esp
push str..config.ini
call fcn.004050e0
lea ecx, [ebp - 0x2f4]
mov byte [ebp - 4], 0x10
call fcn.004023c0
add esp, 0x48
cmp dword [eax + 0x14], 0x10
jb 0x40371f
mov eax, dword [eax]
push eax
call ebx
mov ecx, dword [ebp - 0x2e0]
add esp, 4
mov esi, eax
cmp ecx, 0x10
jb 0x403761
mov edx, dword [ebp - 0x2f4]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x403757
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403a01
push ecx
push edx
call fcn.004068d1
add esp, 8
cmp esi, 0xffffffff
je 0x403ad8
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x2d0], esp
push str.UpdateSleep
call fcn.004050e0
sub esp, 0x18
mov byte [ebp - 4], 0x13
mov ecx, esp
mov dword [ebp - 0x2d4], esp
push str.Version
call fcn.004050e0
sub esp, 0x18
mov byte [ebp - 4], 0x14
mov ecx, esp
push str..config.ini
call fcn.004050e0
lea ecx, [ebp - 0x30c]
mov byte [ebp - 4], 0x10
call fcn.004023c0
add esp, 0x48
cmp dword [eax + 0x14], 0x10
jb 0x4037c5
mov eax, dword [eax]
push eax
call ebx
add esp, 4
push eax
call dword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, dword [ebp - 0x2f8]
cmp ecx, 0x10
jb 0x40380c
mov edx, dword [ebp - 0x30c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x403802
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403a01
push ecx
push edx
call fcn.004068d1
add esp, 8
mov byte [ebp - 4], 0xf
mov ecx, dword [ebp - 0x148]
cmp ecx, 0x10
jb 0x40384a
mov edx, dword [ebp - 0x15c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x403840
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403a01
push ecx
push edx
call fcn.004068d1
add esp, 8
mov byte [ebp - 4], 0xc
mov ecx, dword [ebp - 0x130]
mov dword [ebp - 0x14c], 0
mov dword [ebp - 0x148], 0xf
mov byte [ebp - 0x15c], 0
cmp ecx, 0x10
jb 0x4038a3
mov edx, dword [ebp - 0x144]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x403899
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403a01
push ecx
push edx
call fcn.004068d1
add esp, 8
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x1d8]
mov dword [ebp - 0x134], 0
mov dword [ebp - 0x130], 0xf
mov byte [ebp - 0x144], 0
cmp ecx, 0x10
jb 0x4038fc
mov edx, dword [ebp - 0x1ec]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4038f2
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403a01
push ecx
push edx
call fcn.004068d1
add esp, 8
mov dword [ebp - 0x1dc], 0
mov dword [ebp - 0x1d8], 0xf
mov byte [ebp - 0x1ec], 0
jmp 0x403540
mov eax, dword [ebp - 0x148]
cmp eax, 0x10
lea ecx, [ebp - 0x15c]
cmovae ecx, dword [ebp - 0x15c]
cmp edi, 0xc
jne 0x403a07
mov edx, str.geturlfailed
sub edi, 4
jb 0x403956
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x40395b
add ecx, 4
add edx, 4
sub edi, 4
jae 0x403945
cmp edi, 0xfffffffc
je 0x40398f
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x403988
cmp edi, 0xfffffffd
je 0x40398f
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x403988
cmp edi, 0xfffffffe
je 0x40398f
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x403988
cmp edi, 0xffffffff
je 0x40398f
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x40398f
sbb eax, eax
or eax, 1
jmp 0x403991
xor eax, eax
test eax, eax
jne 0x403a07
push str.Failed_to_Connect_Server._Calcium_Cannot_Auto_Update.if_you_dont_want_update._please_disabled_caupdater.exe_autorun
lea ecx, [ebp - 0x2f4]
call fcn.004050e0
cmp dword [ebp - 0x2e0], 0x10
lea eax, [ebp - 0x2f4]
push 0x20
cmovae eax, dword [ebp - 0x2f4]
push str.Notice
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
mov ecx, dword [ebp - 0x2e0]
cmp ecx, 0x10
jb 0x403ad8
mov edx, dword [ebp - 0x2f4]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x403ace
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x403ace
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
sub esp, 0x18
mov ecx, esp
push 0x4096ec
call fcn.004050e0
call fcn.00402ae0
add esp, 0x18
test al, al
je 0x403a40
sub esp, 0x18
lea eax, [ebp - 0x18c]
mov ecx, esp
push eax
call fcn.004051f0
call fcn.00402e00
add esp, 0x18
jmp 0x403ad8
push 0x104
lea eax, [ebp - 0x114]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push 0x104
lea eax, [ebp - 0x114]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
mov esi, dword [sym.imp.VCRUNTIME140.dll_strrchr]
lea eax, [ebp - 0x114]
push 0x5c
push eax
call esi
lea eax, [ebp - 0x114]
push 0x2e
push eax
call esi
add esp, 0x10
lea eax, [ebp - 0x114]
lea ecx, [ebp - 0x2f4]
push eax
call fcn.004050e0
cmp dword [ebp - 0x2e0], 0x10
lea eax, [ebp - 0x2f4]
push 5
cmovae eax, dword [ebp - 0x2f4]
push 0
push 0
push eax
push str.runas
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteA]
jmp 0x4039c9
push ecx
push edx
call fcn.004068d1
add esp, 8
mov ecx, dword [ebp - 0x148]
cmp ecx, 0x10
jb 0x403b12
mov edx, dword [ebp - 0x15c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x403b08
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403a01
push ecx
push edx
call fcn.004068d1
add esp, 8
mov ecx, dword [ebp - 0x130]
mov dword [ebp - 0x14c], 0
mov dword [ebp - 0x148], 0xf
mov byte [ebp - 0x15c], 0
cmp ecx, 0x10
jb 0x403b67
mov edx, dword [ebp - 0x144]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x403b5d
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403a01
push ecx
push edx
call fcn.004068d1
add esp, 8
mov ecx, dword [ebp - 0x1d8]
mov dword [ebp - 0x134], 0
mov dword [ebp - 0x130], 0xf
mov byte [ebp - 0x144], 0
cmp ecx, 0x10
jb 0x403be2
mov edx, dword [ebp - 0x1ec]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x403bb2
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403a01
push ecx
push edx
call fcn.004068d1
add esp, 8
jmp 0x403be2
cmp dword [ebp - 0x178], 0x10
lea eax, [ebp - 0x18c]
push 0x10
cmovae eax, dword [ebp - 0x18c]
push eax
push str.Failed_to_Find_Folder._Calcium_Cannot_Auto_Update.if_you_dont_want_update._please_disabled_caupdater.exe_autorun
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
mov ecx, dword [ebp - 0x178]
cmp ecx, 0x10
jb 0x403c1c
mov edx, dword [ebp - 0x18c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x403c12
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403a01
push ecx
push edx
call fcn.004068d1
add esp, 8
mov dword [ebp - 0x17c], 0
mov dword [ebp - 0x178], 0xf
mov byte [ebp - 0x18c], 0
mov ecx, dword [ebp - 0x1c0]
cmp ecx, 0x10
jb 0x403c71
mov edx, dword [ebp - 0x1d4]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x403c67
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403a01
push ecx
push edx
call fcn.004068d1
add esp, 8
mov ecx, dword [ebp - 0x190]
mov dword [ebp - 0x1c4], 0
mov dword [ebp - 0x1c0], 0xf
mov byte [ebp - 0x1d4], 0
cmp ecx, 0x10
jb 0x403cc6
mov edx, dword [ebp - 0x1a4]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x403cbc
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403a01
push ecx
push edx
call fcn.004068d1
add esp, 8
mov ecx, dword [ebp - 0x1a8]
cmp ecx, 0x10
jb 0x403d00
mov edx, dword [ebp - 0x1bc]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x403cf6
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403a01
push ecx
push edx
call fcn.004068d1
add esp, 8
lea ecx, [ebp - 0x2cc]
call fcn.00401a40
mov ecx, dword [ebp - 0x160]
cmp ecx, 0x10
jb 0x403d45
mov edx, dword [ebp - 0x174]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x403d3b
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403a01
push ecx
push edx
call fcn.004068d1
add esp, 8
mov ecx, dword [ebp - 0x208]
mov dword [ebp - 0x164], 0
mov dword [ebp - 0x160], 0xf
mov byte [ebp - 0x174], 0
cmp ecx, 0x10
jb 0x403d9a
mov edx, dword [ebp - 0x21c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x403d90
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403a01
push ecx
push edx
call fcn.004068d1
add esp, 8
xor eax, eax
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.00406642
mov esp, ebp
pop ebp
ret
cmp eax, 2
jne 0x4042b9
sub esp, 0x18
mov ecx, esp
push 0x4096ec
call fcn.004050e0
call fcn.00402ae0
add esp, 0x18
test al, al
je 0x404280
sub esp, 0x18
mov ecx, esp
push dword [ebx + 4]
call fcn.004050e0
call fcn.00401c30
add esp, 0x18
test al, al
je 0x404231
push dword [ebx + 4]
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
push 0
push str.config.ini
call edi
add esp, 8
test eax, eax
je 0x403eea
push dword [ebx + 4]
lea ecx, [ebp - 0x1bc]
call fcn.004050e0
mov byte [ebp - 4], 0x15
mov ecx, dword [ebp - 0x1ac]
sub esi, ecx
cmp esi, 0x15
jb 0x4042d2
cmp dword [ebp - 0x1a8], 0x10
lea eax, [ebp - 0x1bc]
push ecx
cmovae eax, dword [ebp - 0x1bc]
push eax
push 0x15
push str.Directory_is_null_:
push ecx
push dword [ebp - 0x2d0]
lea ecx, [ebp - 0x144]
call fcn.004062c0
cmp dword [ebp - 0x130], 0x10
lea eax, [ebp - 0x144]
push 0
cmovae eax, dword [ebp - 0x144]
push str.Path_Error
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
mov ecx, dword [ebp - 0x130]
cmp ecx, 0x10
jb 0x403eca
mov edx, dword [ebp - 0x144]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x403ec0
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403a01
push ecx
push edx
call fcn.004068d1
add esp, 8
mov dword [ebp - 0x134], 0
mov dword [ebp - 0x130], 0xf
mov byte [ebp - 0x144], 0
jmp 0x403cc6
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x2d0], esp
push str.CURRENT
call fcn.004050e0
sub esp, 0x18
mov byte [ebp - 4], 0x16
mov ecx, esp
mov dword [ebp - 0x2d4], esp
push str.Version
call fcn.004050e0
sub esp, 0x18
mov byte [ebp - 4], 0x17
mov ecx, esp
push str..config.ini
call fcn.004050e0
lea ecx, [ebp - 0x204]
mov byte [ebp - 4], 2
call fcn.004023c0
add esp, 0x30
mov byte [ebp - 4], 0x18
mov ecx, esp
mov dword [ebp - 0x2dc], esp
push 0x409430
call fcn.004050e0
sub esp, 0x18
mov byte [ebp - 4], 0x19
mov ecx, esp
mov dword [ebp - 0x2d0], esp
push str.Version
call fcn.004050e0
sub esp, 0x18
mov byte [ebp - 4], 0x1a
mov ecx, esp
push str..config.ini
call fcn.004050e0
lea ecx, [ebp - 0x1a4]
mov byte [ebp - 4], 0x18
call fcn.004023c0
add esp, 0x30
mov byte [ebp - 4], 0x1b
lea eax, [ebp - 0x1a4]
mov ecx, esp
push eax
call fcn.004051f0
lea ecx, [ebp - 0x12c]
call fcn.00402710
add esp, 0x18
mov byte [ebp - 4], 0x1c
lea ecx, [ebp - 0x12c]
mov ebx, dword [ebp - 0x118]
lea edx, [ebp - 0x204]
mov eax, dword [ebp - 0x12c]
cmp ebx, 0x10
mov edi, dword [ebp - 0x1f4]
mov esi, dword [ebp - 0x11c]
cmovae ecx, eax
cmp dword [ebp - 0x1f0], 0x10
cmovae edx, dword [ebp - 0x204]
cmp edi, esi
jne 0x40407b
sub edi, 4
jb 0x404011
nop word [eax + eax]
mov eax, dword [edx]
cmp eax, dword [ecx]
jne 0x404016
add edx, 4
add ecx, 4
sub edi, 4
jae 0x404000
cmp edi, 0xfffffffc
je 0x40404a
mov al, byte [edx]
cmp al, byte [ecx]
jne 0x404043
cmp edi, 0xfffffffd
je 0x40404a
mov al, byte [edx + 1]
cmp al, byte [ecx + 1]
jne 0x404043
cmp edi, 0xfffffffe
je 0x40404a
mov al, byte [edx + 2]
cmp al, byte [ecx + 2]
jne 0x404043
cmp edi, 0xffffffff
je 0x40404a
mov al, byte [edx + 3]
cmp al, byte [ecx + 3]
je 0x40404a
sbb eax, eax
or eax, 1
jmp 0x40404c
xor eax, eax
test eax, eax
jne 0x404075
cmp ebx, 0x10
lea eax, [ebp - 0x12c]
push 0
cmovae eax, dword [ebp - 0x12c]
push eax
push str.You_are_using_latest_version_of_Calcium
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
jmp 0x40416c
mov eax, dword [ebp - 0x12c]
cmp ebx, 0x10
lea ecx, [ebp - 0x12c]
cmovae ecx, eax
cmp esi, 0xc
jne 0x404108
mov edx, str.geturlfailed
sub esi, 4
jb 0x4040a7
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x4040ac
add ecx, 4
add edx, 4
sub esi, 4
jae 0x404096
cmp esi, 0xfffffffc
je 0x4040e0
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x4040d9
cmp esi, 0xfffffffd
je 0x4040e0
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x4040d9
cmp esi, 0xfffffffe
je 0x4040e0
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x4040d9
cmp esi, 0xffffffff
je 0x4040e0
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x4040e0
sbb eax, eax
or eax, 1
jmp 0x4040e2
xor eax, eax
test eax, eax
jne 0x404108
cmp ebx, 0x10
lea eax, [ebp - 0x12c]
push 0
cmovae eax, dword [ebp - 0x12c]
push eax
push str.Failed_to_Connect_Server__Please_Check_your_Internet
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
jmp 0x40416c
mov esi, dword [sym.imp.USER32.dll_MessageBoxA]
lea eax, [ebp - 0x12c]
cmp ebx, 0x10
push 0x24
cmovae eax, dword [ebp - 0x12c]
push eax
push str.New_Update_is_Release._Do_you_want_install_
push 0
call esi
cmp eax, 6
jne 0x40414c
mov eax, dword [ebp - 0x2d8]
sub esp, 0x18
mov ecx, esp
push dword [eax + 4]
call fcn.004050e0
call fcn.00402e00
add esp, 0x18
jmp 0x40416c
cmp dword [ebp - 0x118], 0x10
lea eax, [ebp - 0x12c]
push 0
cmovae eax, dword [ebp - 0x12c]
push eax
push str.User_Cancel_Update
push 0
call esi
mov ecx, dword [ebp - 0x118]
cmp ecx, 0x10
jb 0x4041a6
mov edx, dword [ebp - 0x12c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40419c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403a01
push ecx
push edx
call fcn.004068d1
add esp, 8
mov ecx, dword [ebp - 0x190]
mov dword [ebp - 0x11c], 0
mov dword [ebp - 0x118], 0xf
mov byte [ebp - 0x12c], 0
cmp ecx, 0x10
jb 0x4041fb
mov edx, dword [ebp - 0x1a4]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4041f1
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403a01
push ecx
push edx
call fcn.004068d1
add esp, 8
mov ecx, dword [ebp - 0x1f0]
mov dword [ebp - 0x194], 0
mov dword [ebp - 0x190], 0xf
mov byte [ebp - 0x1a4], 0
cmp ecx, 0x10
jb 0x403d00
mov edx, dword [ebp - 0x204]
inc ecx
jmp 0x403cd8
push str.Failed_To_Find_Path.
lea ecx, [ebp - 0x2f4]
call fcn.004050e0
cmp dword [ebp - 0x2e0], 0x10
lea eax, [ebp - 0x2f4]
push 0x20
cmovae eax, dword [ebp - 0x2f4]
push str.Notice
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
mov ecx, dword [ebp - 0x2e0]
cmp ecx, 0x10
jb 0x403d00
mov edx, dword [ebp - 0x2f4]
inc ecx
jmp 0x403cd8
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
mov edx, str.Use_Administrator_Run
push 0x405840
call fcn.00405920
mov ecx, eax
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
sub esp, 0x18
mov ecx, esp
push str.Press_any_key_to_Exit_....
call fcn.004050e0
call fcn.00402d50
add esp, 0x18
jmp 0x403d00
push str.Null_Parameter
jmp 0x404236
call fcn.00401630
call fcn.00401630
call fcn.00401630
call fcn.00401630
int3