Function at 0x4073b0
Capabilities:
Check if file exists
Extract resource via kernel32 functions
Get file attributes
Move file
Set file attributes
Write file on windows

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 0x4c9ab2
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x2b0
mov eax, dword [0x4f2480]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, edx
mov dword [ebp - 0x2b4], ecx
push 0x104
lea eax, [ebp - 0x220]
mov dword [ebp - 4], 0
push eax
xor edi, edi
push edi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x407430
test al, 2
je 0x407430
and eax, 0xfffffffd
push eax
push esi
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
push 2
push 0
lea eax, [ebp - 0x220]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov ecx, eax
mov dword [ebp - 0x2b8], ecx
test ecx, ecx
je 0x407b3c
mov eax, dword [ebp - 0x2b4]
push 0xa
movzx eax, ax
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov edi, eax
test edi, edi
je 0x407b6a
push edi
push dword [ebp - 0x2b8]
call dword [sym.imp.KERNEL32.dll_LoadResource]
test eax, eax
je 0x407b6a
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov dword [ebp - 0x2c0], eax
test eax, eax
je 0x407b6a
push edi
push dword [ebp - 0x2b8]
call dword [sym.imp.KERNEL32.dll_SizeofResource]
push 0
push 0x80
push 2
push 0
push 0
push 0x40000000
push esi
mov dword [ebp - 0x2b4], eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov edi, eax
cmp edi, 0xffffffff
je 0x407b6a
push 0
lea eax, [ebp - 0x2bc]
push eax
push dword [ebp - 0x2b4]
push dword [ebp - 0x2c0]
push edi
call dword [sym.imp.KERNEL32.dll_WriteFile]
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x2b4]
cmp eax, dword [ebp - 0x2bc]
jne 0x407b6a
cmp byte [ebx + 8], 0
mov edi, 1
mov dword [ebp - 0x2b4], edi
je 0x407b30
mov ecx, esi
mov dword [ebp - 0x228], 0
xorps xmm0, xmm0
mov dword [ebp - 0x224], 0
movups xmmword [ebp - 0x238], xmm0
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x407540
sub ecx, edx
sar ecx, 1
push ecx
push esi
lea ecx, [ebp - 0x238]
call fcn.0041d510
mov byte [ebp - 4], 1
lea edx, [ebp - 0x238]
mov edi, dword [ebp - 0x224]
cmp edi, 7
mov esi, dword [ebp - 0x238]
mov eax, dword [ebp - 0x228]
cmova edx, esi
test eax, eax
je 0x4075a8
or ecx, 0xffffffff
dec eax
cmp eax, ecx
cmovb ecx, eax
cmp word [edx + ecx*2], 0x2e
lea ecx, [edx + ecx*2]
je 0x4075a2
cmp ecx, edx
je 0x4075a8
sub ecx, 2
cmp word [ecx], 0x2e
jne 0x407595
sub ecx, edx
sar ecx, 1
jmp 0x4075ab
or ecx, 0xffffffff
cmp ecx, 0xffffffff
je 0x407af6
cmp dword [ebp - 0x228], ecx
lea eax, [ebp - 0x238]
xorps xmm0, xmm0
mov dword [ebp - 0x240], 0
cmovb ecx, dword [ebp - 0x228]
cmp edi, 7
push ecx
cmova eax, esi
mov dword [ebp - 0x23c], 0
push eax
lea ecx, [ebp - 0x250]
movups xmmword [ebp - 0x250], xmm0
call fcn.0041d510
push 4
push str..zip
lea ecx, [ebp - 0x250]
mov byte [ebp - 4], 2
call fcn.0041b8a0
mov dword [ebp - 0x258], 0
xorps xmm0, xmm0
movups xmmword [ebp - 0x268], xmm0
mov dword [ebp - 0x254], 0
xor ecx, ecx
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x268], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x258], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
mov word [eax], cx
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x23c]
cmp ecx, 7
jbe 0x40769a
mov edx, dword [ebp - 0x250]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x407690
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x407b98
push ecx
push edx
call fcn.0049d99f
add esp, 8
cmp dword [ebp - 0x254], 7
lea ecx, [ebp - 0x268]
mov esi, dword [sym.imp.KERNEL32.dll_MoveFileW]
lea eax, [ebp - 0x238]
cmova ecx, dword [ebp - 0x268]
cmp dword [ebp - 0x224], 7
push ecx
cmova eax, dword [ebp - 0x238]
push eax
call esi
test eax, eax
je 0x407a85
xorps xmm0, xmm0
mov dword [ebp - 0x270], 0
xor eax, eax
mov dword [ebp - 0x26c], 7
movups xmmword [ebp - 0x280], xmm0
mov word [ebp - 0x280], ax
push ecx
push 0x4e79c4
lea ecx, [ebp - 0x238]
mov byte [ebp - 4], 5
call fcn.004179f0
cmp eax, 0xffffffff
jne 0x40772c
push 1
push 0x4e79cc
lea ecx, [ebp - 0x280]
call fcn.0041b5e0
jmp 0x4077e9
push ecx
push 0x4e79c4
lea ecx, [ebp - 0x238]
call fcn.004179f0
mov ecx, eax
mov dword [ebp - 0x240], 0
cmp dword [ebp - 0x228], ecx
lea eax, [ebp - 0x238]
xorps xmm0, xmm0
mov dword [ebp - 0x23c], 0
cmovb ecx, dword [ebp - 0x228]
cmp dword [ebp - 0x224], 7
push ecx
cmova eax, dword [ebp - 0x238]
lea ecx, [ebp - 0x250]
push eax
movups xmmword [ebp - 0x250], xmm0
call fcn.0041d510
mov ecx, dword [ebp - 0x26c]
cmp ecx, 7
jbe 0x4077cb
mov edx, dword [ebp - 0x280]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4077c1
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x407ba7
push ecx
push edx
call fcn.0049d99f
add esp, 8
movups xmm0, xmmword [ebp - 0x250]
movups xmmword [ebp - 0x280], xmm0
movq xmm0, qword [ebp - 0x240]
movq qword [ebp - 0x270], xmm0
xorps xmm0, xmm0
mov dword [ebp - 0x240], 0
xor eax, eax
mov dword [ebp - 0x23c], 7
movups xmmword [ebp - 0x250], xmm0
mov word [ebp - 0x250], ax
lea eax, [ebp - 0x250]
mov byte [ebp - 4], 6
push eax
lea eax, [ebp - 0x280]
push eax
lea edx, [ebx + 0x10]
lea ecx, [ebp - 0x268]
call fcn.00406ae0
add esp, 8
test al, al
lea eax, [ebp - 0x268]
je 0x4079e4
cmp dword [ebp - 0x254], 7
cmova eax, dword [ebp - 0x268]
push eax
call fcn.004ac965
add esp, 4
cmp byte [ebx + 0xc], 0
je 0x407a03
mov ecx, dword [ebp - 0x270]
mov eax, accept
sub eax, ecx
cmp eax, 1
jb 0x407b9d
cmp dword [ebp - 0x26c], 7
lea eax, [ebp - 0x280]
push 1
cmova eax, dword [ebp - 0x280]
push 0x4e79ac
push ecx
push eax
push ecx
push dword [ebp - 0x2bc]
lea ecx, [ebp - 0x2b0]
call fcn.0041ec90
mov byte [ebp - 4], 7
lea eax, [ebp - 0x250]
cmp dword [ebp - 0x23c], 7
lea ecx, [ebp - 0x2b0]
push dword [ebp - 0x240]
cmova eax, dword [ebp - 0x250]
push eax
call fcn.0041b8a0
mov dword [ebp - 0x288], 0
xorps xmm0, xmm0
movups xmmword [ebp - 0x298], xmm0
mov dword [ebp - 0x284], 0
xor ecx, ecx
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x298], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x288], xmm0
mov word [eax], cx
lea ecx, [ebp - 0x238]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
lea eax, [ebp - 0x298]
cmp dword [ebp - 0x224], 7
cmova ecx, dword [ebp - 0x238]
cmp dword [ebp - 0x284], 7
push ecx
cmova eax, dword [ebp - 0x298]
push eax
call esi
mov ecx, dword [ebp - 0x284]
cmp ecx, 7
jbe 0x407985
mov edx, dword [ebp - 0x298]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x40797b
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x407ba2
push ecx
push edx
call fcn.0049d99f
add esp, 8
mov ecx, dword [ebp - 0x29c]
xor eax, eax
mov dword [ebp - 0x288], 0
mov dword [ebp - 0x284], 7
mov word [ebp - 0x298], ax
cmp ecx, 7
jbe 0x407a03
mov edx, dword [ebp - 0x2b0]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4079d8
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x407ba2
push ecx
push edx
call fcn.0049d99f
add esp, 8
jmp 0x407a03
cmp dword [ebp - 0x254], 7
cmova eax, dword [ebp - 0x268]
push eax
call fcn.004ac965
add esp, 4
xor eax, eax
mov dword [ebp - 0x2b4], eax
mov ecx, dword [ebp - 0x23c]
cmp ecx, 7
jbe 0x407a43
mov edx, dword [ebp - 0x250]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x407a39
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x407ba7
push ecx
push edx
call fcn.0049d99f
add esp, 8
mov ecx, dword [ebp - 0x26c]
cmp ecx, 7
jbe 0x407aaa
mov edx, dword [ebp - 0x280]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x407a79
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x407ba7
push ecx
push edx
call fcn.0049d99f
add esp, 8
jmp 0x407aaa
cmp dword [ebp - 0x254], 7
lea eax, [ebp - 0x268]
cmova eax, dword [ebp - 0x268]
push eax
call fcn.004ac965
add esp, 4
xor eax, eax
mov dword [ebp - 0x2b4], eax
mov ecx, dword [ebp - 0x254]
cmp ecx, 7
jbe 0x407aea
mov edx, dword [ebp - 0x268]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x407ae0
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x407bac
push ecx
push edx
call fcn.0049d99f
add esp, 8
mov esi, dword [ebp - 0x238]
mov edi, dword [ebp - 0x224]
cmp edi, 7
jbe 0x407b2a
lea edi, [edi*2 + 2]
mov eax, esi
cmp edi, 0x1000
jb 0x407b20
mov esi, dword [eax - 4]
add edi, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x407bb1
push edi
push esi
call fcn.0049d99f
add esp, 8
mov edi, dword [ebp - 0x2b4]
push dword [ebp - 0x2b8]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov ecx, dword [ebx + 0x24]
cmp ecx, 7
jbe 0x407b78
mov edx, dword [ebx + 0x10]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x407b6e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x407bb6
jmp 0x407b6e
xor edi, edi
jmp 0x407b30
push ecx
push edx
call fcn.0049d99f
add esp, 8
mov eax, edi
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.0049d991
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
call fcn.004a2f76
call fcn.00401350
call fcn.004a2f76
call fcn.004a2f76
call fcn.004a2f76
call fcn.004a2f76
call fcn.004a2f76
int3