Function at 0x407760
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 0x4cc082
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x2b0
mov eax, dword [0x4f6440]
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 0x4077e0
test al, 2
je 0x4077e0
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 0x407eec
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 0x407f1a
push edi
push dword [ebp - 0x2b8]
call dword [sym.imp.KERNEL32.dll_LoadResource]
test eax, eax
je 0x407f1a
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov dword [ebp - 0x2c0], eax
test eax, eax
je 0x407f1a
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 0x407f1a
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 0x407f1a
cmp byte [ebx + 8], 0
mov edi, 1
mov dword [ebp - 0x2b4], edi
je 0x407ee0
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 0x4078f0
sub ecx, edx
sar ecx, 1
push ecx
push esi
lea ecx, [ebp - 0x238]
call fcn.0041ed10
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 0x407958
or ecx, 0xffffffff
dec eax
cmp eax, ecx
cmovb ecx, eax
cmp word [edx + ecx*2], 0x2e
lea ecx, [edx + ecx*2]
je 0x407952
cmp ecx, edx
je 0x407958
sub ecx, 2
cmp word [ecx], 0x2e
jne 0x407945
sub ecx, edx
sar ecx, 1
jmp 0x40795b
or ecx, 0xffffffff
cmp ecx, 0xffffffff
je 0x407ea6
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.0041ed10
push 4
push str..zip
lea ecx, [ebp - 0x250]
mov byte [ebp - 4], 2
call fcn.0041d0a0
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 0x407a4a
mov edx, dword [ebp - 0x250]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x407a40
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x407f48
push ecx
push edx
call fcn.0049f19c
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 0x407e35
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 0x4ea960
lea ecx, [ebp - 0x238]
mov byte [ebp - 4], 5
call fcn.004190b0
cmp eax, 0xffffffff
jne 0x407adc
push 1
push 0x4ea968
lea ecx, [ebp - 0x280]
call fcn.0041cde0
jmp 0x407b99
push ecx
push 0x4ea960
lea ecx, [ebp - 0x238]
call fcn.004190b0
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.0041ed10
mov ecx, dword [ebp - 0x26c]
cmp ecx, 7
jbe 0x407b7b
mov edx, dword [ebp - 0x280]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x407b71
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x407f57
push ecx
push edx
call fcn.0049f19c
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.00406e90
add esp, 8
test al, al
lea eax, [ebp - 0x268]
je 0x407d94
cmp dword [ebp - 0x254], 7
cmova eax, dword [ebp - 0x268]
push eax
call fcn.004aed0f
add esp, 4
cmp byte [ebx + 0xc], 0
je 0x407db3
mov ecx, dword [ebp - 0x270]
mov eax, accept
sub eax, ecx
cmp eax, 1
jb 0x407f4d
cmp dword [ebp - 0x26c], 7
lea eax, [ebp - 0x280]
push 1
cmova eax, dword [ebp - 0x280]
push 0x4ea948
push ecx
push eax
push ecx
push dword [ebp - 0x2bc]
lea ecx, [ebp - 0x2b0]
call fcn.00420570
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.0041d0a0
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 0x407d35
mov edx, dword [ebp - 0x298]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x407d2b
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x407f52
push ecx
push edx
call fcn.0049f19c
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 0x407db3
mov edx, dword [ebp - 0x2b0]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x407d88
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x407f52
push ecx
push edx
call fcn.0049f19c
add esp, 8
jmp 0x407db3
cmp dword [ebp - 0x254], 7
cmova eax, dword [ebp - 0x268]
push eax
call fcn.004aed0f
add esp, 4
xor eax, eax
mov dword [ebp - 0x2b4], eax
mov ecx, dword [ebp - 0x23c]
cmp ecx, 7
jbe 0x407df3
mov edx, dword [ebp - 0x250]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x407de9
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x407f57
push ecx
push edx
call fcn.0049f19c
add esp, 8
mov ecx, dword [ebp - 0x26c]
cmp ecx, 7
jbe 0x407e5a
mov edx, dword [ebp - 0x280]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x407e29
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x407f57
push ecx
push edx
call fcn.0049f19c
add esp, 8
jmp 0x407e5a
cmp dword [ebp - 0x254], 7
lea eax, [ebp - 0x268]
cmova eax, dword [ebp - 0x268]
push eax
call fcn.004aed0f
add esp, 4
xor eax, eax
mov dword [ebp - 0x2b4], eax
mov ecx, dword [ebp - 0x254]
cmp ecx, 7
jbe 0x407e9a
mov edx, dword [ebp - 0x268]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x407e90
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x407f5c
push ecx
push edx
call fcn.0049f19c
add esp, 8
mov esi, dword [ebp - 0x238]
mov edi, dword [ebp - 0x224]
cmp edi, 7
jbe 0x407eda
lea edi, [edi*2 + 2]
mov eax, esi
cmp edi, 0x1000
jb 0x407ed0
mov esi, dword [eax - 4]
add edi, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x407f61
push edi
push esi
call fcn.0049f19c
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 0x407f28
mov edx, dword [ebx + 0x10]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x407f1e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x407f66
jmp 0x407f1e
xor edi, edi
jmp 0x407ee0
push ecx
push edx
call fcn.0049f19c
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.0049f18e
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
call fcn.004a47f6
call fcn.00401360
call fcn.004a47f6
call fcn.004a47f6
call fcn.004a47f6
call fcn.004a47f6
call fcn.004a47f6
int3