Function at 0x1003a9a0
Capabilities:
Create thread
Initialize winsock library
Query environment variable
Terminate process

Disassembly:
sub esp, 0x198
cmp byte [0x100422c2], 0
je 0x1003a9b8
xor eax, eax
add esp, 0x198
ret
push 0x100438c8
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
lea eax, [esp + 8]
push eax
push 2
call dword [sym.imp.WS2_32.dll_WSAStartup]
test eax, eax
je 0x1003a9fb
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push str.Error_starting_Windows_Sockets.__Error:__d
call dword [sym.imp.MSVCRT.dll___p__iob]
add eax, 0x40
push eax
call dword [sym.imp.MSVCRT.dll_fprintf]
add esp, 0xc
push 0x6f
call dword [sym.imp.MSVCRT.dll_exit]
cmp dword [0x10040be4], 0xffffffff
jne 0x1003aa3b
push 1
push 0
push 0
push 0xffffffffffffffff
call dword [sym.imp.KERNEL32.dll_CreateIoCompletionPort]
mov dword [0x10040be4], eax
cmp eax, 0xffffffff
jne 0x1003aa3b
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str._H2_OS_LibInit_Failed_CreateIoCompletionPort___ERROR:__d__H2__r_n_r_n
call dword [sym.imp.MSVCRT.dll_printf]
add esp, 8
or eax, 0xffffffff
add esp, 0x198
ret
push ebx
mov ebx, dword [sym.imp.MSVCRT.dll_getenv]
push ebp
push str._FCGI_SHUTDOWN_EVENT_
call ebx
mov ebp, dword [sym.imp.MSVCRT.dll_atoi]
add esp, 4
test eax, eax
je 0x1003aa7b
push eax
call ebp
push eax
push 0
push 0x1003aea0
call dword [sym.imp.MSVCRT.dll__beginthread]
add esp, 0x10
cmp eax, 0xffffffff
jne 0x1003aa7b
pop ebp
or eax, eax
pop ebx
add esp, 0x198
ret
cmp dword [0x10040bfc], 0xffffffff
jne 0x1003aa9d
push str._FCGI_MUTEX_
call ebx
add esp, 4
test eax, eax
je 0x1003aa9d
push eax
call ebp
add esp, 4
mov dword [0x10040bfc], eax
push esi
push edi
mov edi, dword [sym.imp.KERNEL32.dll_GetStdHandle]
push 0xfffffffffffffff5
call edi
cmp eax, 0xffffffff
jne 0x1003ab45
push 0xfffffffffffffff4
call edi
cmp eax, 0xffffffff
jne 0x1003ab45
push 0xfffffffffffffff6
call edi
cmp eax, 0xffffffff
je 0x1003ab45
push 0xfffffffffffffff6
mov dword [esp + 0x18], 0
call edi
mov esi, dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push 2
push 1
push 0
push 0x10040c04
mov dword [esp + 0x20], eax
call esi
push eax
push dword [esp + 0x24]
call esi
push eax
call dword [sym.imp.KERNEL32.dll_DuplicateHandle]
test eax, eax
je 0x1003ac22
push dword [0x10040c04]
push 0xfffffffffffffff6
call dword [sym.imp.KERNEL32.dll_SetStdHandle]
test eax, eax
je 0x1003ac22
push dword [esp + 0x10]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0
push 0
lea eax, [esp + 0x1c]
push eax
push dword [0x10040c04]
call dword [sym.imp.KERNEL32.dll_SetNamedPipeHandleState]
neg eax
sbb eax, eax
and eax, 2
add eax, 3
mov dword [0x100422c4], eax
mov esi, dword [esp + 0x1ac]
test esi, esi
jne 0x1003ab64
pop edi
pop esi
pop ebp
mov byte [0x100422c2], 1
xor eax, eax
pop ebx
add esp, 0x198
ret
push 0xfffffffffffffff6
call edi
push 0
push 1
push eax
mov dword [0x10040bf0], eax
call dword [sym.imp.KERNEL32.dll_SetHandleInformation]
push 0
push dword [0x10040bf0]
push 5
call fcn.1003aff0
add esp, 0xc
cmp eax, 0xffffffff
je 0x1003ac22
cmp dword [0x10040be8], 0xffffffff
mov dword [esi], eax
jne 0x1003abd9
push 1
push 0
push 0
push 0xffffffffffffffff
call dword [sym.imp.KERNEL32.dll_CreateIoCompletionPort]
mov dword [0x10040be8], eax
cmp eax, 0xffffffff
jne 0x1003abd9
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str._H2_OS_LibInit_Failed_CreateIoCompletionPort:_STDIN___ERROR:__d__H2__r_n_r_n
call dword [sym.imp.MSVCRT.dll_printf]
add esp, 8
or eax, 0xffffffff
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x198
ret
push str.CONTENT_LENGTH
call ebx
add esp, 4
test eax, eax
je 0x1003ac30
push eax
call ebp
add esp, 4
test eax, eax
jle 0x1003ac30
push 0
push 0
push 0x1003aed0
call dword [sym.imp.MSVCRT.dll__beginthread]
add esp, 0xc
mov dword [0x10040bec], eax
cmp eax, 0xffffffff
jne 0x1003ac30
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str._H2_OS_LibInit_Failed_to_create_STDIN_thread___ERROR:__d__H2__r_n_r_n
call dword [sym.imp.MSVCRT.dll_printf]
add esp, 8
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x198
ret
push 0xfffffffffffffff5
call edi
mov ebx, dword [sym.imp.KERNEL32.dll_SetHandleInformation]
push 0
push 1
push eax
mov dword [0x10040bf4], eax
call ebx
test eax, eax
jne 0x1003ac58
call dword [sym.imp.KERNEL32.dll_DebugBreak]
push 0x63
call dword [sym.imp.MSVCRT.dll_exit]
push 1
push dword [0x10040bf4]
push 5
call fcn.1003aff0
add esp, 0xc
cmp eax, 0xffffffff
je 0x1003ac22
push 0xfffffffffffffff4
mov dword [esi + 4], eax
call edi
push 0
push 1
push eax
mov dword [0x10040bf8], eax
call ebx
test eax, eax
jne 0x1003ac94
call dword [sym.imp.KERNEL32.dll_DebugBreak]
push 0x63
call dword [sym.imp.MSVCRT.dll_exit]
push 2
push dword [0x10040bf8]
push 5
call fcn.1003aff0
add esp, 0xc
cmp eax, 0xffffffff
je 0x1003ac22
pop edi
mov dword [esi + 8], eax
xor eax, eax
pop esi
pop ebp
pop ebx
add esp, 0x198
ret