Function at 0x41d4d0
Capabilities:
Create directory
Create thread

Disassembly:
push 0xffffffffffffffff
push 0x440ebc
mov eax, dword fs:[0]
push eax
sub esp, 0x560
mov eax, dword [0x44f3d8]
xor eax, esp
mov dword [esp + 0x55c], eax
push ebx
push ebp
push esi
mov eax, dword [0x44f3d8]
xor eax, esp
push eax
lea eax, [esp + 0x570]
mov dword fs:[0], eax
lea esi, [esp + 0x15c]
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0xffffffff
call fcn.0041b970
mov eax, esi
lea edx, [eax + 2]
jmp 0x41d530
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x41d530
sub eax, edx
sar eax, 1
push eax
lea eax, [esp + 0x160]
lea ebx, [edi + 0xad4]
push eax
mov esi, ebx
call fcn.00404120
xor esi, esi
push esi
push esi
lea edx, [esp + 0x18]
push edx
push 0x41d100
push esi
lea ecx, [esp + 0x170]
push esi
mov dword [esp + 0x30], ecx
mov byte [esp + 0x38], 1
call dword [sym.imp.KERNEL32.dll_CreateThread]
test eax, eax
mov dword [esp + 0x10], eax
jne 0x41d58f
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
mov eax, dword [esp + 0x10]
test esi, esi
jne 0x41da3c
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0xffffffff
jne 0x41d5b5
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jne 0x41da3c
cmp dword [esp + 0x1c], 0
jne 0x41da3c
mov eax, dword [edi]
mov edx, dword [eax + 4]
mov ecx, edi
call edx
mov eax, dword [edi + 0x10]
test eax, eax
jne 0x41da6b
mov eax, dword [edi + 0xabc]
neg eax
sbb eax, eax
and eax, 0xe
test eax, eax
jne 0x41da6b
lea eax, [edi + 0x814]
push eax
call fcn.0041e9d0
mov esi, 8
cmp dword [ebx + 0x18], esi
jb 0x41d604
mov eax, dword [ebx + 4]
jmp 0x41d607
lea eax, [ebx + 4]
push eax
push str.__Source:__s
push 0x450638
xor eax, eax
call fcn.0041ee40
add esp, 0xc
cmp dword [ebx + 0x18], esi
jb 0x41d626
mov eax, dword [ebx + 4]
jmp 0x41d629
lea eax, [ebx + 4]
push eax
lea ecx, [esp + 0x160]
push 0x104
push ecx
call fcn.004299fa
mov ebp, dword [sym.imp.SHLWAPI.dll_PathAppendW]
add esp, 0xc
push str.Lang
lea edx, [esp + 0x160]
push edx
call ebp
lea esi, [esp + 0x15c]
call fcn.0041fb30
mov eax, dword [edi]
mov edx, dword [eax + 8]
mov ecx, edi
call edx
xor eax, eax
cmp dword [edi + 0xc], eax
je 0x41d75a
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], eax
lea esi, [esp + 0x24]
mov dword [esp + 0x578], eax
call fcn.0041cef0
mov byte [esp + 0x578], 1
cmp dword [eax + 0x18], 8
jb 0x41d6a3
mov eax, dword [eax + 4]
jmp 0x41d6a6
add eax, 4
push eax
push str.Error_in_command_line:__s
push 0x450638
mov eax, 2
call fcn.0041ee40
add esp, 0xc
lea esi, [esp + 0x24]
mov byte [esp + 0x578], 0
call fcn.00415850
lea esi, [esp + 0x24]
call fcn.0041cef0
push eax
lea esi, [esp + 0x44]
mov byte [esp + 0x57c], 2
call fcn.00414a70
lea esi, [esp + 0x24]
mov byte [esp + 0x578], 0
call fcn.00415850
push 0x7f02
push 7
push 0x84
push 0x7d9
lea edx, [esp + 0x50]
mov ecx, 0x3b
call fcn.00423c90
add esp, 0x10
cmp eax, 7
jne 0x41d746
mov dword [0x45065c], 0xa001
call fcn.0041ed90
lea esi, [esp + 0x40]
mov dword [edi + 0x10], 1
call fcn.004149c0
jmp 0x41da6b
lea esi, [esp + 0x40]
mov dword [esp + 0x578], 0xffffffff
call fcn.004149c0
mov edx, 0x447630
call fcn.00401e60
test eax, eax
je 0x41d772
call fcn.0041e460
jmp 0x41d9a7
mov edx, str.noinstall
call fcn.00401e60
test eax, eax
je 0x41d78c
mov esi, edi
call fcn.0041e0a0
jmp 0x41d9a7
mov eax, edi
call fcn.00406d70
lea esi, [esp + 0x10]
mov dword [esp + 0x18], eax
mov byte [esp + 0x20], 0
call fcn.0041d0d0
mov esi, eax
test esi, esi
jne 0x41da1a
call fcn.004021a0
test eax, eax
je 0x41d866
mov eax, dword [esp + 0x10]
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0xffffffff
jne 0x41d7de
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jne 0x41da1a
cmp dword [esp + 0x1c], 0
jne 0x41da1a
call fcn.00423030
test al, al
je 0x41d839
call fcn.00422db0
cmp eax, 0x5010100
jb 0x41d839
cmp eax, 0xffffffff
ja 0x41d839
lea esi, [esp + 0x364]
call fcn.004230d0
push str.msls31.dll
mov eax, esi
push eax
call ebp
mov esi, dword [sym.imp.KERNEL32.dll_SetErrorMode]
push 0x8000
call esi
lea ecx, [esp + 0x364]
push ecx
mov ebp, eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
push ebp
call esi
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
mov edx, dword [edi]
mov eax, dword [edx + 0xc]
mov ecx, edi
call eax
mov edx, 0x447c20
call fcn.00401e60
test eax, eax
je 0x41d886
mov edx, dword [edi]
mov eax, dword [edx + 0x24]
mov ecx, edi
call eax
jmp 0x41d9a7
mov edx, dword [0x451b98]
lea ecx, [esp + 0x10]
push ecx
push 0x41d170
push 0
push 0x64
push edx
call dword [sym.imp.USER32.dll_DialogBoxParamW]
jmp 0x41d7de
mov edx, 0x447610
call fcn.00401e60
test eax, eax
jne 0x41d9a7
mov edx, str.uninstall
call fcn.00401e60
test eax, eax
je 0x41d8b2
mov esi, edi
call fcn.0041dfe0
jmp 0x41d9a7
mov edx, str.extract
call fcn.00401e60
test eax, eax
je 0x41d989
mov eax, 0x447c24
call fcn.0041ee20
mov ecx, str.extract
call fcn.00401f00
mov edx, eax
lea eax, [esp + 0x40]
call fcn.00402b00
mov dword [esp + 0x578], 3
mov eax, dword [esp + 0x44]
mov esi, 8
cmp dword [esp + 0x58], esi
jae 0x41d901
lea eax, [esp + 0x44]
push eax
push str.Extracting_to__s
push 0x450638
xor eax, eax
call fcn.0041ee40
mov eax, dword [esp + 0x50]
add esp, 0xc
cmp dword [esp + 0x58], esi
jae 0x41d924
lea eax, [esp + 0x44]
push 0
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHCreateDirectoryExW]
cmp dword [esp + 0x58], esi
mov eax, dword [esp + 0x44]
jae 0x41d93d
lea eax, [esp + 0x44]
push 1
push eax
mov eax, edi
call fcn.00406d70
push eax
call fcn.0041bd00
add esp, 0xc
test eax, eax
je 0x41d96c
push eax
push str.Extract_error_0x_X
push 0x450638
mov eax, 2
call fcn.0041ee40
add esp, 0xc
sub dword [0x450658], 1
lea esi, [esp + 0x40]
mov dword [esp + 0x578], 0xffffffff
call fcn.00415850
jmp 0x41d9a7
mov edx, 0x444820
call fcn.00401e60
test eax, eax
je 0x41d9a0
call fcn.0041e1b0
test al, al
je 0x41d9a7
mov esi, edi
call fcn.0041ded0
mov edx, 0x44762c
call fcn.00401e60
test eax, eax
je 0x41d9ce
call fcn.004021a0
test eax, eax
je 0x41d9c7
mov esi, edi
call fcn.0041e820
jmp 0x41d9e2
push str.Not_in_silent_mode__ignoring__b_switch
jmp 0x41d9d3
push str.IIF_will_NOT_initiate_reboot
push 0x450638
xor eax, eax
call fcn.0041ee40
add esp, 8
call fcn.0041ed90
call fcn.004201f0
cmp dword [ebx + 0x18], 8
jb 0x41da06
mov eax, dword [ebx + 4]
push eax
call fcn.0041b7e0
add esp, 4
call dword [sym.imp.ole32.dll_CoUninitialize]
jmp 0x41da6b
lea eax, [ebx + 4]
push eax
call fcn.0041b7e0
add esp, 4
call dword [sym.imp.ole32.dll_CoUninitialize]
jmp 0x41da6b
push esi
lea ecx, [esp + 0x60]
push str.Error_extracting_files.__0x_X_
push ecx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
push 0
push str.Package_error
lea edx, [esp + 0x64]
push edx
jmp 0x41da5c
push esi
lea eax, [esp + 0x60]
push str.Error_extracting_files.__0x_X_
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
push 0
push str.Package_error
lea ecx, [esp + 0x64]
push ecx
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
mov dword [edi + 0x10], 0xb
mov ecx, dword [esp + 0x570]
mov dword fs:[0], ecx
pop ecx
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x55c]
xor ecx, esp
call fcn.00426d9a
add esp, 0x56c
ret