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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x7b4
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
xor esi, esi
push esi
mov dword [0x100db44], eax
call dword [sym.imp.KERNEL32.dll_SetLastError]
push 0x1001858
push 1
push esi
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
cmp eax, esi
mov dword [0x100db40], eax
je 0x10049de
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x10049de
push esi
call dword [sym.imp.ole32.dll_CoInitialize]
test eax, eax
jl 0x10049de
mov ecx, 0x100db50
call fcn.010039cb
call dword [sym.imp.COMCTL32.dll_InitCommonControls]
call sub.SHELL32.dll_Ordinal_258
mov ecx, 0x1015080
call fcn.0100615a
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
mov ebx, eax
mov ax, word [ebx]
cmp ax, 0x22
push 2
pop ecx
jne 0x10044c5
add ebx, ecx
mov ax, word [ebx]
cmp ax, si
je 0x10044bd
cmp ax, 0x22
jne 0x10044ad
cmp word [ebx], 0x22
jne 0x10044dd
jmp 0x10044db
cmp ax, 0x20
jbe 0x10044dd
add ebx, ecx
cmp word [ebx], 0x20
ja 0x10044cb
jmp 0x10044dd
cmp ax, 0x20
ja 0x10044e5
add ebx, ecx
mov ax, word [ebx]
cmp ax, si
jne 0x10044d5
push ebx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
je 0x10049d1
push ebx
lea eax, [ebp - 0x7b4]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
push 0x1001850
lea eax, [ebp - 0x7b4]
push eax
call dword [sym.imp.SHLWAPI.dll_StrTrimW]
push esi
push 0x80
push 3
push esi
push 1
push 0x80000000
lea eax, [ebp - 0x7b4]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov edi, eax
cmp edi, 0xffffffff
je 0x10049e7
lea ecx, [ebp - 0x2c4]
call fcn.010034d8
lea ecx, [ebp - 0x164]
call fcn.010034d8
lea ecx, [ebp - 0x434]
call fcn.010034f5
lea ecx, [ebp - 0x5ac]
call fcn.01003512
push esi
push edi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
cmp eax, dword [ebp - 0x2c4]
push esi
jne 0x100467b
lea eax, [ebp - 4]
push eax
push 0x160
lea eax, [ebp - 0x2c4]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, dword [ebp - 4]
cmp eax, dword [ebp - 0x2c4]
jne 0x10049e7
mov eax, dword [ebp - 0x2c0]
mov dword [0x100db68], eax
mov eax, dword [ebp - 0x224]
push 0x19
pop ecx
push 6
lea esi, [ebp - 0x2bc]
mov edi, 0x100db6c
rep movsd dword es:[edi], dword [esi]
pop ecx
push 7
lea esi, [ebp - 0x258]
mov edi, 0x100dbe8
rep movsd dword es:[edi], dword [esi]
pop ecx
lea esi, [ebp - 0x240]
mov edi, 0x100dc00
rep movsd dword es:[edi], dword [esi]
mov dword [0x100dc1c], eax
mov eax, dword [ebp - 0x220]
mov dword [0x100dc20], eax
mov eax, dword [ebp - 0x21c]
mov dword [0x100dc24], eax
mov eax, dword [ebp - 0x218]
mov dword [0x100dc28], eax
mov eax, dword [ebp - 0x1d8]
push 0xc
pop ecx
lea esi, [ebp - 0x214]
mov edi, 0x100dc2c
rep movsd dword es:[edi], dword [esi]
lea esi, [ebp - 0x1e4]
mov edi, 0x100dc5c
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov dword [0x100dc68], eax
mov eax, dword [ebp - 0x1d4]
mov dword [0x100dc6c], eax
mov eax, dword [ebp - 0x1d0]
mov dword [0x100dc70], eax
mov eax, dword [ebp - 0x1cc]
mov dword [0x100dc74], eax
mov eax, dword [ebp - 0x1c8]
mov dword [0x100dc78], eax
mov eax, dword [ebp - 0x1c4]
mov dword [0x100dc7c], eax
mov eax, dword [ebp - 0x1c0]
lea esi, [ebp - 0x1bc]
jmp 0x100497c
cmp eax, dword [ebp - 0x164]
jne 0x100476d
lea eax, [ebp - 4]
push eax
push 0x160
lea eax, [ebp - 0x164]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, dword [ebp - 4]
cmp eax, dword [ebp - 0x164]
jne 0x10049e7
mov eax, dword [ebp - 0x160]
mov dword [0x100db68], eax
mov eax, dword [ebp - 0xc4]
push 0x19
pop ecx
push 6
lea esi, [ebp - 0x15c]
mov edi, 0x100db6c
rep movsd dword es:[edi], dword [esi]
pop ecx
push 7
lea esi, [ebp - 0xf8]
mov edi, 0x100dbe8
rep movsd dword es:[edi], dword [esi]
pop ecx
lea esi, [ebp - 0xe0]
mov edi, 0x100dc00
rep movsd dword es:[edi], dword [esi]
mov dword [0x100dc1c], eax
mov eax, dword [ebp - 0xc0]
mov dword [0x100dc20], eax
mov eax, dword [ebp - 0xbc]
mov dword [0x100dc24], eax
mov eax, dword [ebp - 0xb8]
mov dword [0x100dc28], eax
mov eax, dword [ebp - 0x78]
push 0xc
pop ecx
lea esi, [ebp - 0xb4]
mov edi, 0x100dc2c
rep movsd dword es:[edi], dword [esi]
lea esi, [ebp - 0x84]
mov edi, 0x100dc5c
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov dword [0x100dc68], eax
mov eax, dword [ebp - 0x74]
mov dword [0x100dc6c], eax
mov eax, dword [ebp - 0x70]
mov dword [0x100dc70], eax
mov eax, dword [ebp - 0x6c]
mov dword [0x100dc74], eax
mov eax, dword [ebp - 0x68]
mov dword [0x100dc78], eax
mov eax, dword [ebp - 0x64]
mov dword [0x100dc7c], eax
mov eax, dword [ebp - 0x60]
lea esi, [ebp - 0x5c]
jmp 0x100497c
cmp eax, dword [ebp - 0x434]
jne 0x1004877
lea eax, [ebp - 4]
push eax
push 0x170
lea eax, [ebp - 0x434]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, dword [ebp - 4]
cmp eax, dword [ebp - 0x434]
jne 0x10049e7
mov eax, dword [ebp - 0x430]
mov dword [0x100db68], eax
mov eax, dword [ebp - 0x384]
push 0x1d
pop ecx
push 6
lea esi, [ebp - 0x42c]
mov edi, 0x100db6c
rep movsd dword es:[edi], dword [esi]
pop ecx
push 7
lea esi, [ebp - 0x3b8]
mov edi, 0x100dbe8
rep movsd dword es:[edi], dword [esi]
pop ecx
lea esi, [ebp - 0x3a0]
mov edi, 0x100dc00
rep movsd dword es:[edi], dword [esi]
mov dword [0x100dc1c], eax
mov eax, dword [ebp - 0x380]
mov dword [0x100dc20], eax
mov eax, dword [ebp - 0x37c]
mov dword [0x100dc24], eax
mov eax, dword [ebp - 0x378]
mov dword [0x100dc28], eax
mov eax, dword [ebp - 0x338]
push 0xc
pop ecx
lea esi, [ebp - 0x374]
mov edi, 0x100dc2c
rep movsd dword es:[edi], dword [esi]
lea esi, [ebp - 0x344]
mov edi, 0x100dc5c
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov dword [0x100dc68], eax
mov eax, dword [ebp - 0x334]
mov dword [0x100dc6c], eax
mov eax, dword [ebp - 0x330]
mov dword [0x100dc70], eax
mov eax, dword [ebp - 0x32c]
mov dword [0x100dc74], eax
mov eax, dword [ebp - 0x328]
mov dword [0x100dc78], eax
mov eax, dword [ebp - 0x324]
mov dword [0x100dc7c], eax
mov eax, dword [ebp - 0x320]
lea esi, [ebp - 0x31c]
jmp 0x100497c
cmp eax, dword [ebp - 0x5ac]
jne 0x10049e8
lea eax, [ebp - 4]
push eax
push 0x178
lea eax, [ebp - 0x5ac]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, dword [ebp - 4]
cmp eax, dword [ebp - 0x5ac]
jne 0x10049e7
mov eax, dword [ebp - 0x5a8]
mov dword [0x100db68], eax
mov eax, dword [ebp - 0x4f4]
push 0x1f
pop ecx
push 6
lea esi, [ebp - 0x5a4]
mov edi, 0x100db6c
rep movsd dword es:[edi], dword [esi]
pop ecx
push 7
lea esi, [ebp - 0x528]
mov edi, 0x100dbe8
rep movsd dword es:[edi], dword [esi]
pop ecx
lea esi, [ebp - 0x510]
mov edi, 0x100dc00
rep movsd dword es:[edi], dword [esi]
mov dword [0x100dc1c], eax
mov eax, dword [ebp - 0x4f0]
mov dword [0x100dc20], eax
mov eax, dword [ebp - 0x4ec]
mov dword [0x100dc24], eax
mov eax, dword [ebp - 0x4e8]
mov dword [0x100dc28], eax
mov eax, dword [ebp - 0x4a8]
push 0xc
pop ecx
lea esi, [ebp - 0x4e4]
mov edi, 0x100dc2c
rep movsd dword es:[edi], dword [esi]
lea esi, [ebp - 0x4b4]
mov edi, 0x100dc5c
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov dword [0x100dc68], eax
mov eax, dword [ebp - 0x4a4]
mov dword [0x100dc6c], eax
mov eax, dword [ebp - 0x4a0]
mov dword [0x100dc70], eax
mov eax, dword [ebp - 0x49c]
mov dword [0x100dc74], eax
mov eax, dword [ebp - 0x498]
mov dword [0x100dc78], eax
mov eax, dword [ebp - 0x494]
mov dword [0x100dc7c], eax
mov eax, dword [ebp - 0x490]
lea esi, [ebp - 0x48c]
push 0x16
pop ecx
mov dword [0x100dc80], eax
xor eax, eax
mov edi, 0x100dc84
rep movsd dword es:[edi], dword [esi]
mov ecx, 0x100db64
mov word [0x100dce4], ax
mov word [0x100e8e4], ax
mov word [0x100e4e4], ax
mov word [0x100e0e4], ax
jmp 0x103c86c
push dword [ebp + 0x14]
push ebx
push dword [ebp + 8]
push esi
call fcn.01004403
pop edi
pop esi
xor eax, eax
pop ebx
leave
ret 0x10
push esi
push 0x5df
push 0x5e0
push esi
call fcn.010035c8
jmp 0x10049de