Function at 0x1004730
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 0x1004d31
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x1004d31
push esi
call dword [sym.imp.ole32.dll_CoInitialize]
test eax, eax
jl 0x1004d31
mov ecx, 0x100eb80
call fcn.01003c86
call dword [sym.imp.COMCTL32.dll_InitCommonControls]
call sub.SHELL32.dll_Ordinal_258
mov ecx, 0x10160b0
call fcn.010066e3
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
mov ebx, eax
mov ax, word [ebx]
cmp ax, 0x22
push 2
pop ecx
jne 0x10047e4
add ebx, ecx
mov ax, word [ebx]
cmp ax, si
je 0x10047dc
cmp ax, 0x22
jne 0x10047cc
cmp word [ebx], 0x22
jne 0x10047fc
jmp 0x10047fa
cmp ax, 0x20
jbe 0x10047fc
add ebx, ecx
cmp word [ebx], 0x20
ja 0x10047ea
jmp 0x10047fc
cmp ax, 0x20
ja 0x1004804
add ebx, ecx
mov ax, word [ebx]
cmp ax, si
jne 0x10047f4
push ebx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
je 0x1004d26
push ebx
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
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 0x1004d42
lea ecx, [ebp - 0x4d4]
call fcn.0100371a
lea ecx, [ebp - 0x374]
call fcn.0100371a
lea ecx, [ebp - 0x644]
call fcn.0100373e
lea ecx, [ebp - 0x7bc]
call fcn.01003762
push esi
push edi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
cmp eax, dword [ebp - 0x4d4]
push esi
jne 0x10049a0
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 0x1004d42
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 0x1004ccb
cmp eax, dword [ebp - 0x374]
jne 0x1004ab0
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 0x1004d42
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 0x1004ccb
cmp eax, dword [ebp - 0x644]
jne 0x1004bc0
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 0x1004d42
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 0x1004ccb
cmp eax, dword [ebp - 0x7bc]
jne 0x1004d43
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 0x1004d42
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.0100af26
push 0
xor eax, eax
inc eax
push 0
push 0x100eb94
mov ecx, 0x1010efc
mov dword [0x100ed08], eax
mov dword [0x100eb78], eax
call fcn.0100a9d8
mov edi, dword [ebp - 0x214]
xor esi, esi
push dword [ebp + 0x14]
push ebx
push edi
push esi
call fcn.0100470c
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor eax, eax
pop ebx
call fcn.0100bd20
leave
ret 0x10
push esi
push 0x5df
push 0x5e0
push esi
call fcn.0100384a
jmp 0x1004d31