Function at 0x442fb0
Capabilities:
Check if file exists
Copy file
Delete file
Delete registry value
Get common file path
Persist via app paths registry key
Query or enumerate registry value
Set registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5263ab
mov eax, dword fs:[0]
push eax
mov eax, 0x25b0
call fcn.004a76b0
mov eax, dword [0x576644]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
push 0x208
mov dword [ebp - 0x25a8], eax
lea eax, [ebp - 0x420]
push 0
push eax
mov dword [ebp - 0x2594], 0
call fcn.004ca680
add esp, 0xc
mov dword [ebp - 0x25bc], 1
lea eax, [ebp - 0x25b8]
mov dword [ebp - 0x25b8], 0x104
push eax
lea eax, [ebp - 0x420]
push eax
lea eax, [ebp - 0x25bc]
push eax
push str.path
push str.SOFTWAREMicrosoftWindowsCurrentVersionApp_Pathshalowp.exe
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.SHLWAPI.dll_SHGetValueW]
mov edi, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4431a4
push 0x208
lea eax, [ebp - 0x628]
push 0
push eax
call fcn.004ca680
mov esi, dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea eax, [ebp - 0x628]
add esp, 0xc
push 0x104
push eax
push 0
call esi
lea eax, [ebp - 0x628]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
lea eax, [ebp - 0x2578]
push eax
call fcn.004189f0
add esp, 4
cmp dword [eax + 0x14], 8
jb 0x4430a6
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x628]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
mov edx, dword [ebp - 0x2564]
cmp edx, 8
jb 0x4430f4
mov ecx, dword [ebp - 0x2578]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4430ea
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x443f0b
push edx
push ecx
call fcn.004a7285
add esp, 8
xor eax, eax
mov dword [ebp - 0x2568], 0
mov word [ebp - 0x2578], ax
lea eax, [ebp - 0x628]
push eax
mov dword [ebp - 0x2564], 7
call edi
test eax, eax
je 0x443442
push 0x208
lea eax, [ebp - 0x420]
push 0
push eax
call fcn.004ca680
add esp, 0xc
lea eax, [ebp - 0x420]
push 0x104
push eax
push 0
call esi
lea eax, [ebp - 0x420]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
push str.path
push str.SOFTWAREMicrosoftWindowsCurrentVersionApp_Pathshalowp.exe
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.SHLWAPI.dll_SHDeleteValueW]
lea ecx, [ebp - 0x420]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x443173
sub ecx, edx
sar ecx, 1
lea eax, [ecx + ecx]
push eax
lea eax, [ebp - 0x420]
push eax
push 1
push str.path
push str.SOFTWAREMicrosoftWindowsCurrentVersionApp_Pathshalowp.exe
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.SHLWAPI.dll_SHSetValueW]
push 0x208
lea eax, [ebp - 0xf48]
push 0
push eax
call fcn.004ca680
lea eax, [ebp - 0x2578]
push eax
call fcn.004189f0
add esp, 0x10
cmp dword [eax + 0x14], 8
jb 0x4431ce
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x420]
push eax
lea eax, [ebp - 0xf48]
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
mov edx, dword [ebp - 0x2564]
cmp edx, 8
jb 0x443223
mov ecx, dword [ebp - 0x2578]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x443219
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x443f10
push edx
push ecx
call fcn.004a7285
add esp, 8
lea eax, [ebp - 0xf48]
push eax
call edi
test eax, eax
je 0x443442
call fcn.00422de0
mov ecx, eax
test ecx, ecx
je 0x443f15
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
lea esi, [eax + 0x10]
mov dword [ebp - 0x25ac], esi
push 0x800
lea eax, [ebp - 0x2560]
mov dword [ebp - 4], 0
push 0
push eax
call fcn.004ca680
push 0x800
lea eax, [ebp - 0x1d60]
push 0
push eax
call fcn.004ca680
add esp, 0x18
lea eax, [ebp - 0x2560]
push eax
push 0x400
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
push 0xfe
lea eax, [ebp - 0x726]
push 0
push eax
call fcn.004ca680
add esp, 0xc
xor edi, edi
nop dword [eax]
xor eax, eax
xorps xmm0, xmm0
mov word [ebp - 0x728], ax
lea eax, [ebp - 0x2570]
push eax
movups xmmword [ebp - 0x2570], xmm0
call dword [sym.imp.ole32.dll_CoCreateGuid]
push 0x200
lea eax, [ebp - 0x620]
push 0
push eax
call fcn.004ca680
movzx eax, byte [ebp - 0x2561]
push eax
movzx eax, byte [ebp - 0x2562]
push eax
movzx eax, byte [ebp - 0x2563]
push eax
movzx eax, byte [ebp - 0x2564]
push eax
movzx eax, byte [ebp - 0x2565]
push eax
movzx eax, byte [ebp - 0x2566]
push eax
movzx eax, byte [ebp - 0x2567]
push eax
movzx eax, byte [ebp - 0x2568]
push eax
movzx eax, word [ebp - 0x256a]
push eax
movzx eax, word [ebp - 0x256c]
push eax
push dword [ebp - 0x2570]
lea eax, [ebp - 0x620]
push str._08X__04X__04x__02X_02X__02X_02X_02X_02X_02X_02X
push eax
call fcn.00441e10
lea ecx, [ebp - 0x620]
add esp, 0x40
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x443356
sub ecx, edx
lea eax, [ebp - 0x620]
sar ecx, 1
push ecx
push eax
lea eax, [ebp - 0x728]
push 0x80
push eax
call fcn.004f5036
add esp, 0x10
lea eax, [ebp - 0x728]
push eax
lea eax, [ebp - 0x2560]
push eax
lea eax, [ebp - 0x1d60]
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
push str..tmp
lea eax, [ebp - 0x1d60]
push 0x400
push eax
call fcn.004f9945
add esp, 0xc
lea eax, [ebp - 0x1d60]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4433d2
inc edi
cmp edi, 0xa
jl 0x4432b0
jmp 0x443408
lea ecx, [ebp - 0x1d60]
lea edx, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4433e0
sub ecx, edx
lea eax, [ebp - 0x1d60]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x25ac]
call fcn.00412590
mov esi, dword [ebp - 0x25ac]
push esi
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
push esi
push 0
call dword [sym.imp.SHELL32.dll_SHCreateDirectory]
push esi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x443463
mov dword [ebp - 4], 0xffffffff
add esi, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x443442
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x2594]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004a7695
mov esp, ebp
pop ebp
ret
push 0x208
lea eax, [ebp - 0x930]
push 0
push eax
call fcn.004ca680
mov edi, dword [sym.imp.SHLWAPI.dll_PathCombineW]
lea eax, [ebp - 0x420]
add esp, 0xc
push 0x53a1cc
push eax
lea eax, [ebp - 0x930]
push eax
call edi
lea eax, [ebp - 0x930]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x4434c4
lea eax, [ebp - 0x930]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
push str.Takeaway.exe
lea eax, [ebp - 0x930]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
push 0x208
lea eax, [ebp - 0x218]
push 0
push eax
call fcn.004ca680
add esp, 0xc
lea eax, [ebp - 0x218]
push 0x53a1cc
push esi
push eax
call edi
push 0
lea eax, [ebp - 0x218]
push eax
lea eax, [ebp - 0x930]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
je 0x443423
push 0x208
lea eax, [ebp - 0xd40]
push 0
push eax
call fcn.004ca680
add esp, 0xc
lea eax, [ebp - 0x420]
push str.product
push eax
lea eax, [ebp - 0xd40]
push eax
call edi
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
push str..product
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea eax, [ebp - 0xd40]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x443580
push 0
lea eax, [ebp - 0x218]
push eax
lea eax, [ebp - 0xd40]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
je 0x443423
push 0x208
lea eax, [ebp - 0x1150]
push 0
push eax
call fcn.004ca680
add esp, 0xc
lea eax, [ebp - 0x420]
push str.UtilsNetULEx.dll
push eax
lea eax, [ebp - 0x1150]
push eax
call edi
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
push 0x537cdc
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
push 0
lea eax, [ebp - 0x218]
push eax
lea eax, [ebp - 0x1150]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
push 0x208
lea eax, [ebp - 0x1358]
push 0
push eax
call fcn.004ca680
add esp, 0xc
lea eax, [ebp - 0x420]
push str.Utils7z.dll
push eax
lea eax, [ebp - 0x1358]
push eax
call edi
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
push str.7z.dll
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
push 0
lea eax, [ebp - 0x218]
push eax
lea eax, [ebp - 0x1358]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
je 0x443423
lea eax, [ebp - 0x2580]
push eax
call fcn.00430c20
push dword [ebp - 0x2580]
mov byte [ebp - 4], 1
push str.parent_process_path__s
call fcn.00455860
add esp, 0xc
call fcn.00422de0
mov ecx, eax
test ecx, ecx
je 0x443f1f
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
lea edi, [eax + 0x10]
mov dword [ebp - 0x258c], edi
mov eax, dword [ebp - 0x2580]
mov byte [ebp - 4], 2
cmp dword [eax - 0xc], 0
je 0x443889
push 0x5c
push eax
call fcn.004cb818
mov edx, eax
add esp, 8
test edx, edx
je 0x443889
mov eax, dword [ebp - 0x2580]
sub edx, eax
sar edx, 1
cmp edx, 0xffffffff
je 0x443889
mov esi, dword [eax - 0xc]
mov ecx, esi
sub ecx, edx
xor edx, edx
add ecx, 0xffffffff
cmovns edx, ecx
mov dword [ebp - 0x2584], edx
cmp edx, esi
jl 0x4436f6
add eax, 0xfffffff0
push eax
call fcn.0040d1f0
add esp, 4
lea esi, [eax + 0x10]
mov dword [ebp - 0x2590], esi
jmp 0x44373b
mov ecx, dword [eax - 0x10]
test ecx, ecx
je 0x443708
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
test eax, eax
jne 0x443716
call fcn.00422de0
mov ecx, eax
mov edx, dword [eax]
mov eax, dword [edx + 0x10]
call eax
push eax
mov eax, dword [ebp - 0x2584]
lea ecx, [ebp - 0x2590]
push eax
sub esi, eax
mov eax, dword [ebp - 0x2580]
lea eax, [eax + esi*2]
push eax
call fcn.0041a620
mov esi, dword [ebp - 0x2590]
push 0x2e
push esi
mov byte [ebp - 4], 3
call fcn.004cb818
add esp, 8
test eax, eax
je 0x44386d
sub eax, esi
sar eax, 1
cmp eax, 0xffffffff
je 0x44386d
xor ecx, ecx
test eax, eax
cmovns ecx, eax
lea eax, [esi - 0x10]
mov dword [ebp - 0x25a0], ecx
mov dword [ebp - 0x2584], eax
cmp ecx, dword [esi - 0xc]
jl 0x44378e
push eax
call fcn.0040d1f0
add esp, 4
add eax, 0x10
mov dword [ebp - 0x25a0], eax
jmp 0x4437c6
mov ecx, dword [eax]
test ecx, ecx
je 0x44379f
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
test eax, eax
jne 0x4437ad
call fcn.00422de0
mov ecx, eax
mov edx, dword [eax]
mov eax, dword [edx + 0x10]
call eax
push eax
push dword [ebp - 0x25a0]
lea ecx, [ebp - 0x25a0]
push esi
call fcn.0041a620
mov eax, dword [ebp - 0x25a0]
lea edx, [edi - 0x10]
mov byte [ebp - 4], 4
lea esi, [eax - 0x10]
mov dword [ebp - 0x25b0], edx
cmp esi, edx
je 0x443838
cmp dword [edx + 0xc], 0
lea edi, [edx + 0xc]
jl 0x443823
mov ecx, dword [esi]
cmp ecx, dword [edx]
jne 0x443823
push esi
call fcn.0040d1f0
mov dword [ebp - 0x259c], eax
add esp, 4
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x443812
mov edx, dword [ebp - 0x25b0]
push edx
mov ecx, dword [edx]
mov eax, dword [ecx]
call dword [eax + 4]
mov edi, dword [ebp - 0x259c]
add edi, 0x10
mov dword [ebp - 0x258c], edi
jmp 0x443838
push dword [eax - 0xc]
lea ecx, [ebp - 0x258c]
push eax
call fcn.00412590
mov edi, dword [ebp - 0x258c]
mov byte [ebp - 4], 3
or eax, 0xffffffff
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x443851
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x2584]
or eax, 0xffffffff
mov byte [ebp - 4], 2
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x443889
mov ecx, dword [edx]
push edx
jmp 0x443884
mov byte [ebp - 4], 2
add esi, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x443889
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 0x2598], 0
mov dword [ebp - 0x2594], 0
mov dword [ebp - 0x2588], 0
call fcn.00422de0
mov ecx, eax
test ecx, ecx
je 0x443f29
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
lea esi, [eax + 0x10]
mov dword [ebp - 0x2590], esi
push str.ntdll.dll
mov byte [ebp - 4], 5
mov dword [ebp - 0x2584], 0
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov dword [ebp - 0x259c], eax
test eax, eax
je 0x443962
push str.RtlGetNtVersionNumbers
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x443927
lea ecx, [ebp - 0x2588]
push ecx
lea ecx, [ebp - 0x2594]
push ecx
lea ecx, [ebp - 0x2598]
push ecx
call eax
movzx eax, word [ebp - 0x2588]
mov dword [ebp - 0x2588], eax
mov dword [ebp - 0x2584], 1
push dword [ebp - 0x259c]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
cmp dword [ebp - 0x2584], 0
je 0x443962
push dword [ebp - 0x2594]
lea eax, [ebp - 0x2590]
push dword [ebp - 0x2598]
push str._d._d
push eax
call fcn.00413080
mov esi, dword [ebp - 0x2590]
add esp, 0x10
call fcn.00422de0
mov ecx, eax
test ecx, ecx
je 0x443f33
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x2584], eax
push esi
push edi
lea eax, [ebp - 0x2584]
mov byte [ebp - 4], 6
push str.ex1_sex2_s
push eax
call fcn.00413080
sub esp, 0x18
mov eax, esp
mov dword [ebp - 0x259c], esp
mov dword [eax + 0x24], 0
mov byte [ebp - 0x2579], 0
lea eax, [ebp - 0x25a4]
mov byte [ebp - 4], 8
push eax
call fcn.0046ac54
lea eax, [ebp - 0x25a4]
mov dword [ebp - 0x2568], eax
lea eax, [ebp - 0x2579]
mov dword [ebp - 0x2564], eax
lea eax, [ebp - 0x2568]
push eax
push 0x416460
push 0x579ea0
call fcn.0046b656
add esp, 0x10
test eax, eax
je 0x443ed6
lea eax, [ebp - 0x25a4]
mov byte [ebp - 4], 0xa
push eax
call fcn.0046ac8e
mov esi, dword [ebp - 0x2584]
add esp, 4
mov ecx, dword [0x579e9c]
mov byte [ebp - 4], 7
mov byte [ebp - 4], 6
push 0
push esi
push str.uninstall_from
call fcn.00412080
lea edx, [esi - 0x10]
mov byte [ebp - 4], 5
or esi, 0xffffffff
mov eax, esi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x443a4c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x2590]
mov eax, esi
mov byte [ebp - 4], 2
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x443a6d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea edx, [edi - 0x10]
mov byte [ebp - 4], 1
or edi, 0xffffffff
mov eax, edi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x443a8b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x2580]
mov eax, edi
mov byte [ebp - 4], 0
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x443aac
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0x208
lea eax, [ebp - 0x1560]
push 0
push eax
call fcn.004ca680
add esp, 0xc
lea eax, [ebp - 0x420]
push str.UtilsSCBasic.dll
push eax
lea eax, [ebp - 0x1560]
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
mov esi, dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
lea eax, [ebp - 0x218]
push eax
call esi
push str.Utils
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x443b1c
lea eax, [ebp - 0x218]
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHCreateDirectory]
push str.SCBasic.dll
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
push 0
lea eax, [ebp - 0x218]
push eax
lea eax, [ebp - 0x1560]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
call fcn.00422de0
mov ecx, eax
test ecx, ecx
je 0x443f3d
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x2580], eax
push dword [ebp - 0x25a8]
lea ecx, [ebp - 0x2580]
mov byte [ebp - 4], 0xd
call fcn.004115c0
test al, al
jne 0x443bb2
mov eax, dword [ebp - 0x25a8]
test eax, eax
jne 0x443b8a
xor ecx, ecx
jmp 0x443ba5
mov ecx, eax
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x443b90
mov eax, dword [ebp - 0x25a8]
sub ecx, edx
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x2580]
call fcn.00412590
push 2
push 0x53ce04
lea ecx, [ebp - 0x2580]
mov byte [ebp - 4], 0xe
call fcn.0043ba80
mov ecx, str._READYUNINSTALL
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x443bd0
sub ecx, edx
sar ecx, 1
push ecx
push str._READYUNINSTALL
lea ecx, [ebp - 0x2580]
call fcn.0043ba80
mov byte [ebp - 0x2579], 0
lea eax, [ebp - 0x25b4]
mov byte [ebp - 4], 0xf
push eax
call fcn.0046ac54
lea eax, [ebp - 0x25b4]
mov dword [ebp - 0x2568], eax
lea eax, [ebp - 0x2579]
mov dword [ebp - 0x2564], eax
lea eax, [ebp - 0x2568]
push eax
push 0x431390
push 0x57a09c
call fcn.0046b656
add esp, 0x10
test eax, eax
je 0x443eb2
lea eax, [ebp - 0x25b4]
mov byte [ebp - 4], 0x11
push eax
call fcn.0046ac8e
mov ecx, dword [0x57a098]
add esp, 4
mov byte [ebp - 4], 0xe
call fcn.0041ac20
test eax, eax
je 0x443e28
push 0x208
lea eax, [ebp - 0xb38]
push 0
push eax
call fcn.004ca680
add esp, 0xc
lea eax, [ebp - 0xb38]
push 0x104
push eax
call fcn.004b03c0
call fcn.00422de0
mov ecx, eax
test ecx, ecx
je 0x443f47
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x258c], eax
lea eax, [ebp - 0xb38]
mov byte [ebp - 4], 0x14
push eax
lea ecx, [ebp - 0x258c]
call fcn.004115c0
test al, al
jne 0x443cf5
lea ecx, [ebp - 0xb38]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x443cd3
sub ecx, edx
lea eax, [ebp - 0xb38]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x258c]
call fcn.00412590
mov byte [ebp - 4], 0x15
call fcn.00422de0
mov ecx, eax
test ecx, ecx
je 0x443f51
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x2588], eax
push str.silence
lea ecx, [ebp - 0x2588]
mov byte [ebp - 4], 0x16
call fcn.004115c0
test al, al
jne 0x443d42
push 7
push str.silence
lea ecx, [ebp - 0x2588]
call fcn.00412590
lea eax, [ebp - 0x258c]
mov byte [ebp - 4], 0x17
push eax
lea eax, [ebp - 0x2588]
push eax
lea eax, [ebp - 0x2598]
push eax
call fcn.00489570
add esp, 0xc
mov edx, dword [ebp - 0x2588]
mov eax, edi
mov byte [ebp - 4], 0x19
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x443d84
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x258c]
mov eax, edi
mov byte [ebp - 4], 0x1a
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x443da5
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 2
push 0x53ce04
lea ecx, [ebp - 0x2580]
call fcn.0043ba80
mov ecx, str._CHK
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x443dc0
sub ecx, edx
sar ecx, 1
push ecx
push str._CHK
lea ecx, [ebp - 0x2580]
call fcn.0043ba80
push 1
push 0x53824c
lea ecx, [ebp - 0x2580]
call fcn.0043ba80
mov eax, dword [ebp - 0x2598]
lea ecx, [ebp - 0x2580]
push dword [eax - 0xc]
push eax
call fcn.0043ba80
mov edx, dword [ebp - 0x2598]
mov eax, edi
mov byte [ebp - 4], 0xe
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x443e28
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebp - 0x218]
push eax
call esi
lea eax, [ebp - 0x218]
push eax
call esi
push 0x53a1cc
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
mov esi, dword [ebp - 0x2580]
lea eax, [ebp - 0x218]
push 0xffffffffffffffff
push 0
push 0
push 1
push 1
push esi
push eax
call fcn.00449e00
mov dword [ebp - 0x2594], eax
add esi, 0xfffffff0
mov byte [ebp - 4], 0
mov ecx, edi
lock xadd dword [esi + 0xc], ecx
dec ecx
test ecx, ecx
jg 0x443e8a
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x25ac]
mov dword [ebp - 4], 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], edi
dec edi
test edi, edi
jg 0x443442
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
jmp 0x44343f
lea eax, [ebp - 0x25b4]
mov byte [ebp - 4], 0x12
push eax
call fcn.0046acd0
add esp, 4
mov byte [ebp - 4], 0x10
test al, al
je 0x443f71
jmp 0x443f5b
lea eax, [ebp - 0x25a4]
mov byte [ebp - 4], 0xb
push eax
call fcn.0046acd0
add esp, 4
mov byte [ebp - 4], 9
test al, al
je 0x443f71
sub esp, 8
lea eax, [ebp - 0x25a4]
mov ecx, esp
push eax
call fcn.004112b0
call fcn.00412b40
call fcn.004d5d48
call fcn.004d5d48
push 0x80004005
call fcn.00409d40
push 0x80004005
call fcn.00409d40
push 0x80004005
call fcn.00409d40
push 0x80004005
call fcn.00409d40
push 0x80004005
call fcn.00409d40
push 0x80004005
call fcn.00409d40
push 0x80004005
call fcn.00409d40
sub esp, 8
lea eax, [ebp - 0x25b4]
mov ecx, esp
push eax
call fcn.004112b0
call fcn.00412b40
call fcn.0046b727
int3