Function at 0x4f5340
Capabilities:
Create thread

Disassembly:
sub esp, 0x74
push ebx
push esi
mov esi, dword [esp + 0x80]
xor ebx, ebx
mov eax, esi
push edi
mov ecx, dword [eax]
mov dword [esp + 0xc], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x10], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0x14], ecx
mov edx, dword [eax + 0xc]
mov dword [esp + 0x18], edx
mov ax, word [eax + 0x10]
mov word [esp + 0x1c], ax
mov al, byte [0xe91528]
cmp al, 1
jne 0x4f5399
mov eax, dword [0xe91524]
cmp eax, ebx
je 0x4f5393
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [0xe91524], ebx
mov byte [0xe91528], bl
mov edx, dword [esp + 0x88]
mov ecx, 9
xor eax, eax
lea edi, [esp + 0x38]
rep stosd dword es:[edi], eax
mov eax, dword [0xe914dc]
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0x8c]
push ebx
push edx
lea edx, [esp + 0x40]
mov dword [esp + 0x40], 0x24
mov dword [esp + 0x44], 0x101c0
mov dword [esp + 0x50], esi
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0xc]
test eax, eax
jne 0x4f554a
mov eax, dword [0xe832c8]
mov edx, dword [esp + 0x90]
lea ecx, [esp + 0x88]
push eax
push ecx
push edx
call fcn.004f4a30
add esp, 0xc
test eax, eax
je 0x4f554a
mov ecx, 9
xor eax, eax
lea edi, [esp + 0x5c]
lea edx, [esp + 0xc]
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x6c], edx
push ebx
lea edx, [esp + 0x60]
lea ecx, [eax + eax]
mov eax, dword [0xe914dc]
mov dword [esp + 0x60], 0x24
mov dword [esp + 0x64], 0x181c0
mov dword [esp + 0x68], ecx
mov ecx, dword [eax]
push 0xe831b0
push edx
push eax
call dword [ecx + 0xc]
test eax, eax
je 0x4f5478
mov eax, dword [0xe832c8]
cmp eax, ebx
je 0x4f554a
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
pop edi
mov dword [0xe832c8], ebx
pop esi
xor eax, eax
pop ebx
add esp, 0x74
ret
mov eax, dword [0xe831b0]
push 0xe91524
push 0x516014
push eax
mov edx, dword [eax]
call dword [edx]
test eax, eax
je 0x4f54a2
mov eax, dword [0xe832c8]
cmp eax, ebx
je 0x4f5535
jmp 0x4f5529
mov esi, dword [sym.imp.KERNEL32.dll_CreateEventA]
push ebx
push ebx
push ebx
push ebx
call esi
push ebx
push ebx
push ebx
push ebx
mov dword [0xe832bc], eax
call esi
push ebx
push ebx
push ebx
push ebx
mov dword [0xe832c0], eax
call esi
mov ecx, dword [0xe832bc]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x24], ecx
mov ecx, dword [0xe832c0]
mov dword [0xe832c4], eax
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x34], eax
mov eax, dword [0xe91524]
lea ecx, [esp + 0x20]
mov dword [esp + 0x20], ebx
mov dword [esp + 0x28], edx
mov dword [esp + 0x30], 0xffffffff
mov edx, dword [eax]
push ecx
push 3
push eax
call dword [edx + 0xc]
test eax, eax
je 0x4f5553
mov eax, dword [0xe91524]
cmp eax, ebx
je 0x4f5520
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov dword [0xe91524], ebx
mov eax, dword [0xe832c8]
cmp eax, ebx
je 0x4f5535
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [0xe832c8], ebx
mov eax, dword [0xe831b0]
cmp eax, ebx
je 0x4f554a
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov dword [0xe831b0], ebx
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x74
ret
mov byte [0xe91528], 1
mov dword [0xe9153c], ebx
mov eax, dword [0xe831b0]
mov ecx, dword [0xe823ec]
mov edx, dword [esp + 0x88]
push 0xe8f700
push ebx
push 0xe832d0
mov dword [0xe832d0], eax
mov eax, dword [esp + 0x20]
push 0x4f4f40
push ebx
push ebx
mov dword [0xe832d4], 0xe832bc
mov dword [0xe832d8], 3
mov dword [0xe832dc], 2
mov dword [0xe832e0], ecx
mov dword [0xe832e4], edx
mov dword [0xe832e8], eax
call dword [sym.imp.KERNEL32.dll_CreateThread]
cmp eax, ebx
mov dword [0xe8ef70], eax
jne 0x4f55d4
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x74
ret
mov eax, dword [0xe9153c]
cmp eax, ebx
je 0x4f55d4
pop edi
pop esi
mov eax, 1
pop ebx
add esp, 0x74
ret