Function at 0x1004779
Capabilities:
Accept command line arguments
Check mutex on windows
Get file size
Read file on windows

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x7bc
mov eax, dword [0x100eb54]
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
xor esi, esi
push esi
mov dword [ebp - 4], eax
mov dword [ebp - 0x214], edi
mov dword [0x100eb74], edi
call dword [sym.imp.KERNEL32.dll_SetLastError]
push 0x1001868
push 1
push esi
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
cmp eax, esi
mov dword [0x100eb70], eax
je 0x1004d7e
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x1004d7e
push esi
call dword [sym.imp.ole32.dll_CoInitialize]
test eax, eax
jl 0x1004d7e
mov ecx, 0x100eb80
call fcn.01003ccf
call dword [sym.imp.COMCTL32.dll_InitCommonControls]
call sub.SHELL32.dll_Ordinal_258
mov ecx, 0x10160b0
call fcn.01006730
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
mov ebx, eax
mov ax, word [ebx]
cmp ax, 0x22
push 2
pop ecx
jne 0x100482d
add ebx, ecx
mov ax, word [ebx]
cmp ax, si
je 0x1004825
cmp ax, 0x22
jne 0x1004815
cmp word [ebx], 0x22
jne 0x1004845
jmp 0x1004843
cmp ax, 0x20
jbe 0x1004845
add ebx, ecx
cmp word [ebx], 0x20
ja 0x1004833
jmp 0x1004845
cmp ax, 0x20
ja 0x100484d
add ebx, ecx
mov ax, word [ebx]
cmp ax, si
jne 0x100483d
push ebx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
je 0x1004d73
push ebx
push 0x104
lea eax, [ebp - 0x20c]
push eax
call fcn.0100371a
push 0x1001860
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.SHLWAPI.dll_StrTrimW]
push esi
push 0x80
push 3
push esi
push 1
push 0x80000000
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov edi, eax
cmp edi, 0xffffffff
je 0x1004d8f
lea ecx, [ebp - 0x4d4]
call fcn.01003763
lea ecx, [ebp - 0x374]
call fcn.01003763
lea ecx, [ebp - 0x644]
call fcn.01003787
lea ecx, [ebp - 0x7bc]
call fcn.010037ab
push esi
push edi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
cmp eax, dword [ebp - 0x4d4]
push esi
jne 0x10049ed
lea eax, [ebp - 0x210]
push eax
push 0x160
lea eax, [ebp - 0x4d4]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, dword [ebp - 0x210]
cmp eax, dword [ebp - 0x4d4]
jne 0x1004d8f
mov eax, dword [ebp - 0x4d0]
mov dword [0x100eb98], eax
mov eax, dword [ebp - 0x434]
push 0x19
pop ecx
push 6
lea esi, [ebp - 0x4cc]
mov edi, 0x100eb9c
rep movsd dword es:[edi], dword [esi]
pop ecx
push 7
lea esi, [ebp - 0x468]
mov edi, 0x100ec18
rep movsd dword es:[edi], dword [esi]
pop ecx
lea esi, [ebp - 0x450]
mov edi, 0x100ec30
rep movsd dword es:[edi], dword [esi]
mov dword [0x100ec4c], eax
mov eax, dword [ebp - 0x430]
mov dword [0x100ec50], eax
mov eax, dword [ebp - 0x42c]
mov dword [0x100ec54], eax
mov eax, dword [ebp - 0x428]
mov dword [0x100ec58], eax
mov eax, dword [ebp - 0x3e8]
push 0xc
pop ecx
lea esi, [ebp - 0x424]
mov edi, 0x100ec5c
rep movsd dword es:[edi], dword [esi]
lea esi, [ebp - 0x3f4]
mov edi, 0x100ec8c
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov dword [0x100ec98], eax
mov eax, dword [ebp - 0x3e4]
mov dword [0x100ec9c], eax
mov eax, dword [ebp - 0x3e0]
mov dword [0x100eca0], eax
mov eax, dword [ebp - 0x3dc]
mov dword [0x100eca4], eax
mov eax, dword [ebp - 0x3d8]
mov dword [0x100eca8], eax
mov eax, dword [ebp - 0x3d4]
mov dword [0x100ecac], eax
mov eax, dword [ebp - 0x3d0]
lea esi, [ebp - 0x3cc]
jmp 0x1004d18
cmp eax, dword [ebp - 0x374]
jne 0x1004afd
lea eax, [ebp - 0x210]
push eax
push 0x160
lea eax, [ebp - 0x374]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, dword [ebp - 0x210]
cmp eax, dword [ebp - 0x374]
jne 0x1004d8f
mov eax, dword [ebp - 0x370]
mov dword [0x100eb98], eax
mov eax, dword [ebp - 0x2d4]
push 0x19
pop ecx
push 6
lea esi, [ebp - 0x36c]
mov edi, 0x100eb9c
rep movsd dword es:[edi], dword [esi]
pop ecx
push 7
lea esi, [ebp - 0x308]
mov edi, 0x100ec18
rep movsd dword es:[edi], dword [esi]
pop ecx
lea esi, [ebp - 0x2f0]
mov edi, 0x100ec30
rep movsd dword es:[edi], dword [esi]
mov dword [0x100ec4c], eax
mov eax, dword [ebp - 0x2d0]
mov dword [0x100ec50], eax
mov eax, dword [ebp - 0x2cc]
mov dword [0x100ec54], eax
mov eax, dword [ebp - 0x2c8]
mov dword [0x100ec58], eax
mov eax, dword [ebp - 0x288]
push 0xc
pop ecx
lea esi, [ebp - 0x2c4]
mov edi, 0x100ec5c
rep movsd dword es:[edi], dword [esi]
lea esi, [ebp - 0x294]
mov edi, 0x100ec8c
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov dword [0x100ec98], eax
mov eax, dword [ebp - 0x284]
mov dword [0x100ec9c], eax
mov eax, dword [ebp - 0x280]
mov dword [0x100eca0], eax
mov eax, dword [ebp - 0x27c]
mov dword [0x100eca4], eax
mov eax, dword [ebp - 0x278]
mov dword [0x100eca8], eax
mov eax, dword [ebp - 0x274]
mov dword [0x100ecac], eax
mov eax, dword [ebp - 0x270]
lea esi, [ebp - 0x26c]
jmp 0x1004d18
cmp eax, dword [ebp - 0x644]
jne 0x1004c0d
lea eax, [ebp - 0x210]
push eax
push 0x170
lea eax, [ebp - 0x644]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, dword [ebp - 0x210]
cmp eax, dword [ebp - 0x644]
jne 0x1004d8f
mov eax, dword [ebp - 0x640]
mov dword [0x100eb98], eax
mov eax, dword [ebp - 0x594]
push 0x1d
pop ecx
push 6
lea esi, [ebp - 0x63c]
mov edi, 0x100eb9c
rep movsd dword es:[edi], dword [esi]
pop ecx
push 7
lea esi, [ebp - 0x5c8]
mov edi, 0x100ec18
rep movsd dword es:[edi], dword [esi]
pop ecx
lea esi, [ebp - 0x5b0]
mov edi, 0x100ec30
rep movsd dword es:[edi], dword [esi]
mov dword [0x100ec4c], eax
mov eax, dword [ebp - 0x590]
mov dword [0x100ec50], eax
mov eax, dword [ebp - 0x58c]
mov dword [0x100ec54], eax
mov eax, dword [ebp - 0x588]
mov dword [0x100ec58], eax
mov eax, dword [ebp - 0x548]
push 0xc
pop ecx
lea esi, [ebp - 0x584]
mov edi, 0x100ec5c
rep movsd dword es:[edi], dword [esi]
lea esi, [ebp - 0x554]
mov edi, 0x100ec8c
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov dword [0x100ec98], eax
mov eax, dword [ebp - 0x544]
mov dword [0x100ec9c], eax
mov eax, dword [ebp - 0x540]
mov dword [0x100eca0], eax
mov eax, dword [ebp - 0x53c]
mov dword [0x100eca4], eax
mov eax, dword [ebp - 0x538]
mov dword [0x100eca8], eax
mov eax, dword [ebp - 0x534]
mov dword [0x100ecac], eax
mov eax, dword [ebp - 0x530]
lea esi, [ebp - 0x52c]
jmp 0x1004d18
cmp eax, dword [ebp - 0x7bc]
jne 0x1004d90
lea eax, [ebp - 0x210]
push eax
push 0x178
lea eax, [ebp - 0x7bc]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, dword [ebp - 0x210]
cmp eax, dword [ebp - 0x7bc]
jne 0x1004d8f
mov eax, dword [ebp - 0x7b8]
mov dword [0x100eb98], eax
mov eax, dword [ebp - 0x704]
push 0x1f
pop ecx
push 6
lea esi, [ebp - 0x7b4]
mov edi, 0x100eb9c
rep movsd dword es:[edi], dword [esi]
pop ecx
push 7
lea esi, [ebp - 0x738]
mov edi, 0x100ec18
rep movsd dword es:[edi], dword [esi]
pop ecx
lea esi, [ebp - 0x720]
mov edi, 0x100ec30
rep movsd dword es:[edi], dword [esi]
mov dword [0x100ec4c], eax
mov eax, dword [ebp - 0x700]
mov dword [0x100ec50], eax
mov eax, dword [ebp - 0x6fc]
mov dword [0x100ec54], eax
mov eax, dword [ebp - 0x6f8]
mov dword [0x100ec58], eax
mov eax, dword [ebp - 0x6b8]
push 0xc
pop ecx
lea esi, [ebp - 0x6f4]
mov edi, 0x100ec5c
rep movsd dword es:[edi], dword [esi]
lea esi, [ebp - 0x6c4]
mov edi, 0x100ec8c
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov dword [0x100ec98], eax
mov eax, dword [ebp - 0x6b4]
mov dword [0x100ec9c], eax
mov eax, dword [ebp - 0x6b0]
mov dword [0x100eca0], eax
mov eax, dword [ebp - 0x6ac]
mov dword [0x100eca4], eax
mov eax, dword [ebp - 0x6a8]
mov dword [0x100eca8], eax
mov eax, dword [ebp - 0x6a4]
mov dword [0x100ecac], eax
mov eax, dword [ebp - 0x6a0]
lea esi, [ebp - 0x69c]
push 0x16
pop ecx
mov dword [0x100ecb0], eax
xor eax, eax
mov edi, 0x100ecb4
rep movsd dword es:[edi], dword [esi]
mov ecx, 0x100eb94
mov word [0x100ed14], ax
mov word [0x100f914], ax
mov word [0x100f514], ax
mov word [0x100f114], ax
call fcn.0100af73
push 0
xor eax, eax
inc eax
push 0
push 0x100eb94
mov ecx, 0x1010efc
mov dword [0x100ed08], eax
mov dword [0x100eb78], eax
call fcn.0100aa25
mov edi, dword [ebp - 0x214]
xor esi, esi
push dword [ebp + 0x14]
push ebx
push edi
push esi
call fcn.01004755
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor eax, eax
pop ebx
call fcn.0100bd6d
leave
ret 0x10
push esi
push 0x5df
push 0x5e0
push esi
call fcn.01003893
jmp 0x1004d7e