Function at 0x1003497
Capabilities:
Create process on windows
Read file via mapping

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x70
push ebx
push esi
push edi
xor eax, eax
xor ebx, ebx
mov dword [ebp - 0x2c], ebx
lea edi, [ebp - 0x24]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
lea eax, [ebp - 0x2c]
push eax
call fcn.01006ce9
mov esi, eax
cmp esi, ebx
jge 0x10034f1
mov eax, dword [0x100c014]
cmp eax, 0x100c014
je 0x1003619
test byte [eax + 0x1c], 1
je 0x1003619
push esi
push 0x10012c8
push 0x18
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.01003070
jmp 0x1003619
mov esi, 0x620
push esi
push ebx
push ebx
push 4
push dword [ebp - 0x24]
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov ebx, eax
mov dword [ebp - 4], ebx
test ebx, ebx
jne 0x1003542
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.0100346f
mov esi, eax
mov eax, dword [0x100c014]
cmp eax, 0x100c014
je 0x100360a
test byte [eax + 0x1c], 1
je 0x100360a
push esi
push 0x10012c8
push 0x19
jmp 0x1003743
cmp dword [ebx], esi
je 0x1003571
mov esi, 0x8007000d
mov eax, dword [0x100c014]
cmp eax, 0x100c014
je 0x100360a
test byte [eax + 0x1c], 1
je 0x100360a
push 0x10012c8
push 0x1a
jmp 0x10036b4
push dword [ebp - 0x1c]
call dword [sym.imp.KERNEL32.dll_SetEvent]
mov esi, dword [ebx + 4]
test esi, esi
jne 0x1003642
push 0x40
lea eax, [ebp - 0x6c]
push esi
push eax
call sub.msvcrt.dll_memset
and dword [ebp - 0x14], esi
xor eax, eax
lea edi, [ebp - 0x10]
stosd dword es:[edi], eax
add esp, 0xc
stosd dword es:[edi], eax
stosd dword es:[edi], eax
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x70]
push eax
xor eax, eax
push eax
push eax
push eax
push eax
push eax
push eax
lea eax, [ebx + 0x210]
push eax
add ebx, 8
push ebx
mov dword [ebp - 0x70], 0x44
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
test eax, eax
jne 0x10035f8
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.0100346f
mov esi, eax
mov eax, dword [0x100c014]
cmp eax, 0x100c014
je 0x100360a
test byte [eax + 0x1c], 1
je 0x100360a
push esi
push 0x10012c8
push 0x1b
jmp 0x1003743
push dword [ebp - 0x14]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
call esi
push dword [ebp - 0x10]
call esi
xor esi, esi
cmp dword [ebp - 4], 0
je 0x1003619
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
mov eax, dword [ebp - 0x1c]
or eax, dword [ebp - 0x18]
je 0x100362a
push dword [ebp - 0x1c]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x24]
or eax, dword [ebp - 0x20]
je 0x100363b
push dword [ebp - 0x24]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop edi
mov eax, esi
pop esi
pop ebx
leave
ret
xor ebx, ebx
inc ebx
cmp esi, ebx
je 0x10036c4
cmp esi, 2
je 0x10036c4
cmp esi, 3
jne 0x100368f
mov esi, dword [ebp - 4]
add esi, 0x210
push esi
call fcn.01006ee6
test eax, eax
jge 0x1003608
mov eax, dword [0x100c014]
cmp eax, 0x100c014
je 0x1003608
test byte [eax + 0x1c], bl
je 0x1003608
push esi
push 0x10012c8
push 0x1d
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.0100309c
jmp 0x1003608
mov esi, 0x8007000d
mov eax, dword [0x100c014]
cmp eax, 0x100c014
je 0x100360a
test byte [eax + 0x1c], bl
je 0x100360a
push 0x10012c8
push 0x1e
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.0100304a
jmp 0x100360a
push 0x38
lea eax, [ebp - 0x64]
push 0
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
mov dword [ebp - 0x68], 0x3c
cmp esi, ebx
jne 0x10036e8
mov dword [ebp - 0x5c], 0x1001304
jmp 0x10036f4
cmp esi, 2
jne 0x10036f4
mov dword [ebp - 0x5c], 0x10012f4
mov eax, dword [ebp - 4]
add eax, 0x210
mov dword [ebp - 0x58], eax
lea eax, [ebp - 0x68]
push eax
mov dword [ebp - 0x4c], ebx
call dword [sym.imp.SHELL32.dll_ShellExecuteExW]
test eax, eax
jne 0x1003608
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.0100346f
mov esi, eax
mov eax, dword [0x100c014]
cmp eax, 0x100c014
je 0x100360a
test byte [eax + 0x1c], bl
je 0x100360a
push esi
push 0x10012c8
push 0x1c
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.01003070
jmp 0x100360a