Function at 0x4056a0
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x48d870
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x100b8
call fcn.00481910
mov eax, dword [0x5a7f20]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov eax, dword [ebp + 0xc]
xor edi, edi
push 0x4040d8
mov dword [ebp - 0x10030], eax
mov dword [ebp - 0x10038], ecx
mov dword [ebp - 0x10040], edx
mov dword [ebp - 0x1003c], edi
mov dword [ebp - 4], edi
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov esi, eax
cmp esi, edi
je 0x405c58
mov ecx, dword [0x4040ec]
mov eax, dword [0x4040e8]
mov edx, dword [0x4040f0]
mov dword [ebp - 0x24], ecx
mov cx, word [0x4040f8]
mov dword [ebp - 0x28], eax
mov eax, dword [0x4040f4]
mov word [ebp - 0x18], cx
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x1c], eax
lea edx, [ecx + 1]
mov edi, edi
mov al, byte [ecx]
inc ecx
test al, al
jne 0x405740
sub ecx, edx
lea edx, [ebp + ecx - 0x28]
lea ecx, [ebp - 0x28]
cmp ecx, edx
je 0x405764
dec edx
cmp ecx, edx
je 0x405764
mov al, byte [ecx]
mov bl, byte [edx]
mov byte [ecx], bl
mov byte [edx], al
inc ecx
jmp 0x405750
lea edx, [ebp - 0x28]
push edx
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
xor esi, esi
mov ecx, 0x5a9d70
mov dword [ecx + 0x14], eax
cmp eax, esi
je 0x405c58
mov dword [ebp - 0x1002c], esi
mov dword [ebp - 0x10034], esi
lea ecx, [ecx]
mov edi, 0x5a9d70
cmp esi, dword [edi + 0x60]
jae 0x405c2c
push 0x10000
lea eax, [ebp - 0x10028]
push 0
push eax
call fcn.00481000
add esp, 0xc
xor ebx, ebx
cmp esi, dword [edi + 0x60]
jb 0x4057c5
push 0x80070057
call fcn.004062b0
mov edx, dword [edi + 0x5c]
lea ecx, [esi + esi*2]
mov eax, dword [edx + ecx*8 + 8]
lea ecx, [edx + ecx*8]
cmp dword [eax - 0xc], ebx
jle 0x405826
lea edx, [ebp - 0x10028]
mov ecx, eax
mov esi, edx
movzx eax, word [ecx]
mov word [edx], ax
add ecx, 2
add edx, 2
test ax, ax
jne 0x4057e1
test esi, esi
jne 0x4057fe
test ebx, ebx
je 0x405c1b
cmp dword [ebp + 8], 0
je 0x405b60
mov ebx, dword [ebp - 0x10034]
mov edi, 0x5a9d70
cmp ebx, dword [edi + 0x60]
jb 0x405a15
push 0x80070057
call fcn.004062b0
mov edx, dword [ecx + 4]
cmp dword [edx - 0xc], ebx
jle 0x405c1b
lea edi, [ebp - 0x10028]
add edi, 0xfffffffe
lea edx, [edi + 2]
mov edi, edi
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x405840
mov eax, dword [0x4040fc]
mov dword [edi], eax
test edx, edx
je 0x405c1b
mov eax, dword [ecx + 4]
mov edx, eax
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x405860
lea edi, [ebp - 0x10028]
sub eax, edx
add edi, 0xfffffffe
lea ebx, [edi + 2]
lea esp, [esp]
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x405880
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
test ebx, ebx
je 0x405c1b
lea edi, [ebp - 0x10028]
add edi, 0xfffffffe
lea ecx, [edi + 2]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4058b0
mov edx, dword [0x4040fc]
mov dword [edi], edx
test ecx, ecx
je 0x405c1b
lea edi, [ebp - 0x10028]
add edi, 0xfffffffe
lea ecx, [edi + 2]
jmp 0x4058e0
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4058e0
mov eax, dword [0x404100]
mov dword [edi], eax
test ecx, ecx
je 0x405c1b
lea edi, [ebp - 0x10028]
add edi, 0xfffffffe
lea ecx, [edi + 2]
jmp 0x405910
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x405910
mov edx, dword [0x404104]
mov dword [edi], edx
test ecx, ecx
je 0x405c1b
lea edi, [ebp - 0x10028]
add edi, 0xfffffffe
lea ecx, [edi + 2]
jmp 0x405940
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x405940
mov eax, dword [0x404108]
mov dword [edi], eax
test ecx, ecx
je 0x405c1b
lea edi, [ebp - 0x10028]
add edi, 0xfffffffe
lea ecx, [edi + 2]
jmp 0x405970
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x405970
mov edx, dword [0x40410c]
mov dword [edi], edx
test ecx, ecx
je 0x405c1b
lea edi, [ebp - 0x10028]
add edi, 0xfffffffe
lea ecx, [edi + 2]
jmp 0x4059a0
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4059a0
mov eax, dword [0x404110]
mov dword [edi], eax
test ecx, ecx
je 0x405c1b
lea edi, [ebp - 0x10028]
add edi, 0xfffffffe
lea ecx, [edi + 2]
jmp 0x4059d0
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4059d0
mov eax, dword [0x404114]
mov dword [edi], eax
test ecx, ecx
je 0x405c1b
lea edi, [ebp - 0x10028]
add edi, 0xfffffffe
lea ecx, [edi + 2]
jmp 0x405a00
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x405a00
mov dword [edi], edx
test ecx, ecx
jmp 0x4057f8
mov eax, dword [edi + 0x5c]
mov ecx, dword [ebp - 0x10030]
lea esi, [ebx + ebx*2]
add esi, esi
add esi, esi
add esi, esi
mov edx, dword [eax + esi + 0xc]
mov eax, dword [edi + 0x14]
push ecx
push edx
call eax
test eax, eax
je 0x405b23
mov ecx, dword [ebp - 0x10030]
mov edx, dword [ecx]
mov eax, dword [ebp - 0x10038]
push 0
push edx
push eax
call dword [sym.imp.USERENV.dll_CreateEnvironmentBlock]
test eax, eax
je 0x405b04
push 0x40
lea ecx, [ebp - 0x100c4]
push 0
push ecx
call fcn.00481000
add esp, 0xc
mov dword [ebp - 0x100c8], 0x44
cmp ebx, dword [edi + 0x60]
jb 0x405a86
push 0x80070057
call fcn.004062b0
mov edx, dword [edi + 0x5c]
mov edi, dword [ebp - 0x10040]
mov esi, dword [edx + esi + 4]
mov ecx, dword [ebp - 0x10038]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x10030]
push edi
lea eax, [ebp - 0x100c8]
push eax
push 0
push edx
mov edx, dword [ecx]
push 0x400
push 0
push 0
push 0
lea eax, [ebp - 0x10028]
push eax
push esi
push edx
call dword [sym.imp.ADVAPI32.dll_CreateProcessAsUserW]
test eax, eax
je 0x405ad2
inc dword [ebp - 0x1002c]
mov eax, dword [edi + 4]
test eax, eax
je 0x405aec
cmp eax, 0xffffffff
je 0x405aec
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [edi + 4], 0
mov eax, dword [edi]
test eax, eax
je 0x405b04
cmp eax, 0xffffffff
je 0x405b04
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [edi], 0
mov eax, dword [ebp - 0x10038]
mov eax, dword [eax]
test eax, eax
je 0x405b23
push eax
call dword [sym.imp.USERENV.dll_DestroyEnvironmentBlock]
mov ecx, dword [ebp - 0x10038]
mov dword [ecx], 0
mov edx, dword [ebp - 0x10030]
mov eax, dword [edx]
test eax, eax
je 0x405c1b
cmp eax, 0xffffffff
je 0x405c1b
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x10030]
inc dword [ebp - 0x10034]
mov esi, dword [ebp - 0x10034]
mov dword [eax], 0
jmp 0x405790
push 0x40
lea ecx, [ebp - 0x10080]
push 0
push ecx
call fcn.00481000
mov eax, dword [ebp - 0x10034]
mov ecx, 0x5a9d70
add esp, 0xc
mov dword [ebp - 0x10084], 0x44
cmp eax, dword [ecx + 0x60]
jb 0x405ba7
push 0x80070057
call fcn.004062b0
mov dword [ebp - 0x1003c], 0
mov eax, 0x405c52
ret
mov esi, dword [ebp - 0x10040]
push esi
lea edx, [eax + eax*2]
mov eax, dword [ecx + 0x5c]
mov eax, dword [eax + edx*8 + 4]
lea ecx, [ebp - 0x10084]
push ecx
push 0
push 0
push 0
push 0
push 0
push 0
lea edx, [ebp - 0x10028]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
mov edi, eax
test edi, edi
je 0x405be5
inc dword [ebp - 0x1002c]
mov eax, dword [esi + 4]
test eax, eax
je 0x405bff
cmp eax, 0xffffffff
je 0x405bff
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [esi + 4], 0
mov eax, dword [esi]
test eax, eax
je 0x405c17
cmp eax, 0xffffffff
je 0x405c17
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [esi], 0
test edi, edi
jne 0x405c2c
inc dword [ebp - 0x10034]
mov esi, dword [ebp - 0x10034]
jmp 0x405790
mov ecx, dword [ebp - 0x1002c]
mov eax, 0x5a9d70
cmp ecx, dword [eax + 0x60]
jne 0x405c43
mov edi, 1
jmp 0x405c58
cmp dword [ebp + 8], 0
jne 0x405c52
mov edi, 1
test ecx, ecx
jg 0x405c58
mov edi, dword [ebp - 0x1003c]
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.00480aee
mov esp, ebp
pop ebp
ret 8