Function at 0x59c5de
Capabilities:
Create process on windows

Disassembly:
push ebp
sub esp, 0x5c
mov eax, 0x6af52c
call fcn.00640244
sub esp, 0x3c
xor eax, eax
push ebx
push esi
push edi
push 7
mov esi, ecx
lea edi, [ebp - 0x48]
pop ecx
rep stosd dword es:[edi], eax
xor ebx, ebx
mov eax, 0x400
push ebx
push eax
push eax
push ebx
lea eax, [ebp - 0x48]
push eax
call dword [sym.imp.USER32.dll_PeekMessageW]
movzx ecx, byte [esi]
test ecx, ecx
jne 0x59c622
xor eax, eax
inc eax
jmp 0x59cb46
lea eax, [ecx - 2]
cmp eax, 3
jae 0x59cb44
mov byte [esi + 8], bl
mov byte [esi], bl
cmp ecx, 2
jne 0x59c63d
cmp byte [esi + 9], bl
jne 0x59c61a
cmp ecx, 3
jne 0x59c67c
mov eax, dword [0x7e0cd0]
inc dword [0x7acfc8]
push dword [eax*4 + 0x7a05ec]
push str.Failed_to_connect_to_host_at:__s
push 0x80
call fcn.0048912b
mov eax, dword [0x7e0cd0]
add esp, 0xc
dec eax
and eax, 1
mov dword [0x7e0cd0], eax
or eax, 0xffffffff
jmp 0x59cb46
inc dword [0x7acfc4]
cmp ecx, 4
jne 0x59c68f
push 2
pop eax
jmp 0x59cb46
push 0
lea ebx, [esi + 0xc]
push str.info
lea eax, [ebp + 0x30]
mov dword [ebp + 0x48], ebx
push eax
mov ecx, ebx
call fcn.0045e4e1
and dword [ebp - 4], 0
cmp dword [ebp + 0x40], 0
je 0x59c736
call fcn.005802b9
test al, al
jne 0x59c736
test byte [esi + 4], 2
je 0x59c736
push 0
push str.infotype
mov ecx, ebx
call fcn.0045e2ae
test eax, eax
jne 0x59c6db
push 0x40
pop eax
jmp 0x59c6e6
dec eax
neg eax
sbb eax, eax
and eax, 0xffffffe0
add eax, 0x30
cmp dword [ebp + 0x44], 8
mov dword [ebp - 0x28], eax
mov eax, dword [ebp + 0x30]
mov dword [ebp - 0x2c], 1
jae 0x59c6fc
lea eax, [ebp + 0x30]
push eax
lea eax, [ebp + 0x18]
push 0x6c101c
push eax
call fcn.004654e1
add esp, 0xc
cmp dword [eax + 0x14], 8
mov byte [ebp - 4], 1
jb 0x59c71a
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.0058da56
pop ecx
pop ecx
push 0
push 1
lea ecx, [ebp + 0x18]
mov byte [ebp - 4], 0
call fcn.004281f2
push 0
push 0x6cd548
mov ecx, ebx
call fcn.0045e438
mov edi, eax
test edi, edi
je 0x59c76b
cmp dword [edi], 0x70747468
jne 0x59c76b
push edi
call fcn.0046c738
test eax, eax
je 0x59c76b
push 5
xor eax, eax
push eax
push eax
push edi
push eax
push eax
call dword [sym.imp.SHELL32.dll_ShellExecuteA]
push 0
push str.u.msg
lea eax, [ebp]
mov ecx, ebx
push eax
call fcn.0045e4e1
mov eax, dword fs:[0x2c]
mov edi, dword [0x7e15c8]
mov byte [ebp - 4], 2
mov ecx, dword [eax + edi*4]
mov eax, dword [0x7e0f30]
cmp eax, dword [ecx + 4]
jle 0x59c827
mov ebx, 0x7e0f30
push ebx
call fcn.006403ab
cmp dword [0x7e0f30], 0xffffffff
pop ecx
jne 0x59c827
push str.u.url
mov ecx, 0x7e0eb8
call fcn.0040eeff
push str.u.siz
mov ecx, 0x7e0ed0
mov byte [ebp - 4], 3
call fcn.0040eeff
push str.u.sha
mov ecx, 0x7e0ee8
mov byte [ebp - 4], 4
call fcn.0040eeff
push str.u.sig
mov ecx, 0x7e0f00
mov byte [ebp - 4], 5
call fcn.0040eeff
push str.u.ver
mov ecx, 0x7e0f18
mov byte [ebp - 4], 6
call fcn.0040eeff
push 0x6bca84
mov byte [ebp - 4], 2
call fcn.0064022f
push ebx
call fcn.0064036c
pop ecx
pop ecx
mov eax, dword fs:[0x2c]
mov ecx, dword [eax + edi*4]
mov eax, dword [0x7e0fb0]
cmp eax, dword [ecx + 4]
jle 0x59c8c7
mov edi, 0x7e0fb0
push edi
call fcn.006403ab
cmp dword [0x7e0fb0], 0xffffffff
pop ecx
jne 0x59c8c7
push str.l.url
mov ecx, 0x7e0f38
call fcn.0040eeff
push str.l.siz
mov ecx, 0x7e0f50
mov byte [ebp - 4], 7
call fcn.0040eeff
push str.l.sha
mov ecx, 0x7e0f68
mov byte [ebp - 4], 8
call fcn.0040eeff
push str.l.sig
mov ecx, 0x7e0f80
mov byte [ebp - 4], 9
call fcn.0040eeff
push str.l.ver
mov ecx, 0x7e0f98
mov byte [ebp - 4], 0xa
call fcn.0040eeff
push 0x6bcaa2
mov byte [ebp - 4], 2
call fcn.0064022f
push edi
call fcn.0064036c
pop ecx
pop ecx
push 0x7e0eb8
lea ebx, [esi + 0x20]
mov ecx, esi
push ebx
call fcn.0059e37b
test al, al
je 0x59ca77
push 0x7e0f38
lea eax, [esi + 0x54]
mov ecx, esi
push eax
call fcn.0059e37b
test al, al
je 0x59ca77
mov eax, dword [esi + 0x78]
lea ecx, [esi + 0x44]
or eax, dword [ecx]
je 0x59caaa
test dword [esi + 4], 0x1000
mov al, 1
push 6
mov dword [ebp + 0x58], 4
pop edi
mov byte [ebp + 0x5f], al
je 0x59c974
call fcn.005802b9
test al, al
jne 0x59c96e
cmp dword [ebp + 0x14], 8
mov eax, dword [ebp]
jae 0x59c932
lea eax, [ebp]
push eax
call dword [sym.imp.KERNEL32.DLL_GetCurrentThreadId]
push eax
push 0x80a6
push dword [0x7bdc9c]
call dword [sym.imp.USER32.dll_SendMessageW]
push 0x4e
push 0x4e
push 0xffffffffffffffff
lea eax, [ebp - 0x48]
push eax
call dword [sym.imp.USER32.dll_GetMessageW]
lea ecx, [esi + 0x44]
test eax, eax
je 0x59c971
cmp dword [ebp - 0x3c], 0
mov edi, dword [ebp - 0x40]
setne al
jmp 0x59c974
lea ecx, [esi + 0x44]
mov al, byte [ebp + 0x5f]
sub edi, 6
je 0x59c9b8
sub edi, 1
jne 0x59ca65
test al, al
jne 0x59c9b0
mov dword [ebp + 0x58], 3
cmp dword [ecx], edi
je 0x59c999
mov eax, dword [esi + 0x40]
mov dword [0x7ace20], eax
cmp dword [esi + 0x78], 0
je 0x59ca65
mov eax, dword [esi + 0x74]
mov dword [0x7ace24], eax
jmp 0x59ca65
push 2
pop eax
jmp 0x59ca68
mov byte [ebp + 0x5f], 1
call fcn.00478821
lea eax, [esi + 0x44]
mov byte [ebp - 4], 0xb
xor edi, edi
mov dword [ebp + 0x58], 1
sub eax, ebx
mov byte [esi], 4
mov dword [ebp + 0x4c], eax
cmp dword [eax + ebx], 0
je 0x59ca29
inc byte [esi]
mov eax, dword [0x7ab520]
push 0x7ab520
mov dword [ebp + 0x50], 0x7ab520
call dword [eax + 4]
xor eax, eax
mov byte [ebp - 4], 0xc
push eax
push eax
push eax
lea eax, [ebp + 0x50]
push eax
push 0x59c38f
push ebx
push dword [edi + esi + 0x20]
call fcn.0046736f
mov eax, dword [ebp + 0x50]
mov byte [ebp - 4], 0xd
test eax, eax
je 0x59ca22
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp + 0x4c]
mov byte [ebp - 4], 0xb
add edi, 0x34
add ebx, 0x34
cmp edi, 0x68
jne 0x59c9d9
test dword [esi + 4], 0x1000
je 0x59ca58
call fcn.005802b9
test al, al
jne 0x59ca58
push 0
push 0
push 0x10
push dword [0x7bdc9c]
call dword [sym.imp.USER32.dll_PostMessageW]
mov byte [ebp - 4], 0xe
call fcn.00478862
mov byte [ebp - 4], 2
mov eax, dword [ebp + 0x58]
push eax
push 0x7acde0
mov ecx, esi
call fcn.0059d7fa
jmp 0x59caaa
test byte [esi + 4], 2
je 0x59caaa
call fcn.005802b9
test al, al
jne 0x59caaa
push 0x477
mov dword [ebp - 0x2c], 1
mov dword [ebp - 0x28], 0x30
call fcn.0058c7b7
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.0058da56
pop ecx
pop ecx
mov edi, dword [ebp + 0x48]
xor ebx, ebx
push ebx
push 0x6cff24
mov ecx, edi
call fcn.0045e438
mov esi, eax
test esi, esi
je 0x59cad5
push esi
call fcn.0040f10e
pop ecx
push eax
push esi
mov ecx, 0x7ace40
call fcn.0040ee87
push ebx
push 0x6d6d20
mov ecx, edi
call fcn.0045e438
test eax, eax
je 0x59cb2e
lea ecx, [ebp + 0x5f]
mov byte [ebp + 0x5f], bl
push ecx
push eax
lea eax, [ebp + 0x1c]
push eax
call fcn.004cc175
cmp byte [ebp + 0x5f], bl
je 0x59cb2e
mov byte [ebp + 0x57], 1
call fcn.00478821
mov ecx, dword [0x7b0e0c]
lea eax, [ebp + 0x1c]
push 1
push eax
mov byte [ebp - 4], 0xf
call fcn.00514f4e
push 1
lea eax, [ebp + 0x1c]
push eax
call fcn.0048fc50
mov byte [ebp - 4], 0x10
call fcn.00478862
push ebx
push 1
lea ecx, [ebp]
call fcn.004281f2
push ebx
push 1
lea ecx, [ebp + 0x30]
call fcn.004281f2
xor eax, eax
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
lea esp, [ebp + 0x60]
pop ebp
ret