Function at 0x4c33a0
Capabilities:
Accept command line arguments
Check if file exists
Check mutex on windows
Delete registry value
Get common file path
Get geographical location
Query or enumerate registry value
Set current directory
Set registry value

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 0x59f050
mov eax, dword fs:[0]
push eax
push ebx
mov eax, 0x5820
call fcn.005810a0
mov eax, dword [0x5de00c]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, dword [ebx + 8]
lea eax, [ebp - 0x820]
xor esi, esi
mov dword [ebp - 0x5824], edi
push 0x800
push esi
push eax
mov dword [ebp - 0x5814], esi
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea eax, [ebp - 0x820]
push 0x800
push eax
push 0x75
push edi
call dword [sym.imp.USER32.dll_LoadStringW]
test eax, eax
je 0x4c3451
lea ecx, [ebp - 0x820]
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4c3430
sub ecx, edx
lea eax, [ebp - 0x820]
sar ecx, 1
push ecx
push eax
mov ecx, 0x5e4710
call fcn.004039f0
call fcn.00533ae0
mov dword [0x5e46dc], eax
test eax, eax
je 0x4c4874
push eax
call fcn.00534ee0
mov ecx, dword [0x5e46dc]
add esp, 4
call fcn.00511650
push ecx
call fcn.00413190
test eax, eax
je 0x4c4874
mov edi, dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
cmp dword [0x5e4708], esi
je 0x4c360f
xorps xmm0, xmm0
mov dword [ebp - 0x5028], esi
xor eax, eax
mov dword [ebp - 0x5024], 7
movups xmmword [ebp - 0x5038], xmm0
mov word [ebp - 0x5038], ax
lea eax, [ebp - 0x228]
push eax
push 0x104
call edi
lea ecx, [ebp - 0x228]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4c34d1
sub ecx, edx
lea eax, [ebp - 0x228]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x5038]
call fcn.004039f0
push 0x20
xorps xmm0, xmm0
mov dword [ebp - 0x5070], esi
push str.WillPlusAdvHDLanguageSettings
lea ecx, [ebp - 0x5080]
mov dword [ebp - 0x506c], esi
movups xmmword [ebp - 0x5080], xmm0
call fcn.00403d10
lea eax, [ebp - 0x5080]
push eax
lea ecx, [ebp - 0x5808]
call fcn.004e9f00
mov ecx, dword [ebp - 0x506c]
cmp ecx, 8
jb 0x4c356d
mov edx, dword [ebp - 0x5080]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4c3563
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4c35ff
push ecx
push edx
call fcn.0052d747
add esp, 8
mov eax, dword [ebp - 0x5808]
test eax, eax
je 0x4c35bb
mov ecx, dword [0x5e4708]
mov edx, 0x5e46f8
cmp dword [0x5e470c], 8
cmovae edx, dword [0x5e46f8]
cmp dword [ebp - 0x5024], 8
lea esi, [ecx + ecx]
push esi
push edx
push 1
lea ecx, [ebp - 0x5038]
cmovae ecx, dword [ebp - 0x5038]
push 0
push ecx
push eax
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov eax, dword [ebp - 0x5808]
mov esi, 1
push eax
mov dword [ebp - 0x5814], esi
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [ebp - 0x5024]
cmp ecx, 8
jb 0x4c360f
mov edx, dword [ebp - 0x5038]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4c3605
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x4c3605
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.0052d747
add esp, 8
xorps xmm0, xmm0
mov dword [ebp - 0x5040], 0
xor eax, eax
mov dword [ebp - 0x503c], 7
movups xmmword [ebp - 0x5050], xmm0
mov word [ebp - 0x5050], ax
lea eax, [ebp - 0x230]
push eax
push 0x104
call edi
lea ecx, [ebp - 0x230]
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4c3650
sub ecx, edx
lea eax, [ebp - 0x230]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x5050]
call fcn.004039f0
push 0x20
xorps xmm0, xmm0
mov dword [ebp - 0x5028], 0
push str.WillPlusAdvHDLanguageSettings
lea ecx, [ebp - 0x5038]
mov dword [ebp - 0x5024], 0
movups xmmword [ebp - 0x5038], xmm0
call fcn.00403d10
lea eax, [ebp - 0x5038]
push eax
lea ecx, [ebp - 0x5808]
call fcn.004e9f00
lea ecx, [ebp - 0x5038]
call fcn.00403990
xor eax, eax
mov dword [ebp - 0x50a0], 0
xorps xmm0, xmm0
mov dword [ebp - 0x509c], 7
movups xmmword [ebp - 0x50b0], xmm0
mov word [ebp - 0x50b0], ax
mov eax, dword [ebp - 0x5808]
test eax, eax
je 0x4c390b
cmp dword [ebp - 0x503c], 8
lea edx, [ebp - 0x5804]
push edx
push 0
lea edx, [ebp - 0x580c]
mov dword [ebp - 0x5804], 0
push edx
lea ecx, [ebp - 0x5050]
cmovae ecx, dword [ebp - 0x5050]
push 0
push ecx
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x4c390b
lea eax, [ebp - 0x50b0]
push eax
lea eax, [ebp - 0x5050]
push eax
lea ecx, [ebp - 0x5808]
call fcn.004ea0c0
test eax, eax
je 0x4c390b
lea eax, [ebp - 0x5050]
push eax
lea ecx, [ebp - 0x5080]
call fcn.004037a0
push 0x5aaa60
lea edx, [ebp - 0x5080]
lea ecx, [ebp - 0x50f8]
call fcn.00403cb0
add esp, 4
lea ecx, [ebp - 0x50b0]
cmp dword [ebp - 0x509c], 8
cmovae ecx, dword [ebp - 0x50b0]
push dword [ebp - 0x50a0]
push ecx
mov ecx, eax
call fcn.004083e0
mov dword [ebp - 0x5028], 0
lea edx, [ebp - 0x5038]
mov dword [ebp - 0x5024], 0
xorps xmm0, xmm0
movups xmmword [ebp - 0x5038], xmm0
xor ecx, ecx
movups xmm0, xmmword [eax]
push str.AdvHDLang.dll
movups xmmword [ebp - 0x5038], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x5028], xmm0
mov word [eax], cx
lea ecx, [ebp - 0x50e0]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
call fcn.00408550
add esp, 4
lea ecx, [ebp - 0x5080]
push eax
call fcn.00403720
lea ecx, [ebp - 0x50e0]
call fcn.00403990
lea ecx, [ebp - 0x5038]
call fcn.00403990
lea ecx, [ebp - 0x50f8]
call fcn.00403990
cmp dword [ebp - 0x506c], 8
lea eax, [ebp - 0x5080]
cmovae eax, dword [ebp - 0x5080]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4c38f5
mov ecx, dword [ebp - 0x5040]
mov eax, SysReAllocString
sub eax, ecx
cmp eax, 1
jb 0x4c4b36
cmp dword [ebp - 0x503c], 8
lea eax, [ebp - 0x5050]
push 1
cmovae eax, dword [ebp - 0x5050]
push 0x5aaa60
push ecx
push eax
push ecx
push dword [ebp - 0x580c]
lea ecx, [ebp - 0x5038]
call fcn.00403e90
lea eax, [ebp - 0x50b0]
push 0x5aaa60
push eax
lea edx, [ebp - 0x5038]
lea ecx, [ebp - 0x50e0]
call fcn.0040b540
add esp, 4
lea ecx, [ebp - 0x50f8]
mov edx, eax
call fcn.00408550
add esp, 4
lea ecx, [ebp - 0x5050]
push eax
call fcn.00403720
lea ecx, [ebp - 0x50f8]
call fcn.00403990
lea ecx, [ebp - 0x50e0]
call fcn.00403990
lea ecx, [ebp - 0x5038]
call fcn.00403990
lea ecx, [ebp - 0x5080]
call fcn.00403990
mov dword [ebp - 0x5804], esi
jmp 0x4c3de9
lea ecx, [ebp - 0x5074]
mov dword [ebp - 0x5074], 0
mov dword [ebp - 0x5070], 0
mov dword [ebp - 0x506c], 0
call fcn.0041cb50
mov ecx, dword [ebp - 0x5070]
mov eax, 0x2aaaaaab
mov esi, dword [ebp - 0x5074]
sub ecx, esi
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 1
jne 0x4c3c21
mov eax, dword [ebp - 0x5808]
test eax, eax
je 0x4c39b7
mov edi, dword [esi + 0x10]
add edi, edi
jne 0x4c398b
cmp dword [ebp - 0x503c], 8
lea ecx, [ebp - 0x5050]
cmovae ecx, dword [ebp - 0x5050]
push ecx
push eax
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
jmp 0x4c39b7
mov edx, esi
cmp dword [edx + 0x14], 8
jb 0x4c3995
mov edx, dword [esi]
cmp dword [ebp - 0x503c], 8
lea ecx, [ebp - 0x5050]
push edi
cmovae ecx, dword [ebp - 0x5050]
push edx
push 1
push 0
push ecx
push eax
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
cmp dword [esi + 0x14], 8
lea eax, [esi + 0x14]
mov dword [ebp - 0x5814], 1
mov dword [ebp - 0x5804], esi
mov dword [ebp - 0x580c], eax
jb 0x4c39de
mov eax, dword [esi]
mov dword [ebp - 0x5804], eax
mov edi, dword [sym.imp.KERNEL32.dll_GetLocaleInfoEx]
push 0
push 0
push 0x5c
push 0
call edi
push ecx
mov esi, eax
lea ecx, [ebp - 0x502c]
push esi
call fcn.004a2320
push esi
mov esi, dword [ebp - 0x502c]
push esi
push 0x5c
push 0
call edi
mov eax, dword [ebp - 0x5028]
sub eax, esi
sar eax, 1
je 0x4c4b3b
mov eax, dword [ebp - 0x5804]
mov ecx, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4c3a49
test dx, dx
je 0x4c3a45
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4c3a49
add eax, 4
add ecx, 4
test dx, dx
jne 0x4c3a23
xor eax, eax
jmp 0x4c3a4e
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4c3a97
test esi, esi
je 0x4c3a8b
mov eax, dword [ebp - 0x5024]
sub eax, esi
sar eax, 1
lea ecx, [eax + eax]
mov eax, esi
cmp ecx, 0x1000
jb 0x4c3a81
mov esi, dword [eax - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4c3e61
push ecx
push esi
call fcn.0052d747
add esp, 8
mov dword [ebp - 0x5804], 1
jmp 0x4c3ada
test esi, esi
je 0x4c3ad0
mov eax, dword [ebp - 0x5024]
sub eax, esi
sar eax, 1
lea ecx, [eax + eax]
mov eax, esi
cmp ecx, 0x1000
jb 0x4c3ac6
mov esi, dword [eax - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4c3e61
push ecx
push esi
call fcn.0052d747
add esp, 8
mov dword [ebp - 0x5804], 0
mov ecx, dword [ebp - 0x5040]
mov eax, SysReAllocString
sub eax, ecx
cmp eax, 1
jb 0x4c4b40
cmp dword [ebp - 0x503c], 8
lea eax, [ebp - 0x5050]
push 1
cmovae eax, dword [ebp - 0x5050]
push 0x5aaa60
push ecx
push eax
push ecx
push dword [ebp - 0x580c]
lea ecx, [ebp - 0x5038]
call fcn.00403e90
mov esi, dword [ebp - 0x5074]
lea edx, [ebp - 0x5038]
push 0x5aaa60
push esi
lea ecx, [ebp - 0x50e0]
call fcn.0040b540
add esp, 4
lea ecx, [ebp - 0x50f8]
mov edx, eax
call fcn.00408550
mov edi, eax
add esp, 4
lea eax, [ebp - 0x5050]
cmp eax, edi
je 0x4c3be2
mov ecx, dword [ebp - 0x503c]
cmp ecx, 8
jb 0x4c3ba1
mov edx, dword [ebp - 0x5050]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4c3b97
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x4c3b97
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.0052d747
add esp, 8
mov dword [ebp - 0x5040], 0
xor eax, eax
mov dword [ebp - 0x503c], 7
mov word [ebp - 0x5050], ax
movups xmm0, xmmword [edi]
movups xmmword [ebp - 0x5050], xmm0
movq xmm0, qword [edi + 0x10]
movq qword [ebp - 0x5040], xmm0
mov dword [edi + 0x10], eax
mov dword [edi + 0x14], 7
mov word [edi], ax
lea ecx, [ebp - 0x50f8]
call fcn.00403990
lea ecx, [ebp - 0x50e0]
call fcn.00403990
lea ecx, [ebp - 0x5038]
call fcn.00403990
lea eax, [ebp - 0x50b0]
cmp eax, esi
je 0x4c3d7b
mov ecx, dword [ebp - 0x580c]
mov eax, esi
cmp dword [ecx], 8
jmp 0x4c3d68
cmp dword [0x5e45c8], 0
mov edi, dword [ebp - 0x5814]
mov dword [ebp - 0x5804], edi
je 0x4c3d7b
cmp dword [ebp - 0x50a0], 0
mov dword [ebp - 0x5804], edi
jne 0x4c3d7b
mov eax, dword [ebp - 0x5808]
test eax, eax
je 0x4c3ca8
mov edi, dword [esi + 0x10]
add edi, edi
jne 0x4c3c7c
cmp dword [ebp - 0x503c], 8
lea ecx, [ebp - 0x5050]
cmovae ecx, dword [ebp - 0x5050]
push ecx
push eax
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
jmp 0x4c3ca8
mov edx, esi
cmp dword [edx + 0x14], 8
jb 0x4c3c86
mov edx, dword [esi]
cmp dword [ebp - 0x503c], 8
lea ecx, [ebp - 0x5050]
push edi
cmovae ecx, dword [ebp - 0x5050]
push edx
push 1
push 0
push ecx
push eax
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov ecx, dword [ebp - 0x5040]
mov eax, SysReAllocString
sub eax, ecx
mov dword [ebp - 0x5814], 1
mov dword [ebp - 0x5804], 1
cmp eax, 1
jb 0x4c4b45
cmp dword [ebp - 0x503c], 8
lea eax, [ebp - 0x5050]
push 1
cmovae eax, dword [ebp - 0x5050]
push 0x5aaa60
push ecx
push eax
push ecx
push dword [ebp - 0x580c]
lea ecx, [ebp - 0x5038]
call fcn.00403e90
push 0x5aaa60
push esi
lea edx, [ebp - 0x5038]
lea ecx, [ebp - 0x50e0]
call fcn.0040b540
add esp, 4
lea ecx, [ebp - 0x50f8]
mov edx, eax
call fcn.00408550
add esp, 4
lea ecx, [ebp - 0x5050]
push eax
call fcn.00403720
lea ecx, [ebp - 0x50f8]
call fcn.00403990
lea ecx, [ebp - 0x50e0]
call fcn.00403990
lea ecx, [ebp - 0x5038]
call fcn.00403990
lea eax, [ebp - 0x50b0]
cmp eax, esi
je 0x4c3d7b
mov eax, esi
cmp dword [eax + 0x14], 8
jb 0x4c3d6c
mov eax, dword [esi]
push dword [esi + 0x10]
lea ecx, [ebp - 0x50b0]
push eax
call fcn.004039f0
test esi, esi
je 0x4c3de9
mov edi, esi
cmp edi, dword [ebp - 0x5070]
je 0x4c3da2
nop dword [eax]
mov ecx, edi
call fcn.00403990
add edi, 0x18
cmp edi, dword [ebp - 0x5070]
jne 0x4c3d90
mov ecx, dword [ebp - 0x506c]
mov eax, 0x2aaaaaab
sub ecx, esi
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax + eax*2]
mov eax, esi
shl ecx, 3
cmp ecx, 0x1000
jb 0x4c3ddf
mov esi, dword [eax - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4c3e61
push ecx
push esi
call fcn.0052d747
add esp, 8
cmp dword [ebp - 0x503c], 8
lea ecx, [ebp - 0x5050]
lea eax, [ebp - 0x50b0]
cmovae ecx, dword [ebp - 0x5050]
cmp dword [ebp - 0x509c], 8
push ecx
cmovae eax, dword [ebp - 0x50b0]
push eax
call fcn.004a1700
lea ecx, [ebp - 0x50b0]
call fcn.00403990
push dword [ebp - 0x5808]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [ebp - 0x503c]
cmp ecx, 8
jb 0x4c3e71
mov edx, dword [ebp - 0x5050]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4c3e67
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x4c3e67
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.0052d747
add esp, 8
lea eax, [ebp - 0x5820]
push eax
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
mov edi, eax
lea ecx, [ebp - 0x5180]
mov dword [ebp - 0x5808], edi
call fcn.004551b0
xor ecx, ecx
mov dword [ebp - 0x5088], 0
xorps xmm0, xmm0
mov eax, 7
xor esi, esi
mov dword [ebp - 0x5084], eax
movups xmmword [ebp - 0x5098], xmm0
mov word [ebp - 0x5098], cx
cmp dword [ebp - 0x5820], ecx
jle 0x4c3f21
nop word [eax + eax]
test esi, esi
je 0x4c3ee6
push 1
push 0x5bdb0c
lea ecx, [ebp - 0x5098]
call fcn.004083e0
mov edx, dword [edi + esi*4]
mov ecx, edx
lea edi, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4c3ef0
sub ecx, edi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x5098]
call fcn.004083e0
mov edi, dword [ebp - 0x5808]
inc esi
cmp esi, dword [ebp - 0x5820]
jl 0x4c3ed0
mov eax, dword [ebp - 0x5084]
cmp eax, 8
lea ecx, [ebp - 0x5098]
lea edx, [ebp - 0x5180]
cmovae ecx, dword [ebp - 0x5098]
call fcn.004c2940
push edi
test eax, eax
je 0x4c3f57
call dword [sym.imp.KERNEL32.dll_LocalFree]
lea ecx, [ebp - 0x5098]
call fcn.00403990
jmp 0x4c4848
call dword [sym.imp.KERNEL32.dll_LocalFree]
push str.Japanese_Japan.932
push 0
call dword [sym.imp.api_ms_win_crt_locale_l1_1_0.dll_setlocale]
push 1
mov dword [ebp - 4], 0
call dword [sym.imp.MSVCP140.dll_private:_static_class_std::locale::_Locimp____cdecl_std::locale::_Init_bool_]
add esp, 4
mov dword [ebp - 0x5818], eax
lea eax, [ebp - 0x581c]
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x5810]
push eax
call fcn.004c2720
mov esi, eax
mov dword [ebp - 4], 1
mov ecx, dword [ebp - 0x5818]
cmp ecx, dword [esi + 4]
je 0x4c3fd2
mov eax, dword [ecx]
mov eax, dword [eax + 8]
call eax
test eax, eax
je 0x4c3fc4
mov ecx, dword [eax]
push 1
mov edx, dword [ecx]
mov ecx, eax
call edx
mov ecx, dword [esi + 4]
mov dword [ebp - 0x5818], ecx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 2
mov ecx, dword [ebp - 0x580c]
test ecx, ecx
je 0x4c3ff8
mov eax, dword [ecx]
mov eax, dword [eax + 8]
call eax
test eax, eax
je 0x4c3ff8
mov ecx, dword [eax]
push 1
mov edx, dword [ecx]
mov ecx, eax
call edx
lea eax, [ebp - 0x581c]
mov dword [ebp - 4], 0xffffffff
push eax
lea eax, [ebp - 0x5810]
push eax
call dword [sym.imp.MSVCP140.dll_public:_static_class_std::locale___cdecl_std::locale::global_class_std::locale_const__]
add esp, 8
mov dword [ebp - 4], 3
mov ecx, dword [ebp - 0x580c]
test ecx, ecx
je 0x4c403c
mov eax, dword [ecx]
mov eax, dword [eax + 8]
call eax
test eax, eax
je 0x4c403c
mov ecx, dword [eax]
push 1
mov edx, dword [ecx]
mov ecx, eax
call edx
mov dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x5180], 0
je 0x4c423b
push 0x104
lea eax, [ebp - 0x230]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push 0x100
lea eax, [ebp - 0x53fa]
push eax
push 0x100
lea eax, [ebp - 0x55fa]
push eax
push 0x100
lea eax, [ebp - 0x57fa]
push eax
push 3
lea eax, [ebp - 0x5800]
push eax
lea eax, [ebp - 0x230]
push eax
call dword [sym.imp.api_ms_win_crt_filesystem_l1_1_0.dll__wsplitpath_s]
xorps xmm0, xmm0
mov dword [ebp - 0x50b8], 0
lea ecx, [ebp - 0x5800]
mov dword [ebp - 0x50b4], 0
add esp, 0x24
lea edx, [ecx + 2]
movups xmmword [ebp - 0x50c8], xmm0
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4c40d0
sub ecx, edx
lea eax, [ebp - 0x5800]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x50c8]
call fcn.00403d10
lea ecx, [ebp - 0x57fa]
lea edx, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4c4100
sub ecx, edx
mov edi, SysReAllocString
mov edx, dword [ebp - 0x50b8]
mov eax, edi
sar ecx, 1
sub eax, edx
cmp eax, ecx
jb 0x4c4b4a
cmp dword [ebp - 0x50b4], 8
lea eax, [ebp - 0x50c8]
push ecx
cmovae eax, dword [ebp - 0x50c8]
lea ecx, [ebp - 0x57fa]
push ecx
push edx
push eax
push ecx
push dword [ebp - 0x580c]
lea ecx, [ebp - 0x5038]
call fcn.00403e90
mov ecx, dword [ebp - 0x50b4]
cmp ecx, 8
jb 0x4c4196
mov edx, dword [ebp - 0x50c8]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4c418c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4c4229
push ecx
push edx
call fcn.0052d747
add esp, 8
movups xmm0, xmmword [ebp - 0x5038]
xor eax, eax
lea ecx, [ebp - 0x5038]
mov word [ebp - 0x5038], ax
movups xmmword [ebp - 0x50c8], xmm0
movq xmm0, qword [ebp - 0x5028]
movq qword [ebp - 0x50b8], xmm0
mov dword [ebp - 0x5028], 0
mov dword [ebp - 0x5024], 7
call fcn.00403990
cmp dword [ebp - 0x50b4], 8
lea eax, [ebp - 0x50c8]
cmovae eax, dword [ebp - 0x50c8]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
mov ecx, dword [ebp - 0x50b4]
cmp ecx, 8
jb 0x4c4240
mov edx, dword [ebp - 0x50c8]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4c422f
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x4c422f
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.0052d747
add esp, 8
jmp 0x4c4240
mov edi, SysReAllocString
cmp dword [0x5e45d4], 0
jne 0x4c469e
push 0x4000
lea eax, [ebp - 0x5020]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea eax, [ebp - 0x5020]
push 0x4000
push eax
push 0x71
push dword [ebp - 0x5824]
call dword [sym.imp.USER32.dll_LoadStringW]
lea ecx, [ebp - 0x5020]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4c4286
sub ecx, edx
sar ecx, 1
cmp ecx, 0x26
je 0x4c4302
mov dword [ebp - 4], 4
mov ecx, dword [ebp - 0x5818]
test ecx, ecx
je 0x4c42be
mov eax, dword [ecx]
mov eax, dword [eax + 8]
call eax
test eax, eax
je 0x4c42be
mov edx, dword [eax]
mov ecx, eax
push 1
call dword [edx]
mov ecx, dword [ebp - 0x5084]
cmp ecx, 8
jb 0x4c482f
mov edx, dword [ebp - 0x5098]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4c4825
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x4c4825
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push 1
xorps xmm0, xmm0
mov dword [ebp - 0x5058], 0
push str.:__n__
lea ecx, [ebp - 0x5068]
mov dword [ebp - 0x5054], 0
movups xmmword [ebp - 0x5068], xmm0
call fcn.00403d10
mov esi, 1
cmp esi, 9
jmp 0x4c44b0
cmp esi, 0x25
jne 0x4c4579
mov ecx, dword [ebp - 0x5058]
mov eax, edi
sub eax, ecx
cmp eax, 1
jb 0x4c4b36
cmp dword [ebp - 0x5054], 8
lea eax, [ebp - 0x5068]
push 1
cmovae eax, dword [ebp - 0x5068]
push 0x5aab90
push ecx
push eax
push ecx
push dword [ebp - 0x580c]
lea ecx, [ebp - 0x5080]
call fcn.00403e90
mov ecx, dword [ebp - 0x5054]
cmp ecx, 8
jb 0x4c453b
mov edx, dword [ebp - 0x5068]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4c4531
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4c35ff
push ecx
push edx
call fcn.0052d747
add esp, 8
movups xmm0, xmmword [ebp - 0x5080]
xor eax, eax
lea ecx, [ebp - 0x5080]
mov word [ebp - 0x5080], ax
movups xmmword [ebp - 0x5068], xmm0
movq xmm0, qword [ebp - 0x5070]
mov dword [ebp - 0x5070], 0
mov dword [ebp - 0x506c], 7
jmp 0x4c45ff
mov ecx, dword [ebp - 0x5058]
mov eax, edi
sub eax, ecx
cmp eax, 1
jb 0x4c4b36
cmp dword [ebp - 0x5054], 8
lea eax, [ebp - 0x5068]
push 1
cmovae eax, dword [ebp - 0x5068]
push 0x5c045c
push ecx
push eax
push ecx
push dword [ebp - 0x580c]
lea ecx, [ebp - 0x5038]
call fcn.00403e90
lea ecx, [ebp - 0x5068]
call fcn.00403990
movups xmm0, xmmword [ebp - 0x5038]
xor eax, eax
lea ecx, [ebp - 0x5038]
mov word [ebp - 0x5038], ax
movups xmmword [ebp - 0x5068], xmm0
movq xmm0, qword [ebp - 0x5028]
mov dword [ebp - 0x5028], 0
mov dword [ebp - 0x5024], 7
movq qword [ebp - 0x5058], xmm0
call fcn.00403990
mov eax, 1
add esi, eax
cmp esi, 0x26
nop
nop
nop
nop
nop
nop
cmp dword [ebp - 0x5054], 8
lea ecx, [ebp - 0x5068]
mov eax, 0x5defd0
cmovae ecx, dword [ebp - 0x5068]
cmp dword [0x5defe4], 8
push ecx
cmovae eax, dword [0x5defd0]
push eax
call dword [sym.imp.VCRUNTIME140.dll_wcsstr]
add esp, 8
lea ecx, [ebp - 0x5068]
test eax, eax
jmp 0x4c4699
call fcn.00403990
mov ecx, dword [0x5e4740]
sub edi, ecx
cmp edi, 7
jb 0x4c4b4f
cmp dword [0x5e4744], 8
mov eax, 0x5e4730
push 7
cmovae eax, dword [0x5e4730]
push 0x5c0480
push ecx
push eax
push ecx
push dword [ebp - 0x580c]
lea ecx, [ebp - 0x5110]
call fcn.00403e90
cmp dword [ebp - 0x50fc], 8
lea eax, [ebp - 0x5110]
mov edi, dword [sym.imp.USER32.dll_FindWindowW]
cmovae eax, dword [ebp - 0x5110]
push eax
push 0x5c0460
call edi
lea ecx, [ebp - 0x5110]
test eax, eax
je 0x4c474a
call fcn.00403990
mov dword [ebp - 4], 6
mov ecx, dword [ebp - 0x5818]
test ecx, ecx
je 0x4c3f47
mov eax, dword [ecx]
mov eax, dword [eax + 8]
call eax
test eax, eax
je 0x4c3f47
mov edx, dword [eax]
mov ecx, eax
push 1
call dword [edx]
lea ecx, [ebp - 0x5098]
call fcn.00403990
jmp 0x4c4848
call fcn.00403990
cmp dword [0x5e46d4], 8
mov eax, 0x5e46c0
cmovae eax, dword [0x5e46c0]
push eax
push 1
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x4c4896
cmp dword [0x5e4744], 8
mov ecx, 0x5e4730
mov eax, 0x5e4748
cmovae ecx, dword [0x5e4730]
cmp dword [0x5e475c], 8
push ecx
cmovae eax, dword [0x5e4748]
push eax
call edi
mov esi, eax
test esi, esi
je 0x4c47cb
push esi
call dword [sym.imp.USER32.dll_IsIconic]
test eax, eax
je 0x4c47c4
push 9
push esi
call dword [sym.imp.USER32.dll_ShowWindow]
push esi
call dword [sym.imp.USER32.dll_SetForegroundWindow]
mov dword [ebp - 4], 7
mov ecx, dword [ebp - 0x5818]
test ecx, ecx
je 0x4c47ef
mov eax, dword [ecx]
mov eax, dword [eax + 8]
call eax
test eax, eax
je 0x4c47ef
mov edx, dword [eax]
mov ecx, eax
push 1
call dword [edx]
mov ecx, dword [ebp - 0x5084]
cmp ecx, 8
jb 0x4c482f
mov edx, dword [ebp - 0x5098]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4c4825
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4c4a6a
push ecx
push edx
call fcn.0052d747
add esp, 8
xor eax, eax
mov dword [ebp - 0x5084], 7
mov word [ebp - 0x5098], ax
mov dword [ebp - 0x5088], eax
lea ecx, [ebp - 0x512c]
call fcn.00403990
lea ecx, [ebp - 0x5144]
call fcn.00403990
lea ecx, [ebp - 0x515c]
call fcn.00403990
lea ecx, [ebp - 0x5174]
call fcn.00403990
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.0052d3c5
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0x10
lea eax, [ebp - 0x582c]
mov dword [ebp - 0x582c], 8
push eax
mov dword [ebp - 0x5828], 0x4000
call dword [sym.imp.COMCTL32.dll_InitCommonControlsEx]
push 0
push 0
call dword [sym.imp.ole32.dll_CoInitializeEx]
mov edi, dword [ebp - 0x5824]
lea eax, [ebp - 0x1020]
push 0x800
push eax
push 0x72
push edi
call dword [sym.imp.USER32.dll_LoadStringW]
mov ecx, 0x5c0448
lea eax, [ebp - 0x1020]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4c490d
test dx, dx
je 0x4c4909
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4c490d
add eax, 4
add ecx, 4
test dx, dx
jne 0x4c48e7
xor eax, eax
jmp 0x4c4912
sbb eax, eax
or eax, 1
test eax, eax
je 0x4c491d
mov ecx, edi
call fcn.004c31d0
xorps xmm0, xmm0
mov dword [ebp - 0x518c], 0
xor eax, eax
mov dword [ebp - 0x5188], 7
movups xmmword [ebp - 0x519c], xmm0
lea ecx, [ebp - 0x51f8]
mov word [ebp - 0x519c], ax
call fcn.0041b700
cmp dword [ebp - 0x51b4], 0
je 0x4c4a70
cmp dword [ebp - 0x5178], 0
jne 0x4c4a70
call fcn.0041a2b0
mov ecx, dword [0x5de0dc]
cmp ecx, 0xffffffff
je 0x4c4986
xor eax, eax
test ecx, ecx
setne al
push eax
call fcn.00412fe0
cmp dword [ebp - 0x5814], 0
je 0x4c499a
push dword [ebp - 0x5804]
call fcn.00412fe0
lea eax, [ebp - 0x5180]
push eax
push dword [ebx + 0x14]
push edi
call fcn.00413fa0
call dword [sym.imp.ole32.dll_CoUninitialize]
test esi, esi
je 0x4c49c2
push esi
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, 0x5dfc40
call fcn.00412df0
mov ecx, dword [ebp - 0x5188]
cmp ecx, 8
jb 0x4c4a08
mov edx, dword [ebp - 0x519c]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4c49fe
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4c4a6a
push ecx
push edx
call fcn.0052d747
add esp, 8
mov dword [ebp - 4], 9
mov ecx, dword [ebp - 0x5818]
test ecx, ecx
je 0x4c4a2c
mov eax, dword [ecx]
mov eax, dword [eax + 8]
call eax
test eax, eax
je 0x4c4a2c
mov edx, dword [eax]
mov ecx, eax
push 1
call dword [edx]
mov ecx, dword [ebp - 0x5084]
cmp ecx, 8
jb 0x4c482f
mov edx, dword [ebp - 0x5098]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4c4825
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x4c4825
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
mov ecx, 0x5df030
mov dword [0x5e45e0], edi
cmp ecx, 0x5def78
je 0x4c4aa2
cmp dword [0x5def8c], 8
mov eax, 0x5def78
push dword [0x5def88]
cmovae eax, dword [0x5def78]
push eax
call fcn.004039f0
push 0
push 0x41cff0
push 0
push 0x66
push edi
call dword [sym.imp.USER32.dll_DialogBoxParamW]
test eax, eax
jne 0x4c4986
mov ecx, dword [0x5de0dc]
cmp ecx, 0xffffffff
je 0x4c4ad2
test ecx, ecx
setne al
push eax
call fcn.00412fe0
call dword [sym.imp.ole32.dll_CoUninitialize]
test esi, esi
je 0x4c4aea
push esi
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebp - 0x5188]
cmp ecx, 8
jb 0x4c4b2a
mov edx, dword [ebp - 0x519c]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4c4b20
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4c4a6a
push ecx
push edx
call fcn.0052d747
add esp, 8
mov dword [ebp - 4], 8
jmp 0x4c47d2
call fcn.00402990
call fcn.004083d0
call fcn.00402990
call fcn.00402990
call fcn.00402990
call fcn.00402990
int3