Function at 0x37373883
Capabilities:
Copy file
Delete file
Extract resource via kernel32 functions
Get common file path
Get file attributes
Get file size
Read file on windows
Set file attributes
Timestomp file

Disassembly:
sub esp, 0x44c
push ebx
push ebp
mov ebp, dword [esp + 0x458]
push esi
push edi
xor edi, edi
push ebp
mov dword [esp + 0x30], edi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x14], 0x2e8
mov dword [esp + 0x24], edi
xor ebx, ebx
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], edi
mov dword [esp + 0x18], edi
call sub.MSVCRT.dll_strlen
cmp eax, 0xc
pop ecx
jl 0x37373d17
lea eax, [eax + ebp - 0xc]
push str.winzip32.exe
push eax
call sub.MSVCRT.dll_strcmp
pop ecx
test eax, eax
pop ecx
je 0x37373d17
push edi
push edi
push 3
push edi
push 1
push 0xc0000000
push ebp
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
cmp esi, 0xffffffff
je 0x37373d17
push edi
push esi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
cmp eax, 0x800000
jbe 0x3737391a
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x37373d17
push edi
push edi
push 0xd6
push esi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp eax, 0xffffffff
je 0x3737390e
lea eax, [esp + 0x38]
push edi
push eax
lea eax, [esp + 0x44]
push 1
push eax
push esi
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x3737390e
movsx eax, byte [esp + 0x3c]
cmp eax, 0x8f
push esi
je 0x3737390f
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea eax, [esp + 0x5c]
push eax
push edi
push 0x37379e58
push 0x3737b518
call dword [sym.imp.KERNEL32.dll_GetTempFileNameA]
test eax, eax
je 0x37373d17
lea eax, [esp + 0x5c]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
lea eax, [esp + 0x5c]
push str..exe
push eax
call sub.MSVCRT.dll_strcat
pop ecx
lea eax, [esp + 0x60]
pop ecx
push edi
push eax
push 0x3737c118
call dword [sym.imp.KERNEL32.dll_CopyFileA]
test eax, eax
je 0x37373d17
lea eax, [esp + 0x5c]
push 0x80
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
push 2
push edi
push ebp
call dword [sym.imp.KERNEL32.dll_LoadLibraryExA]
mov esi, eax
cmp esi, edi
mov dword [esp + 0x24], esi
je 0x37373dc7
lea eax, [esp + 0x5c]
push edi
push eax
call dword [sym.imp.KERNEL32.dll_BeginUpdateResourceA]
mov ebp, eax
xor edi, edi
cmp ebp, edi
mov dword [esp + 0x34], ebp
jne 0x373739f7
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
jmp 0x37373dc7
mov dword [esp + 0x30], edi
movzx eax, word [esp + 0x30]
push 3
push eax
push dword [esp + 0x2c]
call dword [sym.imp.KERNEL32.dll_FindResourceA]
mov esi, eax
test esi, esi
je 0x37373ae2
push esi
push dword [esp + 0x28]
call dword [sym.imp.KERNEL32.dll_LoadResource]
test eax, eax
je 0x37373ae2
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov edi, eax
test edi, edi
je 0x37373ae2
push esi
push dword [esp + 0x28]
call dword [sym.imp.KERNEL32.dll_SizeofResource]
test eax, eax
je 0x37373ae2
mov ecx, 0x128
cmp eax, ecx
jne 0x37373a68
cmp dword [esp + 0x20], 0
jne 0x37373ae2
mov dword [esp + 0x20], edi
jmp 0x37373ae2
cmp eax, 0x2e8
jne 0x37373a77
test ebx, ebx
jne 0x37373ae2
mov ebx, edi
jmp 0x37373ae2
cmp eax, 0x8a8
jne 0x37373a8b
cmp dword [esp + 0x18], 0
jne 0x37373ae2
mov dword [esp + 0x18], edi
jmp 0x37373ae2
cmp eax, 0xea8
jne 0x37373a9f
cmp dword [esp + 0x1c], 0
jne 0x37373ae2
mov dword [esp + 0x1c], edi
jmp 0x37373ae2
cmp eax, 0x130
jne 0x37373ab3
cmp dword [esp + 0x14], 0
jne 0x37373ae2
mov dword [esp + 0x14], edi
jmp 0x37373ae2
cmp dword [esp + 0x2c], 0
jne 0x37373ac2
mov dword [esp + 0x2c], edi
mov dword [esp + 0x28], eax
test ebx, ebx
je 0x37373ae2
cmp dword [esp + 0x20], 0
je 0x37373ae2
cmp dword [esp + 0x18], 0
je 0x37373ae2
cmp dword [esp + 0x1c], 0
je 0x37373ae2
cmp dword [esp + 0x14], 0
jne 0x37373af9
inc dword [esp + 0x30]
cmp dword [esp + 0x30], 0x80
jl 0x373739fb
mov ecx, 0x128
xor edx, edx
cmp dword [esp + 0x2c], edx
jne 0x37373b3d
cmp ebx, edx
jne 0x37373b95
mov eax, dword [esp + 0x20]
cmp eax, edx
jne 0x37373b4f
cmp dword [esp + 0x18], edx
jne 0x37373b4f
cmp dword [esp + 0x1c], edx
jne 0x37373b55
cmp dword [esp + 0x14], edx
jne 0x37373b89
lea eax, [esp + 0x5c]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
push dword [esp + 0x24]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
jmp 0x37373d17
cmp ebx, edx
jne 0x37373b95
mov eax, dword [esp + 0x28]
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x10], eax
jmp 0x37373b95
cmp dword [esp + 0x1c], edx
je 0x37373b63
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x10], 0xea8
jmp 0x37373b95
cmp dword [esp + 0x18], edx
je 0x37373b77
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x10], 0x8a8
jmp 0x37373b95
cmp eax, edx
je 0x37373b83
mov ebx, eax
mov dword [esp + 0x10], ecx
jmp 0x37373b95
cmp dword [esp + 0x14], edx
je 0x37373ba2
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x10], 0x130
cmp dword [esp + 0x20], edx
je 0x37373ba2
push ecx
push dword [esp + 0x24]
jmp 0x37373ba7
push dword [esp + 0x10]
push ebx
mov esi, dword [sym.imp.KERNEL32.dll_UpdateResourceA]
mov edi, 0x804
push edi
push 1
push 3
push ebp
call esi
push dword [esp + 0x10]
push ebx
push edi
push 2
push 3
push ebp
call esi
cmp dword [esp + 0x18], 0
je 0x37373bd9
push 0x8a8
push dword [esp + 0x1c]
jmp 0x37373bde
push dword [esp + 0x10]
push ebx
push edi
push 3
push 3
push ebp
call esi
cmp dword [esp + 0x1c], 0
je 0x37373bf8
push 0xea8
push dword [esp + 0x20]
jmp 0x37373bfd
push dword [esp + 0x10]
push ebx
push edi
push 4
push 3
push ebp
call esi
cmp dword [esp + 0x14], 0
je 0x37373c17
push 0x130
push dword [esp + 0x18]
jmp 0x37373c1c
push dword [esp + 0x10]
push ebx
push edi
push 5
push 3
push ebp
call esi
push dword [esp + 0x24]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
xor ebp, ebp
push ebp
push ebp
push 3
push ebp
push 1
push 0x80000000
push dword [esp + 0x478]
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov ebx, eax
push ebp
push ebx
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov ebp, eax
cmp ebp, 0xffffffff
jne 0x37373c68
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor edi, edi
jmp 0x37373dc7
lea eax, [ebp + 0x10]
push eax
push 8
push dword [0x3737ad14]
call dword [0x3737acd4]
test eax, eax
mov dword [esp + 0x28], eax
jne 0x37373c93
lea eax, [esp + 0x5c]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
push ebx
jmp 0x3737390f
lea ecx, [esp + 0x38]
push 0
push ecx
push ebp
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x37373cc1
lea eax, [esp + 0x5c]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push dword [esp + 0x28]
push 0
jmp 0x37373d0b
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_CloseHandle]
call ebx
push ebp
mov ebp, dword [esp + 0x2c]
push ebp
push edi
push 0x66
push 0xa
push dword [esp + 0x48]
call esi
test eax, eax
jne 0x37373ced
lea eax, [esp + 0x5c]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
push ebp
jmp 0x37373cbd
xor edi, edi
push edi
push dword [esp + 0x38]
call dword [sym.imp.KERNEL32.dll_EndUpdateResourceA]
test eax, eax
jne 0x37373d1e
lea eax, [esp + 0x5c]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
push ebp
push edi
push dword [0x3737ad14]
call dword [0x3737acd0]
xor eax, eax
jmp 0x37373dd4
push ebp
push edi
push dword [0x3737ad14]
call dword [0x3737acd0]
mov esi, dword [esp + 0x460]
push edi
push edi
push 3
push edi
push 1
push 0x80000000
push esi
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov ebp, eax
cmp ebp, 0xffffffff
je 0x37373dc7
lea eax, [esp + 0x54]
push eax
lea eax, [esp + 0x48]
push eax
lea eax, [esp + 0x54]
push eax
push ebp
call dword [sym.imp.KERNEL32.dll_GetFileTime]
push ebp
call ebx
push edi
push edi
push 3
push edi
push edi
lea eax, [esp + 0x70]
push 0x40000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov ebp, eax
cmp ebp, 0xffffffff
je 0x37373dc7
lea eax, [esp + 0x54]
push eax
lea eax, [esp + 0x48]
push eax
lea eax, [esp + 0x54]
push eax
push ebp
call dword [sym.imp.KERNEL32.dll_SetFileTime]
push ebp
call ebx
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
mov ebx, dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
push 0x80
push esi
mov ebp, eax
call ebx
push edi
lea eax, [esp + 0x60]
push esi
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileA]
push ebp
push esi
call ebx
push 1
pop edi
lea eax, [esp + 0x5c]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x44c
ret