Function at 0x41bc3b
Capabilities:
Accept command line arguments
Create directory
Get common file path
Get memory capacity
Get system information on windows
Read .ini file

Disassembly:
push 0x2b4
mov eax, 0x47e7e1
call fcn.004569c5
and dword [ebp - 0x268], 0
lea eax, [ebp - 0x268]
push eax
push str.LoadConfig
lea ecx, [ebp - 0x29c]
call fcn.0041e6cc
and dword [ebp - 4], 0
lea ecx, [ebp - 0x260]
call fcn.0040aaed
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x278]
call fcn.0040aaed
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x274]
call fcn.0040aaed
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x28c]
call fcn.0040aaed
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x270]
call fcn.0040aaed
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x27c]
call fcn.0040aaed
mov byte [ebp - 4], 6
xor edi, edi
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
push 0x4abfc4
call fcn.0041e1d8
pop ecx
pop ecx
lea eax, [ebp - 0x22c]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemTime]
push 0x40
pop ebx
push ebx
push ebx
lea ecx, [ebp - 0x278]
call fcn.0040a4d3
push eax
push str.yyyy_MM_dd
lea eax, [ebp - 0x22c]
push eax
push edi
push edi
call dword [sym.imp.KERNEL32.dll_GetDateFormatW]
push ebx
push ebx
lea ecx, [ebp - 0x274]
call fcn.0040a4d3
push eax
push str.HH:mm:ss
lea eax, [ebp - 0x22c]
push eax
push edi
push edi
call dword [sym.imp.KERNEL32.dll_GetTimeFormatW]
push ecx
lea ecx, [ebp - 0x278]
call fcn.0040d778
push ecx
lea ecx, [ebp - 0x274]
call fcn.0040d778
push dword [ebp - 0x274]
push dword [ebp - 0x278]
push str.UTC:__s__s
call fcn.0041e1d8
add esp, 0xc
mov dword [0x4c2630], 0x11c
push 0x4c2630
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
jne 0x41bd96
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Cannot_query_version_info__gle_u
mov dword [ebp - 0x268], eax
call fcn.0041e1d8
pop ecx
jmp 0x41cd0b
push 0x4c274c
call dword [sym.imp.KERNEL32.dll_GetNativeSystemInfo]
push 0x18
push dword [0x4c2760]
call fcn.0046cd7a
mov ebx, eax
mov dword [ebp - 0x264], ebx
pop ecx
pop ecx
test ebx, ebx
jne 0x41bdcb
mov dword [ebp - 0x268], 8
jmp 0x41cd0c
imul eax, dword [0x4c2760], 0x18
push eax
push ebx
push 0
push 0
push 0xb
call dword [sym.imp.POWRPROF.dll_CallNtPowerInformation]
test eax, eax
jne 0x41be0c
mov eax, dword [0x4c2760]
test eax, eax
je 0x41be1e
mov edx, dword [0x4c2774]
lea ecx, [ebx + 4]
cmp dword [ecx], edx
jbe 0x41bdfc
mov edx, dword [ecx]
add ecx, 0x18
sub eax, 1
jne 0x41bdf6
mov dword [0x4c2774], edx
jmp 0x41be1e
push dword [ebp - 0x268]
push str.Cannot_query_processor_power_info_info__ntst_X
call fcn.0041e1d8
pop ecx
pop ecx
push 0x4c2778
mov dword [0x4c2778], 0x40
call dword [sym.imp.KERNEL32.dll_GlobalMemoryStatusEx]
cmp word [0x4c274c], di
jne 0x41be96
lea ecx, [ebp - 0x2c0]
call fcn.00436315
mov byte [ebp - 4], 7
mov esi, dword [ebp - 0x2b0]
test esi, esi
je 0x41be87
lea eax, [ebp - 0x26c]
push eax
lea eax, [ebp - 0x258]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call esi
test eax, eax
je 0x41be87
mov eax, 0xaa64
cmp word [ebp - 0x26c], ax
jne 0x41be87
push 0xc
pop eax
mov word [0x4c274c], ax
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x2c0]
call fcn.004362cf
mov esi, 0x4ac0c8
lea ecx, [ebp - 0x27c]
push esi
call fcn.0040a676
movzx eax, word [0x4c274c]
test eax, eax
je 0x41bee1
cmp eax, 9
je 0x41beda
cmp eax, 0xc
je 0x41bed3
push eax
lea eax, [ebp - 0x270]
push 0x4ac0e4
push eax
call fcn.0040bead
add esp, 0xc
jmp 0x41beed
push str.arm64
jmp 0x41bee2
push 0x4ac0d0
jmp 0x41bee2
push esi
lea ecx, [ebp - 0x270]
call fcn.0040a676
push dword [ebp - 0x27c]
push dword [ebp - 0x270]
push dword [0x4c263c]
push dword [0x4c2638]
push dword [0x4c2634]
push str.Windows__u._u._u__s__build:__s
call fcn.0041e1d8
add esp, 0x18
xor eax, eax
mov word [ebp - 0x14], ax
mov word [ebp - 0x21c], ax
lea eax, [ebp - 0x21c]
push 0x104
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
test eax, eax
jne 0x41bf4c
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x268], eax
jmp 0x41ccfa
push 0x4ac674
lea eax, [ebp - 0x21c]
push 0x105
push eax
call fcn.0046cdfd
add esp, 0xc
cmp dword [0x4c263c], 0x23f0
jae 0x41bfd7
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebp - 0x25c]
call fcn.0040956c
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x25c]
push 0x4ac12c
call fcn.0041cdf8
push dword [ebp - 0x25c]
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov esi, eax
test esi, esi
je 0x41bfc5
push str.CryptCATAdminAcquireContext2
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
jne 0x41bfbe
mov byte [0x4c2770], al
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x25c]
lea ecx, [ecx - 0x10]
call fcn.0040aacb
lea eax, [ebp - 0x21c]
mov esi, 0x4c24e4
push eax
mov ecx, esi
call fcn.0040a676
push str.drivers_
mov ecx, esi
call fcn.0041cdf8
cmp dword [0x4c27bc], 0
je 0x41c054
lea eax, [ebp - 0x21c]
mov ecx, 0x4c24e0
push eax
call fcn.0040a676
xor eax, eax
lea ecx, [ebp - 0x21c]
mov esi, 0x104
mov word [ebp - 0x14], ax
push esi
mov word [ebp - 0x21c], ax
mov eax, dword [0x4c27b8]
push ecx
call eax
test eax, eax
je 0x41bf3b
push 0x4ac674
lea eax, [ebp - 0x21c]
push 0x105
push eax
call fcn.0046cdfd
add esp, 0xc
jmp 0x41c059
mov esi, 0x104
lea eax, [ebp - 0x21c]
mov ecx, 0x4c24dc
push eax
call fcn.0040a676
xor eax, eax
mov word [ebp - 0x14], ax
mov word [ebp - 0x21c], ax
lea eax, [ebp - 0x21c]
push esi
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea eax, [ebp - 0x250]
push eax
push 0
lea eax, [ebp - 0x21c]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesExW]
test eax, eax
je 0x41c0c4
mov eax, dword [ebp - 0x24c]
add eax, dword [ebp - 0x23c]
mov ecx, dword [ebp - 0x248]
adc ecx, dword [ebp - 0x238]
mov dword [0x4c27e0], eax
mov dword [0x4c27e4], ecx
mov edx, 0x4c2568
lea ecx, [ebp - 0x21c]
call fcn.00422632
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebp - 0x260]
call fcn.0040a676
push 0x5c
pop eax
push eax
push 0x2f
lea ecx, [ebp - 0x260]
call fcn.00409476
push 0x5c
pop eax
push eax
push dword [ebp - 0x260]
call fcn.00456ff3
pop ecx
pop ecx
test eax, eax
je 0x41c165
sub eax, dword [ebp - 0x260]
sar eax, 1
cmp eax, 0xffffffff
je 0x41c165
inc eax
lea ecx, [ebp - 0x260]
push eax
lea eax, [ebp - 0x25c]
push eax
call fcn.0040bd08
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x260]
push eax
call fcn.0040951e
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x25c]
lea ecx, [ecx - 0x10]
call fcn.0040aacb
mov eax, dword [0x4c247c]
lea ecx, [ebp - 0x260]
push dword [eax - 0xc]
push eax
call fcn.0040be21
jmp 0x41c175
push 0x4c247c
lea ecx, [ebp - 0x260]
call fcn.0040951e
push dword [ebp - 0x260]
xor eax, eax
push esi
mov word [ebp - 0x14], ax
mov word [ebp - 0x21c], ax
lea eax, [ebp - 0x21c]
push eax
push 0x4a9354
push str.Registry
push str.Product
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
push 0x4c2578
mov edx, 0x4c2574
lea ecx, [ebp - 0x21c]
call fcn.00421a10
pop ecx
call fcn.00408a6b
test eax, eax
je 0x41c1da
push dword [ebp - 0x268]
push str.Unable_to_load_product_config__gle_u
call fcn.0041e1d8
pop ecx
jmp 0x41c2eb
push dword [0x4c25cc]
push str.Current_version:__d
call fcn.0041e1d8
push dword [0x4c25d0]
push str.Current_update_version:__d
call fcn.0041e1d8
mov eax, dword [0x4c25f0]
add esp, 0x10
cmp dword [eax - 0xc], 0
je 0x41c215
push eax
push str.Current_build_version:__s
call fcn.0041e1d8
pop ecx
pop ecx
cmp byte [0x4c24bc], 0
mov ecx, str.Instup
mov eax, str.Icarus
cmove eax, ecx
push eax
push str.Installer:__s
call fcn.0041e1d8
mov eax, dword [0x4c24b4]
pop ecx
pop ecx
cmp dword [eax - 0xc], 0
je 0x41c24e
push eax
push str.ProductId:__s
call fcn.0041e1d8
pop ecx
pop ecx
mov eax, dword [0x4c24b8]
cmp dword [eax - 0xc], 0
je 0x41c266
push eax
push str.ModuleId:__s
call fcn.0041e1d8
pop ecx
pop ecx
cmp byte [0x4c24bd], 0
mov ecx, 0x4ac2fc
mov eax, 0x4ac2f4
cmove eax, ecx
push eax
push str.Suite:__s
call fcn.0041e1d8
push dword [0x4c2580]
push str.Program_folder:__s
call fcn.0041e1d8
push dword [0x4c2584]
push str.Data_folder:__s
call fcn.0041e1d8
push dword [0x4c2578]
push str.Key_path:__s
call fcn.0041e1d8
push dword [0x4c25a0]
push str.Guid:__s
call fcn.0041e1d8
push dword [0x4c25c4]
push str.Midex:__s
call fcn.0041e1d8
add esp, 0x30
cmp byte [0x4c2770], 0
jne 0x41c2ec
push str.Sha256_driver_signatures_are_NOT_SUPPORTED
call fcn.0041e1d8
pop ecx
mov al, byte [0x4c2510]
lea ecx, [ebp - 0x254]
push 0x4c2480
mov edx, 0x4c2584
mov byte [ebp - 0x26b], al
call fcn.0041b04e
mov byte [ebp - 4], 0xc
mov edx, eax
lea ecx, [ebp - 0x25c]
mov dword [esp], 0x4c247c
call fcn.0041b04e
pop ecx
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x260]
push eax
call fcn.0040951e
push 0xc
pop eax
mov byte [ebp - 4], al
mov ecx, dword [ebp - 0x25c]
lea ecx, [ecx - 0x10]
call fcn.0040aacb
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x254]
lea ecx, [ecx - 0x10]
call fcn.0040aacb
mov eax, dword [ebp - 0x260]
cmp dword [eax - 0xc], 0
je 0x41ca2b
mov ecx, eax
call fcn.0041feac
test al, al
je 0x41ca1f
push 0x10002
call fcn.004640c6
mov edi, eax
mov dword [ebp - 0x288], edi
pop ecx
test edi, edi
jne 0x41c3a0
mov dword [ebp - 0x268], 8
jmp 0x41ccfa
xor eax, eax
mov dword [edi + 0xfffe], eax
mov dword [edi], eax
push dword [ebp - 0x260]
push 0x7fff
push edi
push str.Config
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileSectionW]
push edi
lea ecx, [ebp - 0x25c]
mov ebx, edi
call fcn.0040956c
mov byte [ebp - 4], 0x10
mov eax, dword [ebp - 0x25c]
cmp dword [eax - 0xc], 0
je 0x41ca07
push 0x5c
pop edi
lea ecx, [ebp - 0x254]
call fcn.0040aaed
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0x258]
call fcn.0040aaed
mov byte [ebp - 4], 0x12
lea ecx, [ebp - 0x25c]
mov eax, dword [ebp - 0x25c]
mov eax, dword [eax - 0xc]
lea ebx, [ebx + eax*2]
add ebx, 2
call fcn.0041b0f9
mov ecx, eax
call fcn.004093ea
push 0
push 0x3d
lea ecx, [ebp - 0x25c]
call fcn.0041cd95
mov esi, eax
cmp esi, 0xffffffff
jne 0x41c452
mov byte [ebp - 4], 0x11
mov ecx, dword [ebp - 0x258]
lea ecx, [ecx - 0x10]
call fcn.0040aacb
jmp 0x41c9ce
push esi
lea eax, [ebp - 0x280]
push eax
lea ecx, [ebp - 0x25c]
call fcn.0040bd08
mov byte [ebp - 4], 0x15
lea ecx, [ebp - 0x254]
push eax
call fcn.0040951e
mov byte [ebp - 4], 0x12
mov ecx, dword [ebp - 0x280]
lea ecx, [ecx - 0x10]
call fcn.0040aacb
lea ecx, [ebp - 0x254]
call fcn.0041b0f9
lea eax, [esi + 1]
push eax
lea eax, [ebp - 0x284]
push eax
lea ecx, [ebp - 0x25c]
call fcn.00416c10
mov byte [ebp - 4], 0x17
lea ecx, [ebp - 0x258]
push eax
call fcn.0040951e
mov byte [ebp - 4], 0x12
mov ecx, dword [ebp - 0x284]
lea ecx, [ecx - 0x10]
call fcn.0040aacb
lea ecx, [ebp - 0x258]
call fcn.004093ea
push str.IniDescriptor
push dword [ebp - 0x254]
call fcn.0045f9d3
pop ecx
pop ecx
test eax, eax
jne 0x41c51f
lea eax, [ebp - 0x258]
mov esi, 0x4c24c8
push eax
mov ecx, esi
call fcn.0040951e
push 0x2f
push edi
mov ecx, esi
call fcn.00409476
mov byte [ebp - 4], 0x11
mov ecx, dword [ebp - 0x258]
lea ecx, [ecx - 0x10]
call fcn.0040aacb
jmp 0x41c9ce
push str.XmlDescriptor
push dword [ebp - 0x254]
call fcn.0045f9d3
pop ecx
pop ecx
test eax, eax
jne 0x41c569
lea eax, [ebp - 0x258]
mov esi, 0x4c24cc
push eax
mov ecx, esi
call fcn.0040951e
push 0x2f
push edi
mov ecx, esi
call fcn.00409476
mov byte [ebp - 4], 0x11
mov ecx, dword [ebp - 0x258]
lea ecx, [ecx - 0x10]
call fcn.0040aacb
jmp 0x41c9ce
push str.ConnectionCheck
push dword [ebp - 0x254]
call fcn.0045f9d3
pop ecx
pop ecx
test eax, eax
jne 0x41c5a7
lea eax, [ebp - 0x258]
mov ecx, 0x4c24d0
push eax
call fcn.0040951e
mov byte [ebp - 4], 0x11
mov ecx, dword [ebp - 0x258]
lea ecx, [ecx - 0x10]
call fcn.0040aacb
jmp 0x41c9ce
push str.TemporaryDir
push dword [ebp - 0x254]
call fcn.0045f9d3
pop ecx
pop ecx
test eax, eax
jne 0x41c5f9
lea eax, [ebp - 0x258]
mov ecx, 0x4c24d4
push eax
call fcn.0040951e
push edi
push 0x2f
mov ecx, 0x4c24d4
call fcn.00409476
mov byte [0x4c24d8], 1
mov byte [ebp - 4], 0x11
mov ecx, dword [ebp - 0x258]
lea ecx, [ecx - 0x10]
call fcn.0040aacb
jmp 0x41c9ce
push str.ConnectivityTimeout
push dword [ebp - 0x254]
call fcn.0045f9d3
pop ecx
pop ecx
test eax, eax
jne 0x41c645
push dword [ebp - 0x258]
call fcn.0046ce08
mov dword [0x4c24f8], eax
pop ecx
test eax, eax
jne 0x41c62e
mov dword [0x4c24f8], 0xea60
mov byte [ebp - 4], 0x11
mov ecx, dword [ebp - 0x258]
lea ecx, [ecx - 0x10]
call fcn.0040aacb
jmp 0x41c9ce
push str.ConnectivityStep
push dword [ebp - 0x254]
call fcn.0045f9d3
pop ecx
pop ecx
test eax, eax
jne 0x41c694
push dword [ebp - 0x258]
call fcn.0046ce08
mov dword [0x4c24fc], eax
pop ecx
cmp eax, 0x4e20
jae 0x41c67d
mov dword [0x4c24fc], 0x1388
mov byte [ebp - 4], 0x11
mov ecx, dword [ebp - 0x258]
lea ecx, [ecx - 0x10]
call fcn.0040aacb
jmp 0x41c9ce
push str.ConnectionTimeout
push dword [ebp - 0x254]
call fcn.0045f9d3
pop ecx
pop ecx
test eax, eax
jne 0x41c6e0
push dword [ebp - 0x258]
call fcn.0046ce08
mov dword [0x4c2500], eax
pop ecx
test eax, eax
jne 0x41c6c9
mov dword [0x4c2500], 0x7530
mov byte [ebp - 4], 0x11
mov ecx, dword [ebp - 0x258]
lea ecx, [ecx - 0x10]
call fcn.0040aacb
jmp 0x41c9ce
push str.CopyBufferSize
push dword [ebp - 0x254]
call fcn.0045f9d3
pop ecx
pop ecx
test eax, eax
jne 0x41c736
push dword [ebp - 0x258]
call fcn.0046ce08
mov dword [0x4c2508], eax
pop ecx
cmp eax, 0x400
jb 0x41c715
cmp eax, 0x1000000
jbe 0x41c71f
mov dword [0x4c2508], 0x10000
mov byte [ebp - 4], 0x11
mov ecx, dword [ebp - 0x258]
lea ecx, [ecx - 0x10]
call fcn.0040aacb
jmp 0x41c9ce
cmp byte [ebp - 0x26b], 0
jne 0x41c8c0
push str.ProxyEnabled
push dword [ebp - 0x254]
call fcn.0045f9d3
pop ecx
pop ecx
test eax, eax
jne 0x41c785
push dword [ebp - 0x258]
call fcn.0046ce08
test eax, eax
pop ecx
setne byte [0x4c2510]
mov byte [ebp - 4], 0x11
mov ecx, dword [ebp - 0x258]
lea ecx, [ecx - 0x10]
call fcn.0040aacb
jmp 0x41c9ce
push str.ProxyAddress
push dword [ebp - 0x254]
call fcn.0045f9d3
pop ecx
pop ecx
test eax, eax
jne 0x41c7c3
lea eax, [ebp - 0x258]
mov ecx, 0x4c2514
push eax
call fcn.0040951e
mov byte [ebp - 4], 0x11
mov ecx, dword [ebp - 0x258]
lea ecx, [ecx - 0x10]
call fcn.0040aacb
jmp 0x41c9ce
push str.ProxyPort
push dword [ebp - 0x254]
call fcn.0045f9d3
pop ecx
pop ecx
test eax, eax
jne 0x41c802
push dword [ebp - 0x258]
call fcn.0046ce08
pop ecx
mov word [0x4c2518], ax
mov byte [ebp - 4], 0x11
mov ecx, dword [ebp - 0x258]
lea ecx, [ecx - 0x10]
call fcn.0040aacb
jmp 0x41c9ce
push str.ProxyCredentialsEnabled
push dword [ebp - 0x254]
call fcn.0045f9d3
pop ecx
pop ecx
test eax, eax
jne 0x41c844
push dword [ebp - 0x258]
call fcn.0046ce08
test eax, eax
pop ecx
setne byte [0x4c251a]
mov byte [ebp - 4], 0x11
mov ecx, dword [ebp - 0x258]
lea ecx, [ecx - 0x10]
call fcn.0040aacb
jmp 0x41c9ce
push str.ProxyUsername
push dword [ebp - 0x254]
call fcn.0045f9d3
pop ecx
pop ecx
test eax, eax
jne 0x41c882
lea eax, [ebp - 0x258]
mov ecx, 0x4c251c
push eax
call fcn.0040951e
mov byte [ebp - 4], 0x11
mov ecx, dword [ebp - 0x258]
lea ecx, [ecx - 0x10]
call fcn.0040aacb
jmp 0x41c9ce
push str.ProxyPassword
push dword [ebp - 0x254]
call fcn.0045f9d3
pop ecx
pop ecx
test eax, eax
jne 0x41c8c0
lea eax, [ebp - 0x258]
mov ecx, 0x4c2520
push eax
call fcn.0040951e
mov byte [ebp - 4], 0x11
mov ecx, dword [ebp - 0x258]
lea ecx, [ecx - 0x10]
call fcn.0040aacb
jmp 0x41c9ce
push str.LastAppliedPatchId
push dword [ebp - 0x254]
call fcn.0045f9d3
pop ecx
pop ecx
test eax, eax
jne 0x41c8fe
push dword [ebp - 0x258]
call fcn.0046ce08
pop ecx
mov dword [0x4c2538], eax
mov byte [ebp - 4], 0x11
mov ecx, dword [ebp - 0x258]
lea ecx, [ecx - 0x10]
call fcn.0040aacb
jmp 0x41c9ce
push str.JobIntervalHours
push dword [ebp - 0x254]
call fcn.0045f9d3
pop ecx
pop ecx
test eax, eax
jne 0x41c93c
push dword [ebp - 0x258]
call fcn.0046ce08
pop ecx
mov dword [0x4c24c4], eax
mov byte [ebp - 4], 0x11
mov ecx, dword [ebp - 0x258]
lea ecx, [ecx - 0x10]
call fcn.0040aacb
jmp 0x41c9ce
push str.UseOwnDnsQuery
push dword [ebp - 0x254]
call fcn.0045f9d3
pop ecx
pop ecx
test eax, eax
jne 0x41c97b
push dword [ebp - 0x258]
call fcn.0046ce08
test eax, eax
pop ecx
setne byte [0x4c2504]
mov byte [ebp - 4], 0x11
mov ecx, dword [ebp - 0x258]
lea ecx, [ecx - 0x10]
call fcn.0040aacb
jmp 0x41c9ce
push str.DisableBits
push dword [ebp - 0x254]
call fcn.0045f9d3
pop ecx
pop ecx
test eax, eax
jne 0x41c9bc
push dword [ebp - 0x258]
call fcn.0046ce08
pop ecx
test eax, eax
je 0x41c9a8
mov byte [0x4c2540], 1
mov byte [ebp - 4], 0x11
mov ecx, dword [ebp - 0x258]
lea ecx, [ecx - 0x10]
call fcn.0040aacb
jmp 0x41c9ce
mov byte [ebp - 4], 0x11
mov ecx, dword [ebp - 0x258]
lea ecx, [ecx - 0x10]
call fcn.0040aacb
mov byte [ebp - 4], 0x10
mov ecx, dword [ebp - 0x254]
add ecx, 0xfffffff0
call fcn.0040aacb
push ebx
lea ecx, [ebp - 0x25c]
call fcn.0040a676
mov eax, dword [ebp - 0x25c]
cmp dword [eax - 0xc], 0
jne 0x41c3e6
mov edi, dword [ebp - 0x288]
mov esi, 0x104
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x25c]
lea ecx, [ecx - 0x10]
call fcn.0040aacb
mov ebx, dword [ebp - 0x264]
mov eax, dword [ebp - 0x260]
cmp dword [eax - 0xc], 0
jne 0x41ca63
push 0x4c247c
mov edx, 0x4c2480
lea ecx, [ebp - 0x264]
call fcn.0041b04e
pop ecx
mov byte [ebp - 4], 0x40
lea ecx, [ebp - 0x260]
push eax
call fcn.0040951e
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x264]
lea ecx, [ecx - 0x10]
call fcn.0040aacb
lea eax, [ebp - 0x260]
mov ecx, 0x4c24ec
push eax
call fcn.0040951e
mov ecx, dword [0x4c24d4]
cmp dword [ecx - 0xc], 0
jne 0x41caf2
mov eax, dword [0x4c2580]
cmp dword [eax - 0xc], 0
je 0x41caec
push str.Setup_
mov edx, 0x4c2580
lea ecx, [ebp - 0x264]
call fcn.00409379
pop ecx
mov byte [ebp - 4], 0x42
mov ecx, 0x4c24d4
push eax
call fcn.0040951e
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x264]
lea ecx, [ecx - 0x10]
call fcn.0040aacb
mov ecx, dword [0x4c24d4]
call fcn.0041feac
test al, al
jne 0x41cadf
push 0
push dword [0x4c24d4]
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov ecx, dword [0x4c24d4]
mov byte [0x4c24d8], 1
cmp dword [ecx - 0xc], 0
je 0x41cafb
call fcn.0041feac
test al, al
jne 0x41cb68
xor eax, eax
mov byte [0x4c24d8], 0
mov word [ebp - 0x14], ax
mov word [ebp - 0x21c], ax
lea eax, [ebp - 0x21c]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
jne 0x41cb57
mov word [ebp - 0x14], ax
mov word [ebp - 0x21c], ax
lea eax, [ebp - 0x21c]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
test eax, eax
jne 0x41cb57
push 0x4ac65c
lea eax, [ebp - 0x21c]
push 0x105
push eax
call fcn.0046ce47
add esp, 0xc
lea eax, [ebp - 0x21c]
mov ecx, 0x4c24d4
push eax
call fcn.0040a676
mov eax, dword [0x4c24d4]
mov eax, dword [eax - 0xc]
test eax, eax
je 0x41cb88
dec eax
mov ecx, 0x4c24d4
push eax
call fcn.004095d2
push 0x5c
pop ecx
cmp ax, cx
je 0x41cb93
push ecx
mov ecx, 0x4c24d4
call fcn.004094f4
mov ecx, dword [0x4c24c8]
cmp dword [ecx - 0xc], 0
je 0x41cba9
call fcn.0041d290
cmp eax, 1
jg 0x41cbb8
push 0x4c2494
mov ecx, 0x4c24c8
call fcn.0040951e
mov ecx, dword [0x4c24cc]
cmp dword [ecx - 0xc], 0
je 0x41cbce
call fcn.0041d290
cmp eax, 1
jg 0x41cbdd
push 0x4c2498
mov ecx, 0x4c24cc
call fcn.0040951e
mov ecx, dword [0x4c24d0]
cmp dword [ecx - 0xc], 0
je 0x41cbf3
call fcn.0041d290
cmp eax, 1
jg 0x41cc02
push str.http:__emupdate.avcdn.net_files_emupdate_pong.txt
mov ecx, 0x4c24d0
call fcn.0040a676
push 0x2f
push dword [0x4c24c8]
call fcn.00456ff3
pop ecx
pop ecx
test eax, eax
je 0x41cc55
sub eax, dword [0x4c24c8]
sar eax, 1
cmp eax, 0xffffffff
je 0x41cc55
push eax
lea eax, [ebp - 0x264]
mov ecx, 0x4c24c8
push eax
call fcn.0040bd08
mov byte [ebp - 4], 0x44
mov ecx, 0x4c24f0
push eax
call fcn.0040951e
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x264]
lea ecx, [ecx - 0x10]
call fcn.0040aacb
lea ecx, [ebp - 0x264]
call fcn.00422712
mov byte [ebp - 4], 0x46
mov ecx, 0x4c24f4
push eax
call fcn.0040951e
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x264]
lea ecx, [ecx - 0x10]
call fcn.0040aacb
push dword [0x4c24f4]
push str.Geo:__s
call fcn.0041e1d8
pop ecx
pop ecx
call fcn.00420058
test eax, eax
je 0x41cca3
mov byte [0x4c253e], 1
call fcn.004213ca
and dword [ebp - 0x25c], 0
lea eax, [ebp - 0x290]
push eax
lea eax, [ebp - 0x25c]
mov dword [ebp - 0x264], 4
push eax
lea eax, [ebp - 0x264]
mov edx, str.LastAppliedPatchId
push eax
xor ecx, ecx
call fcn.00420a8e
add esp, 0xc
test eax, eax
jne 0x41ccf5
mov ecx, dword [ebp - 0x25c]
push ecx
mov eax, dword [ecx]
mov dword [0x4c2538], eax
call fcn.0045f917
pop ecx
call fcn.0042141f
push ebx
call fcn.0045f917
pop ecx
test edi, edi
je 0x41cd0c
push edi
call fcn.0045f917
pop ecx
mov esi, dword [ebp - 0x268]
mov byte [ebp - 4], 5
mov ecx, dword [ebp - 0x27c]
lea ecx, [ecx - 0x10]
call fcn.0040aacb
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x270]
lea ecx, [ecx - 0x10]
call fcn.0040aacb
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0x28c]
lea ecx, [ecx - 0x10]
call fcn.0040aacb
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x274]
lea ecx, [ecx - 0x10]
call fcn.0040aacb
mov byte [ebp - 4], 1
mov ecx, dword [ebp - 0x278]
lea ecx, [ecx - 0x10]
call fcn.0040aacb
mov byte [ebp - 4], 0
mov ecx, dword [ebp - 0x260]
add ecx, 0xfffffff0
call fcn.0040aacb
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x29c]
call fcn.0041e740
mov eax, esi
call fcn.00456974
ret