Function at 0x44cc10
Capabilities:
Identify system language via api

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4d2f90
mov eax, dword fs:[0]
push eax
sub esp, 0x278
mov eax, dword [0x5080f4]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov eax, ecx
mov dword [ebp - 0x204], eax
mov esi, dword [ebp + 0xc]
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x21c], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x208], eax
mov dword [ebp - 0x20c], esi
mov dword [ebp - 0x18], 0
call fcn.00412370
lea ecx, [ebp - 0x54]
movq xmm0, qword [eax]
movq qword [ebp - 0x34], xmm0
xorps xmm0, xmm0
mov eax, dword [eax + 8]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], 0x44373141
mov dword [ebp - 0x24], 0x36453841
mov dword [ebp - 0x20], 0x20
movlpd qword [ebp - 0x54], xmm0
call fcn.00411780
mov dword [ebp - 4], 0
mov ecx, dword [ebp - 0x54]
test ecx, ecx
je 0x44ccc3
push esi
push str.SFX_started_with_command_line__s
lea eax, [ebp - 0x34]
push eax
push 2
call fcn.0040d700
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x50]
mov dword [ebp - 0x1c], ecx
test ecx, ecx
je 0x44cd0e
or edi, 0xffffffff
mov eax, edi
lock xadd dword [ecx + 4], eax
jne 0x44cd0e
mov eax, dword [ecx]
mov esi, dword [eax]
mov ecx, esi
call dword [0x4d9444]
mov ecx, dword [ebp - 0x1c]
call esi
mov eax, edi
mov edi, dword [ebp - 0x1c]
lock xadd dword [edi + 8], eax
jne 0x44cd0e
mov eax, dword [edi]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x4d9444]
mov ecx, edi
call esi
mov eax, dword [ebp - 0x204]
push dword [ebp - 0x208]
add eax, 0x34
mov dword [ebp - 0x210], eax
push 0x4ed4e0
mov edi, dword [eax]
mov eax, dword [edi]
mov esi, dword [eax + 8]
mov ecx, esi
call dword [0x4d9444]
mov ecx, edi
call esi
xorps xmm0, xmm0
mov dword [ebp - 0x20], 0
lea ecx, [ebp - 0x30]
movups xmmword [ebp - 0x30], xmm0
call fcn.0044f2d0
mov edi, dword [ebp - 0x204]
xorps xmm0, xmm0
mov dword [ebp - 4], 1
movlpd qword [ebp - 0x54], xmm0
mov eax, dword [edi + 4]
mov esi, dword [eax]
lea eax, [ebp - 0x54]
push eax
mov ecx, esi
call dword [0x4d9444]
lea ecx, [edi + 4]
call esi
mov byte [ebp - 4], 2
mov edi, dword [ebp - 0x54]
push dword [ebp - 0x208]
mov eax, dword [edi]
mov esi, dword [eax + 8]
mov ecx, esi
call dword [0x4d9444]
mov ecx, edi
call esi
test al, al
je 0x44e2e5
mov ecx, dword [ebp - 0x50]
mov dword [ebp - 0x1c], ecx
test ecx, ecx
je 0x44cde6
or edi, 0xffffffff
mov eax, edi
lock xadd dword [ecx + 4], eax
jne 0x44cde6
mov eax, dword [ecx]
mov esi, dword [eax]
mov ecx, esi
call dword [0x4d9444]
mov ecx, dword [ebp - 0x1c]
call esi
mov eax, edi
mov edi, dword [ebp - 0x1c]
lock xadd dword [edi + 8], eax
jne 0x44cde6
mov eax, dword [edi]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x4d9444]
mov ecx, edi
call esi
mov dword [ebp - 4], 3
cmp byte [ebp - 0x2c], 0
mov dword [ebp - 0x30], vtable.asw::files::fs_redirection_auto.0
je 0x44ce10
cmp byte [ebp - 0x2b], 0
je 0x44ce10
push dword [ebp - 0x28]
mov esi, dword [ebp - 0x20]
mov ecx, esi
call dword [0x4d9444]
call esi
mov edi, dword [ebp - 0x204]
mov dword [ebp - 4], 0xffffffff
mov eax, dword [edi + 0x28]
mov esi, dword [eax]
lea eax, [ebp - 0x3c]
push eax
mov ecx, esi
call dword [0x4d9444]
lea ecx, [edi + 0x28]
call esi
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov dword [eax], 0
mov dword [eax + 4], 0
mov eax, edi
or edi, 0xffffffff
mov dword [eax + 0x44], ecx
mov ecx, dword [eax + 0x48]
mov dword [ebp - 0x18], ecx
mov dword [eax + 0x48], edx
test ecx, ecx
je 0x44ce92
mov eax, edi
lock xadd dword [ecx + 4], eax
jne 0x44ce92
mov eax, dword [ecx]
mov esi, dword [eax]
mov ecx, esi
call dword [0x4d9444]
mov ecx, dword [ebp - 0x18]
call esi
mov ecx, dword [ebp - 0x18]
mov eax, edi
lock xadd dword [ecx + 8], eax
jne 0x44ce92
mov eax, dword [ecx]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x4d9444]
mov ecx, dword [ebp - 0x18]
call esi
mov ecx, dword [ebp - 0x38]
mov dword [ebp - 0x1c], ecx
test ecx, ecx
je 0x44ced3
mov eax, edi
lock xadd dword [ecx + 4], eax
jne 0x44ced3
mov eax, dword [ecx]
mov esi, dword [eax]
mov ecx, esi
call dword [0x4d9444]
mov ecx, dword [ebp - 0x1c]
call esi
mov eax, edi
mov edi, dword [ebp - 0x1c]
lock xadd dword [edi + 8], eax
jne 0x44ced3
mov eax, dword [edi]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x4d9444]
mov ecx, edi
call esi
mov edi, dword [ebp - 0x204]
push dword [ebp - 0x210]
push dword [ebp - 0x208]
mov eax, dword [edi + 0x10]
mov esi, dword [eax]
lea eax, [ebp - 0x210]
push eax
mov ecx, esi
call dword [0x4d9444]
lea ecx, [edi + 0x10]
call esi
mov edi, eax
mov dword [ebp - 4], 4
xor ecx, ecx
mov esi, dword [edi]
xor edx, edx
test esi, esi
je 0x44cf48
push 0x10
call fcn.00484da3
mov edx, eax
xorps xmm0, xmm0
mov dword [ebp - 0x200], edx
add esp, 4
mov ecx, esi
movups xmmword [edx], xmm0
mov dword [edx + 4], 1
mov dword [edx + 8], 1
mov dword [edx], vtable.std::_Ref_count_resource_class_asw::sfx::payload_intf___struct_std::default_delete_class_asw::sfx::payload_intf__.0
mov dword [edx + 0xc], esi
mov dword [edi], 0
mov eax, dword [ebp - 0x204]
mov dword [eax + 0x3c], ecx
mov ecx, dword [eax + 0x40]
mov dword [ebp - 0x1c], ecx
mov dword [eax + 0x40], edx
test ecx, ecx
je 0x44cf98
or edi, 0xffffffff
mov eax, edi
lock xadd dword [ecx + 4], eax
jne 0x44cf98
mov eax, dword [ecx]
mov esi, dword [eax]
mov ecx, esi
call dword [0x4d9444]
mov ecx, dword [ebp - 0x1c]
call esi
mov eax, edi
mov edi, dword [ebp - 0x1c]
lock xadd dword [edi + 8], eax
jne 0x44cf98
mov eax, dword [edi]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x4d9444]
mov ecx, edi
call esi
mov esi, dword [ebp - 0x210]
test esi, esi
je 0x44cfb5
mov eax, dword [esi]
push 1
mov edi, dword [eax + 0xc]
mov ecx, edi
call dword [0x4d9444]
mov ecx, esi
call edi
mov dword [ebp - 0xb4], 0
mov edx, dword [ebp - 0x20c]
xor eax, eax
mov ecx, edx
mov dword [ebp - 0xa4], 0
mov dword [ebp - 0xa0], 7
mov word [ebp - 0xb4], ax
mov dword [ebp - 4], 0xffffffff
lea esi, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x44cff0
sub ecx, esi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0xb4]
call fcn.004123e0
mov edi, dword [ebp - 0x204]
mov dword [ebp - 4], 6
mov byte [ebp - 4], 7
mov dword [ebp - 0x18], 0
mov eax, dword [edi + 0x2c]
mov esi, dword [eax]
lea eax, [ebp - 0x18]
push eax
mov ecx, esi
call dword [0x4d9444]
lea ecx, [edi + 0x2c]
call esi
push dword [ebp - 0x20c]
mov byte [ebp - 4], 8
mov esi, dword [ebp - 0x18]
mov eax, dword [esi]
mov edi, dword [eax]
lea eax, [ebp - 0xcc]
push eax
mov ecx, edi
call dword [0x4d9444]
mov ecx, esi
call edi
mov esi, eax
lea eax, [ebp - 0xb4]
cmp eax, esi
je 0x44d0a0
mov ecx, eax
call fcn.004127e0
movups xmm0, xmmword [esi]
movups xmmword [ebp - 0xb4], xmm0
movq xmm0, qword [esi + 0x10]
movq qword [ebp - 0xa4], xmm0
xor eax, eax
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 7
mov word [esi], ax
nop dword [eax + eax]
lea ecx, [ebp - 0xcc]
call fcn.004127e0
mov esi, dword [ebp - 0x18]
test esi, esi
je 0x44d0c5
mov eax, dword [esi]
push 1
mov edi, dword [eax + 4]
mov ecx, edi
call dword [0x4d9444]
mov ecx, esi
call edi
mov esi, dword [ebp - 0x204]
jmp 0x44d11d
mov dword [ebp - 4], 6
lea eax, [ebp - 0xb4]
cmp dword [ebp - 0xa0], 8
lea edi, [esi + 0x4c]
push 0
cmovae eax, dword [ebp - 0xb4]
mov ecx, edi
push eax
mov dword [ebp - 0x1c], edi
call fcn.0040a5c0
push 0xc8
lea eax, [ebp - 0x1fc]
push 0
push eax
call fcn.004a08b0
add esp, 0xc
lea ecx, [ebp - 0x1fc]
call fcn.0048b930
push str.sfx_cmd
lea eax, [ebp - 0x18]
mov byte [ebp - 4], 0xc
push eax
lea ecx, [ebp - 0x1fc]
mov dword [ebp - 0x18], 0
call fcn.0048cc30
lea eax, [ebp - 0x200]
push eax
lea ecx, [ebp - 0x18]
call fcn.004978a0
push ecx
mov dword [ebp - 0x210], eax
mov ecx, edi
push 0
lea eax, [ebp - 0xcc]
push eax
call fcn.0040a320
mov byte [ebp - 4], 0xd
cmp dword [eax + 0x14], 8
jb 0x44d1ba
mov eax, dword [eax]
mov ecx, dword [ebp - 0x210]
push eax
call fcn.00496c10
lea ecx, [ebp - 0xcc]
mov byte [ebp - 4], 0xc
call fcn.004127e0
mov edi, dword [esi + 0x44]
mov eax, dword [edi]
mov esi, dword [eax]
lea eax, [ebp - 0x18]
push eax
mov ecx, esi
call dword [0x4d9444]
mov ecx, edi
call esi
lea ecx, [ebp - 0x1fc]
mov byte [ebp - 4], 6
call fcn.0048bd50
push 0xc8
lea eax, [ebp - 0x1fc]
push 0
push eax
call fcn.004a08b0
add esp, 0xc
lea ecx, [ebp - 0x1fc]
call fcn.0048b930
push 0x4ed554
lea eax, [ebp - 0x18]
mov byte [ebp - 4], 0xe
push eax
lea ecx, [ebp - 0x1fc]
mov dword [ebp - 0x18], 0
call fcn.0048cc30
lea eax, [ebp - 0x200]
push eax
lea ecx, [ebp - 0x18]
call fcn.004978a0
mov dword [ebp - 0x210], eax
mov eax, dword [ebp - 0x204]
add eax, 0x34
push 0x4e8d60
mov dword [ebp - 0x20c], eax
push 0x4ed554
mov edi, dword [eax]
lea eax, [ebp - 0xcc]
push eax
mov edx, dword [edi]
mov esi, dword [edx + 0x14]
mov ecx, esi
call dword [0x4d9444]
mov ecx, edi
call esi
mov byte [ebp - 4], 0xf
cmp dword [eax + 0x14], 8
jb 0x44d28f
mov eax, dword [eax]
mov ecx, dword [ebp - 0x210]
push eax
call fcn.00496c10
lea ecx, [ebp - 0xcc]
mov byte [ebp - 4], 0xe
call fcn.004127e0
mov eax, dword [ebp - 0x204]
mov edi, dword [eax + 0x44]
mov eax, dword [edi]
mov esi, dword [eax]
lea eax, [ebp - 0x18]
push eax
mov ecx, esi
call dword [0x4d9444]
mov ecx, edi
call esi
lea ecx, [ebp - 0x1fc]
mov byte [ebp - 4], 6
call fcn.0048bd50
call dword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
mov esi, dword [ebp - 0x1c]
sub esp, 8
movzx eax, ax
mov ecx, esi
mov dword [ebp - 0x18], eax
mov eax, esp
mov dword [eax], str.lang_id
mov dword [eax + 4], 7
call fcn.0040a5a0
test al, al
jne 0x44d31f
sub esp, 8
mov ecx, esi
mov eax, esp
mov dword [eax], str.language
mov dword [eax + 4], 8
call fcn.0040a5a0
test al, al
je 0x44d39a
sub esp, 8
mov ecx, esi
mov eax, esp
mov dword [eax], str.lang_id
mov dword [eax + 4], 7
call fcn.0040a5a0
sub esp, 8
mov ecx, esi
test al, al
mov eax, esp
je 0x44d352
mov dword [eax], str.lang_id
mov dword [eax + 4], 7
jmp 0x44d35f
mov dword [eax], str.language
mov dword [eax + 4], 8
call fcn.0040abb0
cmp dword [eax + 0x14], 8
jb 0x44d36c
mov eax, dword [eax]
push 0xa
push 0
push eax
call fcn.004aeeab
add esp, 0xc
mov dword [ebp - 0x18], eax
xor ecx, ecx
nop
cmp dword [ecx + 0x4e93a0], eax
je 0x44d39a
add ecx, 0xc
cmp ecx, 0x21c
jb 0x44d380
mov dword [ebp - 0x18], 0x409
mov edi, dword [ebp - 0x20c]
push dword [ebp - 0x18]
push str.lang_id
mov edi, dword [edi]
mov eax, dword [edi]
mov esi, dword [eax + 0x10]
mov ecx, esi
call dword [0x4d9444]
mov ecx, edi
call esi
xorps xmm0, xmm0
movlpd qword [ebp - 0x84], xmm0
mov dword [ebp - 0x84], 0
mov dword [ebp - 0x80], 0
mov dword [ebp - 0x74], 0
xor eax, eax
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x60], 7
mov word [ebp - 0x74], ax
mov esi, dword [ebp - 0x204]
mov ecx, esi
mov byte [ebp - 4], 0x13
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x1c]
push eax
call fcn.0044e7d0
mov byte [ebp - 4], 0x14
mov eax, dword [esi + 0x80]
mov edi, dword [esi + 0x34]
mov dword [ebp - 0x18], eax
push 0x4e8d60
mov eax, dword [eax]
push str.tmp_path
mov eax, dword [eax + 4]
mov dword [ebp - 0x210], eax
mov eax, dword [edi]
mov esi, dword [eax + 0x14]
lea eax, [ebp - 0xcc]
push eax
mov ecx, esi
call dword [0x4d9444]
mov ecx, edi
call esi
mov byte [ebp - 4], 0x15
mov esi, dword [ebp - 0x210]
mov ecx, esi
push eax
call dword [0x4d9444]
mov ecx, dword [ebp - 0x18]
call esi
lea ecx, [ebp - 0xcc]
call fcn.004127e0
mov esi, dword [ebp - 0x204]
mov edi, dword [esi + 0x80]
mov eax, dword [edi]
mov dword [ebp - 0x34], 0
mov eax, dword [eax]
mov dword [ebp - 0x18], eax
push 0xd
push str.sfx_preparing
lea ecx, [ebp - 0x34]
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0xf
mov byte [ebp - 0x34], 0
mov byte [ebp - 4], 0x14
call fcn.00410270
lea eax, [ebp - 0x34]
mov byte [ebp - 4], 0x17
mov ecx, dword [ebp - 0x18]
push eax
call dword [0x4d9444]
mov ecx, edi
call dword [ebp - 0x18]
mov byte [ebp - 4], 0x14
mov edx, dword [ebp - 0x20]
cmp edx, 0x10
jb 0x44d4f7
mov ecx, dword [ebp - 0x34]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x44d4ed
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44e337
push edx
push ecx
call fcn.00484d63
add esp, 8
xorps xmm0, xmm0
movlpd qword [ebp - 0x54], xmm0
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x50], 0
movlpd qword [ebp - 0x5c], xmm0
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x134], 0
xor eax, eax
mov dword [ebp - 0x124], 0
mov dword [ebp - 0x120], 7
mov word [ebp - 0x134], ax
push dword [ebp - 0x20c]
mov byte [ebp - 4], 0x1b
lea edi, [esi + 0x20]
mov eax, dword [edi]
movlpd qword [ebp - 0x7c], xmm0
mov esi, dword [eax]
lea eax, [ebp - 0x210]
push eax
mov ecx, esi
call dword [0x4d9444]
mov ecx, edi
call esi
mov edi, eax
mov byte [ebp - 4], 0x1c
xor eax, eax
mov esi, dword [edi]
mov dword [ebp - 0x7c], 0
mov dword [ebp - 0x208], eax
mov dword [ebp - 0x78], eax
test esi, esi
je 0x44d5cd
push 0x10
call fcn.00484da3
mov dword [ebp - 0x200], eax
xorps xmm0, xmm0
add esp, 4
mov dword [ebp - 0x208], eax
mov dword [ebp - 0x7c], esi
movups xmmword [eax], xmm0
mov dword [eax + 4], 1
mov dword [eax + 8], 1
mov dword [eax], vtable.std::_Ref_count_resource_class_asw::sfx::prepare_setup_intf___struct_std::default_delete_class_asw::sfx::prepare_setup_intf__.0
mov dword [eax + 0xc], esi
mov dword [ebp - 0x78], eax
mov dword [edi], 0
mov byte [ebp - 4], 0x1e
mov esi, dword [ebp - 0x210]
test esi, esi
je 0x44d5ee
mov eax, dword [esi]
push 1
mov edi, dword [eax + 4]
mov ecx, edi
call dword [0x4d9444]
mov ecx, esi
call edi
mov eax, dword [ebp - 0x7c]
lea ecx, [ebp - 0x5c]
mov edi, dword [ebp - 0x204]
lea edx, [ebp - 0x74]
sub esp, 0x28
mov dword [ebp - 0x28], edi
mov eax, dword [eax]
mov esi, dword [eax]
mov eax, esp
sub esp, 0x28
mov dword [eax + 4], ecx
mov dword [eax], vtable.std::_Func_impl_no_alloc_class__public_virtual:_unsigned_int___thiscall_asw::sfx::sfx_process::run_wchar_t_const___wchar_t_const__::_12::_lambda_2___void__unsigned_char_.0
mov dword [eax + 8], edx
mov dword [eax + 0x24], eax
mov eax, edx
mov dword [ebp - 0x30], eax
lea eax, [ebp - 0x84]
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 0x54]
mov dword [ebp - 0x24], eax
mov eax, esp
movups xmm0, xmmword [ebp - 0x30]
movups xmmword [eax + 4], xmm0
mov dword [eax + 0x14], ecx
mov ecx, esi
mov dword [eax], 0x4ed464
mov dword [eax + 0x24], eax
lea eax, [ebp - 0x134]
push eax
call dword [0x4d9444]
mov ecx, dword [ebp - 0x7c]
call esi
mov eax, dword [edi + 0x44]
mov edi, dword [edi + 0x34]
mov dword [ebp - 0x200], eax
push 0x4e8d60
mov eax, dword [eax]
push str.tmp_path
mov eax, dword [eax + 8]
mov dword [ebp - 0x218], eax
mov eax, dword [edi]
mov esi, dword [eax + 0x14]
lea eax, [ebp - 0xcc]
push eax
mov ecx, esi
call dword [0x4d9444]
mov ecx, edi
call esi
mov esi, eax
mov dword [ebp - 0x34], 0
xor eax, eax
mov byte [ebp - 4], 0x20
mov word [ebp - 0x34], ax
xor ecx, ecx
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 7
mov eax, dword [esi + 0x10]
add eax, 0xf
mov dword [ebp - 0x18], 1
add eax, 2
setb cl
neg ecx
or ecx, eax
push ecx
lea ecx, [ebp - 0x34]
call fcn.0040edc0
cmp dword [esi + 0x14], 8
lea eax, [ebp - 0x34]
mov dword [ebp - 0xe8], eax
mov dword [ebp - 0x3c], eax
lea eax, [ebp - 0xe8]
mov dword [ebp - 0x38], eax
mov eax, dword [esi + 0x10]
jb 0x44d6f5
mov esi, dword [esi]
push eax
push esi
lea ecx, [ebp - 0x3c]
call fcn.0040b710
sub esp, 8
lea ecx, [ebp - 0x3c]
mov eax, esp
mov dword [eax], str.icarus_info.xml
mov dword [eax + 4], 0xf
call fcn.0040b710
cmp dword [ebp - 0x20], 8
lea eax, [ebp - 0x34]
mov esi, dword [ebp - 0x218]
mov ecx, esi
cmovae eax, dword [ebp - 0x34]
push eax
call dword [0x4d9444]
mov ecx, dword [ebp - 0x200]
call esi
lea ecx, [ebp - 0x34]
call fcn.004127e0
lea ecx, [ebp - 0xcc]
mov byte [ebp - 4], 0x1e
call fcn.004127e0
cmp dword [ebp - 0x5c], 0
je 0x44d839
lea eax, [ebp - 0x74]
push eax
lea ecx, [ebp - 0x4c]
call fcn.00412740
push 4
push 0x4ed1f0
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 0x22
call fcn.0040b4c0
mov esi, dword [ebp - 0x84]
mov eax, dword [esi]
mov dword [ebp - 0x34], 0
mov edi, dword [eax + 4]
push 0xd
xor eax, eax
mov dword [ebp - 0x24], 0
push str._Sfx_Starting
lea ecx, [ebp - 0x34]
mov dword [ebp - 0x20], 7
mov word [ebp - 0x34], ax
mov byte [ebp - 4], 0x22
call fcn.004123e0
lea eax, [ebp - 0x34]
mov byte [ebp - 4], 0x24
push eax
lea eax, [ebp - 0xcc]
mov ecx, edi
push eax
call dword [0x4d9444]
mov ecx, esi
call edi
mov byte [ebp - 4], 0x25
cmp dword [eax + 0x14], 8
mov ecx, dword [eax + 0x10]
jb 0x44d7de
mov eax, dword [eax]
push ecx
push eax
lea ecx, [ebp - 0x4c]
call fcn.0040b4c0
lea ecx, [ebp - 0xcc]
call fcn.004127e0
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 0x22
call fcn.004127e0
mov edi, dword [ebp - 0x5c]
mov eax, dword [edi]
mov esi, dword [eax + 0x10]
lea eax, [ebp - 0x4c]
push eax
mov ecx, esi
call dword [0x4d9444]
mov ecx, edi
call esi
mov edi, dword [ebp - 0x5c]
push 0xffffffffffffffff
mov eax, dword [edi]
mov esi, dword [eax + 0x14]
mov ecx, esi
call dword [0x4d9444]
mov ecx, edi
call esi
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 0x1e
call fcn.004127e0
mov edi, dword [ebp - 0x204]
xorps xmm0, xmm0
movlpd qword [ebp - 0x8c], xmm0
mov eax, dword [edi + 0x24]
mov esi, dword [eax]
lea eax, [ebp - 0x8c]
push eax
mov ecx, esi
call dword [0x4d9444]
lea ecx, [edi + 0x24]
call esi
push 0x34
lea eax, [ebp - 0x11c]
push 0
push eax
call fcn.004a08b0
add esp, 0xc
mov byte [ebp - 0x104], 0
cmp dword [ebp - 0x120], 8
lea eax, [ebp - 0x134]
cmovae eax, dword [ebp - 0x134]
mov dword [ebp - 0x100], 0
mov dword [ebp - 0xfc], 0
mov dword [ebp - 0xf8], 0
mov dword [ebp - 0xf4], 0
mov dword [ebp - 0xf0], 0
mov dword [ebp - 0xec], 0
push 1
push eax
lea ecx, [ebp - 0x11c]
mov byte [ebp - 4], 0x2a
call fcn.0040a5c0
mov dword [ebp - 0x34], 0
push 0xf
xor eax, eax
mov dword [ebp - 0x24], 0
push str.icarus_info.xml
lea ecx, [ebp - 0x34]
mov dword [ebp - 0x20], 7
mov word [ebp - 0x34], ax
mov byte [ebp - 4], 0x2b
call fcn.004123e0
mov eax, dword [ebp - 0x20c]
mov byte [ebp - 4], 0x2d
push 0x4e8d60
push str.tmp_path
mov edi, dword [eax]
mov eax, dword [edi]
mov esi, dword [eax + 0x14]
lea eax, [ebp - 0x234]
push eax
mov ecx, esi
call dword [0x4d9444]
mov ecx, edi
call esi
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 0x2e
push ecx
mov edx, eax
lea ecx, [ebp - 0x4c]
call fcn.0040b7a0
add esp, 4
mov esi, eax
sub esp, 8
mov byte [ebp - 4], 0x2f
mov eax, esp
lea ecx, [ebp - 0x11c]
mov dword [eax], str.icarus_info_path
mov dword [eax + 4], 0x10
call fcn.0040abb0
mov edi, eax
cmp edi, esi
je 0x44d9a3
mov ecx, edi
call fcn.004127e0
movups xmm0, xmmword [esi]
movups xmmword [edi], xmm0
movq xmm0, qword [esi + 0x10]
movq qword [edi + 0x10], xmm0
xor eax, eax
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 7
mov word [esi], ax
lea ecx, [ebp - 0x4c]
call fcn.004127e0
lea ecx, [ebp - 0x234]
call fcn.004127e0
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 0x2b
call fcn.004127e0
mov eax, dword [ebp - 0x20c]
push 0
push 0x4e95fc
mov edi, dword [eax]
mov eax, dword [edi]
mov esi, dword [eax + 0x18]
mov ecx, esi
call dword [0x4d9444]
mov ecx, edi
call esi
sub esp, 8
lea ecx, [ebp - 0x11c]
test al, al
mov eax, esp
je 0x44da00
mov dword [eax], 0x4e95fc
mov dword [eax + 4], 5
jmp 0x44da0d
mov dword [eax], str.install
mov dword [eax + 4], 7
call fcn.0040abb0
cmp dword [ebp - 0xa4], 0
je 0x44dacc
cmp dword [ebp - 0xa0], 8
lea eax, [ebp - 0xb4]
mov byte [ebp - 0x258], 0
cmovae eax, dword [ebp - 0xb4]
mov dword [ebp - 0x254], 0
mov dword [ebp - 0x250], 0
mov dword [ebp - 0x24c], 0
mov dword [ebp - 0x248], 0
mov dword [ebp - 0x244], 0
mov dword [ebp - 0x240], 0
push 0
push eax
lea ecx, [ebp - 0x270]
mov byte [ebp - 4], 0x34
call fcn.0040a5c0
lea eax, [ebp - 0x270]
mov byte [ebp - 4], 0x35
push eax
lea ecx, [ebp - 0x11c]
call fcn.0044ea10
lea ecx, [ebp - 0x248]
mov byte [ebp - 4], 0x2b
call fcn.0040b200
lea ecx, [ebp - 0x254]
call fcn.0040ac70
cmp byte [ebp - 0x258], 0
je 0x44dacc
lea ecx, [ebp - 0x270]
call fcn.004127e0
mov eax, dword [ebp - 0x20c]
push 0
push str.silent
mov edi, dword [eax]
mov eax, dword [edi]
mov esi, dword [eax + 0x18]
mov ecx, esi
call dword [0x4d9444]
mov ecx, edi
call esi
test al, al
je 0x44db2e
sub esp, 8
lea ecx, [ebp - 0x11c]
mov eax, esp
mov dword [eax], str.silent
mov dword [eax + 4], 6
call fcn.0040a5a0
test al, al
jne 0x44db2e
sub esp, 8
lea ecx, [ebp - 0x11c]
mov eax, esp
mov dword [eax], str.silent
mov dword [eax + 4], 6
call fcn.0040abb0
cmp dword [ebp - 0x5c], 0
je 0x44dbaf
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov edx, eax
lea ecx, [ebp - 0x234]
call fcn.004101b0
mov esi, eax
sub esp, 8
mov byte [ebp - 4], 0x36
mov eax, esp
lea ecx, [ebp - 0x11c]
mov dword [eax], str.sssid
mov dword [eax + 4], 5
call fcn.0040abb0
mov edi, eax
cmp edi, esi
je 0x44dba0
mov ecx, edi
call fcn.004127e0
movups xmm0, xmmword [esi]
movups xmmword [edi], xmm0
movq xmm0, qword [esi + 0x10]
movq qword [edi + 0x10], xmm0
xor eax, eax
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 7
mov word [esi], ax
nop
lea ecx, [ebp - 0x234]
mov byte [ebp - 4], 0x2b
call fcn.004127e0
mov edi, dword [ebp - 0x204]
mov eax, dword [edi + 0x88]
mov dword [ebp - 0x200], eax
test eax, eax
je 0x44dd26
mov eax, dword [eax]
mov esi, dword [eax]
mov ecx, esi
call dword [0x4d9444]
mov ecx, dword [ebp - 0x200]
call esi
test al, al
je 0x44dd26
mov esi, dword [ebp - 0x1c]
mov eax, dword [esi]
mov edi, dword [eax]
lea eax, [ebp - 0x234]
push eax
mov ecx, edi
call dword [0x4d9444]
mov ecx, esi
call edi
mov esi, eax
mov dword [ebp - 0xe4], 0
xor eax, eax
mov byte [ebp - 4], 0x3a
mov word [ebp - 0xe4], ax
xor ecx, ecx
mov dword [ebp - 0xd4], 0
mov dword [ebp - 0xd0], 7
mov eax, dword [esi + 0x10]
add eax, 9
mov dword [ebp - 0x18], 2
add eax, 2
setb cl
neg ecx
or ecx, eax
push ecx
lea ecx, [ebp - 0xe4]
call fcn.0040edc0
cmp dword [esi + 0x14], 8
lea eax, [ebp - 0xe4]
mov dword [ebp - 0x200], eax
mov dword [ebp - 0x3c], eax
lea eax, [ebp - 0x200]
mov dword [ebp - 0x38], eax
mov eax, dword [esi + 0x10]
jb 0x44dc74
mov esi, dword [esi]
push eax
push esi
lea ecx, [ebp - 0x3c]
call fcn.0040b710
sub esp, 8
lea ecx, [ebp - 0x3c]
mov eax, esp
mov dword [eax], str.proxy.ini
mov dword [eax + 4], 9
call fcn.0040b710
lea ecx, [ebp - 0x234]
mov byte [ebp - 4], 0x3c
call fcn.004127e0
mov eax, dword [ebp - 0x204]
mov edi, dword [eax + 0x88]
mov eax, dword [edi]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x4d9444]
mov ecx, edi
call esi
lea ecx, [ebp - 0xe4]
push ecx
mov ecx, eax
call fcn.00472560
sub esp, 8
lea ecx, [ebp - 0x11c]
mov eax, esp
mov dword [eax], 0x4eca7c
mov dword [eax + 4], 9
call fcn.0040abb0
mov ecx, eax
lea eax, [ebp - 0xe4]
cmp ecx, eax
je 0x44dd15
cmp dword [ebp - 0xd0], 8
push dword [ebp - 0xd4]
cmovae eax, dword [ebp - 0xe4]
push eax
call fcn.004123e0
lea ecx, [ebp - 0xe4]
call fcn.004127e0
mov edi, dword [ebp - 0x204]
mov esi, dword [edi + 0x80]
mov eax, dword [esi]
mov dword [ebp - 0x34], 0
mov edi, dword [eax]
push 0x12
push str.sfx_running_icarus
lea ecx, [ebp - 0x34]
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0xf
mov byte [ebp - 0x34], 0
mov byte [ebp - 4], 0x2b
call fcn.00410270
lea eax, [ebp - 0x34]
mov byte [ebp - 4], 0x3e
push eax
mov ecx, edi
call dword [0x4d9444]
mov ecx, esi
call edi
mov byte [ebp - 4], 0x2b
mov edx, dword [ebp - 0x20]
cmp edx, 0x10
jb 0x44dda8
mov ecx, dword [ebp - 0x34]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x44dd9e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44e33c
push edx
push ecx
call fcn.00484d63
add esp, 8
push ecx
push 0
lea eax, [ebp - 0xcc]
push eax
lea ecx, [ebp - 0x11c]
call fcn.0040a320
mov byte [ebp - 4], 0x3f
mov edi, dword [ebp - 0x8c]
push 0xffffffffffffffff
mov eax, dword [edi]
mov esi, dword [eax]
lea eax, [ebp - 0xcc]
push eax
lea eax, [ebp - 0x11c]
mov ecx, esi
push eax
call dword [0x4d9444]
mov ecx, edi
call esi
mov edi, eax
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0x18], edi
test eax, eax
je 0x44de05
mov eax, dword [eax]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x4d9444]
mov ecx, dword [ebp - 0x5c]
call esi
test edi, edi
je 0x44dec3
cmp edi, 0xfffffffe
je 0x44dec3
cmp edi, 0x1b207
je 0x44dec3
cmp edi, 0xe06d7363
je 0x44de3e
cmp edi, 0xabe0
jb 0x44de3e
cmp edi, 0xb3af
jbe 0x44dec3
mov eax, dword [ebp - 0x8c]
mov dword [ebp - 0x218], eax
push 0x4e8d60
push str.tmp_path
mov eax, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x200], eax
mov eax, dword [ebp - 0x20c]
mov edi, dword [eax]
mov eax, dword [edi]
mov esi, dword [eax + 0x14]
lea eax, [ebp - 0x34]
push eax
mov ecx, esi
call dword [0x4d9444]
mov ecx, edi
call esi
push 0x4ed4b0
mov edx, eax
mov byte [ebp - 4], 0x40
lea ecx, [ebp - 0x234]
call fcn.0044edb0
add esp, 4
mov byte [ebp - 4], 0x41
mov esi, dword [ebp - 0x200]
mov ecx, esi
push eax
call dword [0x4d9444]
mov ecx, dword [ebp - 0x218]
call esi
lea ecx, [ebp - 0x234]
call fcn.004127e0
lea ecx, [ebp - 0x34]
call fcn.004127e0
lea ecx, [ebp - 0xcc]
call fcn.004127e0
lea ecx, [ebp - 0xf4]
call fcn.0040b200
lea ecx, [ebp - 0x100]
call fcn.0040ac70
cmp byte [ebp - 0x104], 0
je 0x44def8
lea ecx, [ebp - 0x11c]
call fcn.004127e0
mov ecx, dword [ebp - 0x88]
or edi, 0xffffffff
mov dword [ebp - 0x20c], ecx
test ecx, ecx
je 0x44df4c
mov eax, edi
lock xadd dword [ecx + 4], eax
jne 0x44df4c
mov eax, dword [ecx]
mov esi, dword [eax]
mov ecx, esi
call dword [0x4d9444]
mov ecx, dword [ebp - 0x20c]
call esi
mov ecx, dword [ebp - 0x20c]
mov eax, edi
lock xadd dword [ecx + 8], eax
jne 0x44df4c
mov eax, dword [ecx]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x4d9444]
mov ecx, dword [ebp - 0x20c]
call esi
mov ecx, dword [ebp - 0x208]
test ecx, ecx
je 0x44df97
mov eax, edi
lock xadd dword [ecx + 4], eax
jne 0x44df97
mov eax, dword [ecx]
mov esi, dword [eax]
mov ecx, esi
call dword [0x4d9444]
mov ecx, dword [ebp - 0x208]
call esi
mov ecx, dword [ebp - 0x208]
mov eax, edi
lock xadd dword [ecx + 8], eax
jne 0x44df97
mov eax, dword [ecx]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x4d9444]
mov ecx, dword [ebp - 0x208]
call esi
lea ecx, [ebp - 0x134]
call fcn.004127e0
mov ecx, dword [ebp - 0x58]
mov dword [ebp - 0x208], ecx
test ecx, ecx
je 0x44dff0
mov eax, edi
lock xadd dword [ecx + 4], eax
jne 0x44dff0
mov eax, dword [ecx]
mov esi, dword [eax]
mov ecx, esi
call dword [0x4d9444]
mov ecx, dword [ebp - 0x208]
call esi
mov ecx, dword [ebp - 0x208]
mov eax, edi
lock xadd dword [ecx + 8], eax
jne 0x44dff0
mov eax, dword [ecx]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x4d9444]
mov ecx, dword [ebp - 0x208]
call esi
mov ecx, dword [ebp - 0x50]
mov dword [ebp - 0x208], ecx
test ecx, ecx
je 0x44e03a
mov eax, edi
lock xadd dword [ecx + 4], eax
jne 0x44e03a
mov eax, dword [ecx]
mov esi, dword [eax]
mov ecx, esi
call dword [0x4d9444]
mov ecx, dword [ebp - 0x208]
call esi
mov eax, edi
mov edi, dword [ebp - 0x208]
lock xadd dword [edi + 8], eax
jne 0x44e03a
mov eax, dword [edi]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x4d9444]
mov ecx, edi
call esi
mov esi, dword [ebp - 0x1c]
test esi, esi
je 0x44e054
mov eax, dword [esi]
push 1
mov edi, dword [eax + 4]
mov ecx, edi
call dword [0x4d9444]
mov ecx, esi
call edi
lea ecx, [ebp - 0x74]
call fcn.004127e0
mov ecx, dword [ebp - 0x80]
mov dword [ebp - 0x208], ecx
test ecx, ecx
je 0x44e0a9
or edi, 0xffffffff
mov eax, edi
lock xadd dword [ecx + 4], eax
jne 0x44e0a9
mov eax, dword [ecx]
mov esi, dword [eax]
mov ecx, esi
call dword [0x4d9444]
mov ecx, dword [ebp - 0x208]
call esi
mov eax, edi
mov edi, dword [ebp - 0x208]
lock xadd dword [edi + 8], eax
jne 0x44e0a9
mov eax, dword [edi]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x4d9444]
mov ecx, edi
call esi
mov eax, dword [ebp - 0x204]
mov dword [ebp - 4], 6
jmp 0x44e0e9
cmp dword [ebp - 0x18], 0xac30
jne 0x44e215
mov edi, dword [eax + 0x80]
push 1
mov eax, dword [edi]
mov esi, dword [eax + 0x18]
mov ecx, esi
call dword [0x4d9444]
mov ecx, edi
call esi
lea ecx, [ebp - 0x28]
call fcn.00412370
lea ecx, [ebp - 0x3c]
movq xmm0, qword [eax]
movq qword [ebp - 0x9c], xmm0
xorps xmm0, xmm0
mov eax, dword [eax + 8]
mov dword [ebp - 0x94], eax
mov dword [ebp - 0x90], 0x44373141
mov dword [ebp - 0x8c], 0x36453841
mov dword [ebp - 0x88], 0xd3
movlpd qword [ebp - 0x3c], xmm0
call fcn.00411780
mov byte [ebp - 4], 0x44
mov edi, dword [ebp - 0x3c]
test edi, edi
je 0x44e1cd
mov eax, dword [edi]
push 0
mov dword [ebp - 0x200], str.Restart_is_required
mov esi, dword [eax + 0x3c]
mov ecx, esi
call dword [0x4d9444]
mov ecx, edi
call esi
test al, al
je 0x44e1cd
mov eax, dword [edi]
lea ecx, [ebp - 0x74]
mov esi, dword [eax + 8]
lea eax, [ebp - 0x200]
push eax
call fcn.00448a30
add esp, 4
mov byte [ebp - 4], 0x45
lea eax, [ebp - 0x74]
push dword [ebp - 0x64]
cmp dword [ebp - 0x60], 8
mov ecx, esi
cmovae eax, dword [ebp - 0x74]
push eax
lea eax, [ebp - 0x9c]
push eax
push 0
call dword [0x4d9444]
mov ecx, edi
call esi
lea ecx, [ebp - 0x74]
call fcn.004127e0
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x38]
mov dword [ebp - 0x1c], ecx
test ecx, ecx
je 0x44e215
or edi, 0xffffffff
mov eax, edi
lock xadd dword [ecx + 4], eax
jne 0x44e215
mov eax, dword [ecx]
mov esi, dword [eax]
mov ecx, esi
call dword [0x4d9444]
mov ecx, dword [ebp - 0x1c]
call esi
mov eax, dword [ebp - 0x1c]
lock xadd dword [eax + 8], edi
dec edi
jne 0x44e215
mov eax, dword [eax]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x4d9444]
mov ecx, dword [ebp - 0x1c]
call esi
mov eax, dword [ebp - 0x204]
push dword [ebp - 0x18]
mov edi, dword [eax + 0x80]
mov eax, dword [edi]
mov esi, dword [eax + 0x1c]
mov ecx, esi
call dword [0x4d9444]
mov ecx, edi
call esi
mov eax, dword [ebp - 0x204]
mov edi, dword [eax + 0x80]
mov eax, dword [edi]
mov dword [ebp - 0x74], 0
mov esi, dword [eax]
push 0xa
push str.sfx_finish
lea ecx, [ebp - 0x74]
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x60], 0xf
mov byte [ebp - 0x74], 0
mov byte [ebp - 4], 6
call fcn.00410270
lea eax, [ebp - 0x74]
mov byte [ebp - 4], 0x47
push eax
mov ecx, esi
call dword [0x4d9444]
mov ecx, edi
call esi
mov edx, dword [ebp - 0x60]
cmp edx, 0x10
jb 0x44e2b9
mov ecx, dword [ebp - 0x74]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x44e2af
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44e397
push edx
push ecx
call fcn.00484d63
add esp, 8
lea ecx, [ebp - 0xb4]
call fcn.004127e0
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.00484d55
mov esp, ebp
pop ebp
ret 8
lea eax, [ebp - 0x40]
mov dword [ebp - 0x40], 0x44373141
push eax
lea ecx, [ebp - 0x90]
mov dword [ebp - 0x3c], 0x36453841
mov dword [ebp - 0x38], 0x2c
call fcn.00412370
push eax
lea ecx, [ebp - 0xcc]
call fcn.004123a0
call fcn.0044ebf0
push ecx
lea ecx, [ebp - 0x284]
call fcn.0044c500
push 0x505ac4
lea eax, [ebp - 0x284]
push eax
call fcn.004a0209
call fcn.004a949f
call fcn.004a949f
lea ecx, [ebp - 0x134]
call fcn.00412590
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x200], eax
mov dword [ebp - 0x40], 0x44373141
mov dword [ebp - 0x3c], 0x36453841
mov dword [ebp - 0x38], 0xc3
call fcn.00412370
lea ecx, [ebp - 0x40]
push ecx
push eax
lea ecx, [ebp - 0x234]
call fcn.004123a0
lea eax, [ebp - 0x200]
push eax
call fcn.0044eeb0
add esp, 4
push 0
push 0
call fcn.004a0209
call fcn.004a949f
int3