Function at 0x402625
Capabilities:
Read file on windows
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x486a06
mov eax, dword fs:[0]
push eax
mov eax, 0x3048
call fcn.004575f0
mov eax, dword [0x4aeda0]
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 eax, dword [ebp + 8]
mov dword [ebp - 0x3034], eax
test eax, eax
jne 0x402680
xor eax, eax
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.004504a7
leave
ret
push str.Drop_payload_archive
push 0x4c
call fcn.0041ef10
push eax
mov ebx, 0x800010
mov ecx, str..SupportWrapper.cpp
call fcn.0041f0d0
add esp, 0xc
xor eax, eax
push 0x1ffe
mov word [ebp - 0x3014], ax
xor ebx, ebx
lea eax, [ebp - 0x3012]
push ebx
push eax
call fcn.004504c0
add esp, 0xc
push 0x1000
lea eax, [ebp - 0x3014]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov esi, dword [sym.imp.KERNEL32.dll_CreateFileW]
push ebx
mov edi, 0x80
push edi
push 3
push ebx
push 1
push accept
lea eax, [ebp - 0x3014]
push eax
call esi
mov dword [ebp - 0x303c], eax
cmp eax, 0xffffffff
jne 0x40272f
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [ebp - 0x3014]
push eax
push str.Cant_open_sfx__S___lu_
push 0x5a
call fcn.0041ef10
push eax
mov ebx, 0x800002
mov ecx, str..SupportWrapper.cpp
call fcn.0041f0d0
add esp, 0x14
jmp 0x402664
push ebx
push edi
push 2
push ebx
push ebx
push 0x40000000
push dword [ebp - 0x3034]
call esi
mov dword [ebp - 0x3040], eax
cmp eax, 0xffffffff
jne 0x40277b
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push dword [ebp - 0x3034]
push str.cant_create_archive_file__S___lu_
push 0x68
call fcn.0041ef10
push eax
mov ebx, 0x800002
mov ecx, str..SupportWrapper.cpp
call fcn.0041f0d0
add esp, 0x14
xor ebx, ebx
push str.trend_micro
lea ecx, [ebp - 0x3030]
call fcn.00401efd
mov esi, str._support_tools
push esi
mov dword [ebp - 4], ebx
call fcn.004506f0
pop ecx
push eax
push esi
lea eax, [ebp - 0x3030]
call fcn.00408e97
push 0xfff
lea eax, [ebp - 0x1013]
push ebx
push eax
mov byte [ebp - 0x1014], bl
call fcn.004504c0
mov eax, dword [ebp - 0x302c]
add esp, 0xc
cmp dword [ebp - 0x3018], 0x10
jae 0x4027d7
lea eax, [ebp - 0x302c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov dword [ebp - 0x3034], eax
xor esi, esi
mov dword [ebp - 0x304c], ebx
mov dword [ebp - 0x3048], ebx
push ebx
lea eax, [ebp - 0x3038]
push eax
mov eax, 0x1000
sub eax, esi
push eax
lea eax, [ebp + esi - 0x1014]
push eax
push dword [ebp - 0x303c]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x40290f
mov eax, dword [ebp - 0x3038]
add esi, eax
xor edi, edi
cmp dword [ebp - 0x3018], 0x10
mov eax, dword [ebp - 0x302c]
jae 0x40283d
lea eax, [ebp - 0x302c]
push dword [ebp - 0x3034]
push eax
lea eax, [ebp + edi - 0x1014]
push eax
call fcn.00450fad
add esp, 0xc
test eax, eax
je 0x4028e0
mov eax, esi
sub eax, dword [ebp - 0x3034]
inc edi
cmp edi, eax
jbe 0x402828
sub esi, edi
add dword [ebp - 0x304c], edi
push esi
lea eax, [ebp + edi - 0x1014]
adc dword [ebp - 0x3048], ebx
push eax
lea eax, [ebp - 0x1014]
push eax
call fcn.00452630
add esp, 0xc
cmp dword [ebp - 0x3048], ebx
ja 0x4028ad
jb 0x4027f2
cmp dword [ebp - 0x304c], 0x1000000
jbe 0x4027f2
push str.Cannot_find_sfx_signature
push 0x7b
call fcn.0041ef10
push eax
mov ebx, 0x800002
mov ecx, str..SupportWrapper.cpp
call fcn.0041f0d0
add esp, 0xc
push 0
push 1
lea ecx, [ebp - 0x3030]
call fcn.0040230d
jmp 0x402664
add edi, dword [ebp - 0x3034]
push ebx
lea eax, [ebp - 0x3050]
push eax
sub esi, edi
push esi
mov esi, dword [sym.imp.KERNEL32.dll_WriteFile]
lea eax, [ebp + edi - 0x1014]
push eax
push dword [ebp - 0x3040]
call esi
mov edi, dword [sym.imp.KERNEL32.dll_ReadFile]
jmp 0x402977
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.read_self_extract_file_failed__err_lu
push 0x82
push ecx
call fcn.0041ef10
pop ecx
push eax
mov ebx, 0x800002
mov ecx, str..SupportWrapper.cpp
call fcn.0041f0d0
add esp, 0x10
xor esi, esi
push 0
push 1
lea ecx, [ebp - 0x3030]
call fcn.0040230d
mov eax, esi
jmp 0x402666
cmp dword [ebp - 0x3038], ebx
je 0x402997
push ebx
lea eax, [ebp - 0x3050]
push eax
push dword [ebp - 0x3038]
lea eax, [ebp - 0x1014]
push eax
push dword [ebp - 0x3040]
call esi
push ebx
lea eax, [ebp - 0x3038]
push eax
push 0x1000
lea eax, [ebp - 0x1014]
push eax
push dword [ebp - 0x303c]
call edi
test eax, eax
jne 0x402952
push dword [ebp - 0x303c]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
call esi
push dword [ebp - 0x3040]
call esi
push str.Drop_payload_archive
push 0xa6
call fcn.0041ef10
push eax
mov ebx, 0x800020
mov ecx, str..SupportWrapper.cpp
call fcn.0041f0d0
xor esi, esi
add esp, 0xc
inc esi
jmp 0x40293c