Function at 0x4efd90
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x80
mov esi, esp
mov edi, ecx
mov eax, dword [0x5c7040]
xor eax, ebp
mov dword [esi + 0x78], eax
mov dword [esi + 0x70], 0xa
mov eax, dword [0x5abe0c]
mov cl, byte [eax + 0xa]
test cl, cl
jne 0x4f06d3
mov dword [esi + 0x70], 0xa
mov al, byte [eax + 0xa]
test al, al
jne 0x4f067e
mov ebx, dword [edi + 0x2c]
test ebx, ebx
jne 0x4f0652
mov eax, dword [edi]
mov ebx, dword [eax + 0xc]
mov ecx, ebx
call dword [0x5c0d2c]
mov ecx, edi
call ebx
mov ebx, eax
mov eax, dword [eax]
mov ecx, dword [eax + 8]
mov dword [esi], ecx
call dword [0x5c0d2c]
mov ecx, ebx
push edi
call dword [esi]
call fcn.00466780
test al, al
mov ebx, edi
mov dword [esi + 4], edi
je 0x4efe64
mov ecx, dword [ebx + 0x24]
call fcn.004e2a10
test al, al
jne 0x4f0561
mov edi, dword [ebx + 0x30]
lea ecx, [esi + 0x44]
mov dword [ecx], 0xffffffff
call fcn.00450190
test edi, edi
je 0x4efe72
lea ebx, [esi + 0x20]
push 2
push ebx
call fcn.00466b90
add esp, 8
lea ecx, [esi + 0x44]
push ebx
call fcn.004501a0
mov ecx, ebx
mov ebx, dword [esi + 4]
call fcn.004ba330
mov al, 1
mov dword [esi + 0xc], eax
jmp 0x4f00b2
lea ecx, [esi + 0x44]
mov dword [ecx], 0xffffffff
call fcn.00450190
mov dword [esi + 0xc], 0
jmp 0x4f00b2
xor ebx, ebx
jmp 0x4f0099
call fcn.004ef830
mov dword [esi + 0x60], 0xa
mov eax, dword [0x5abe0c]
movzx eax, byte [eax + 0xa]
test al, al
mov edi, dword [esi + 4]
jne 0x4f05f3
movzx eax, byte [edi + 0x20]
test al, al
jne 0x4efe7e
mov eax, dword [edi]
mov ebx, dword [eax + 0x10]
mov ecx, ebx
call dword [0x5c0d2c]
mov ecx, edi
call ebx
test al, al
jne 0x4efe7e
mov ecx, dword [edi + 0x24]
call fcn.004e21b0
test al, al
jne 0x4efe7e
mov ebx, edi
cmp byte [esi + 0xc], 0
je 0x4efefc
cmp byte [esi + 0x38], 1
je 0x4f05b2
sub esp, 8
movq xmm0, qword [0x5b6d50]
movq qword [esp], xmm0
lea ecx, [esi + 0x20]
call fcn.004c6ad0
mov byte [esi + 0x38], 1
mov ecx, dword [ebx + 0x24]
call fcn.004e2a10
test al, al
jne 0x4f0535
mov edi, dword [ebx + 0x30]
cmp dword [ebx + 0x34], edi
jne 0x4f058b
mov dword [esi + 0x70], 0xffffffff
mov dword [esi + 0x74], 0xffffffff
mov eax, dword [ebx]
mov ebx, dword [eax + 0xc]
mov ecx, ebx
call dword [0x5c0d2c]
mov ecx, dword [esi + 4]
call ebx
mov ebx, eax
mov eax, dword [eax]
mov ecx, dword [eax + 0xc]
mov dword [esi], ecx
call dword [0x5c0d2c]
mov ecx, ebx
mov ebx, dword [esi + 4]
push ebx
lea edi, [esi + 0x70]
push edi
call dword [esi]
mov eax, dword [esi + 0x70]
test eax, eax
je 0x4f03b9
mov dword [esi + 0x60], eax
lea eax, [esi + 0x60]
push eax
call fcn.00493be0
add esp, 4
mov dword [esi], esp
mov eax, dword [ebx + 0x24]
mov dword [esi + 8], eax
sub esp, 0xc
mov ebx, esp
lea ecx, [ebx + 4]
push edi
call fcn.004e4630
lea eax, [esi + 0x68]
mov dword [ebx], eax
mov ebx, eax
mov ecx, dword [esi + 8]
call fcn.004e2440
mov esp, dword [esi]
mov ecx, edi
push ebx
call fcn.004e46e0
mov ecx, ebx
call fcn.004e4660
mov eax, dword [esi + 0x70]
mov dword [esi + 0x58], eax
lea eax, [esi + 0x58]
push eax
call fcn.00493be0
add esp, 4
cmp byte [esi + 0xc], 0
je 0x4effea
cmp byte [esi + 0x38], 1
lea edi, [esi + 0x20]
jne 0x4effcf
mov ecx, edi
call fcn.004c6d00
mov byte [esi + 0x38], 0
sub esp, 8
movq xmm0, qword [0x5b6d50]
movq qword [esp], xmm0
mov ecx, edi
call fcn.004c6ad0
mov byte [esi + 0x38], 1
mov dword [esi + 0x68], 0xffffffff
mov dword [esi + 0x6c], 0xffffffff
mov ebx, dword [esi + 4]
mov eax, dword [ebx]
mov edi, dword [eax + 0xc]
mov ecx, edi
call dword [0x5c0d2c]
mov ecx, ebx
call edi
mov dword [esi + 8], eax
mov dword [esi], esp
sub esp, 0x10
mov edi, esp
lea ecx, [edi + 4]
lea eax, [esi + 0x70]
push eax
call fcn.004e4630
lea eax, [esi + 0x68]
mov dword [edi], eax
mov dword [edi + 0xc], ebx
mov ebx, dword [esi + 8]
mov eax, dword [ebx]
mov edi, dword [eax + 0x10]
mov ecx, edi
call dword [0x5c0d2c]
mov ecx, ebx
mov ebx, dword [esi + 4]
call edi
mov esp, dword [esi]
mov ecx, dword [ebx + 0x24]
call fcn.004e2a10
test al, al
jne 0x4f0412
mov edi, dword [ebx + 0x30]
cmp dword [ebx + 0x34], edi
lea eax, [esi + 0x70]
jne 0x4f0574
cmp dword [esi + 0x70], 0
jne 0x4f0588
mov edi, ebx
mov ecx, eax
lea ebx, [esi + 0x68]
push ebx
call fcn.004e46e0
mov ecx, ebx
call fcn.004e4660
mov eax, dword [esi + 0x70]
test eax, eax
mov ebx, edi
lea edi, [esi + 0x70]
jne 0x4eff5e
mov ecx, edi
call fcn.004e4660
mov bl, 1
cmp byte [esi + 0x38], 1
jne 0x4f00a7
lea ecx, [esi + 0x20]
call fcn.004c6d00
test bl, bl
mov ebx, dword [esi + 4]
je 0x4f0324
movzx eax, byte [ebx + 0x20]
test al, al
jne 0x4f0324
mov eax, dword [ebx]
mov ebx, dword [eax + 0x10]
mov ecx, ebx
call dword [0x5c0d2c]
mov ecx, dword [esi + 4]
call ebx
mov ebx, dword [esi + 4]
test al, al
jne 0x4f0324
mov ecx, dword [ebx + 0x24]
call fcn.004e21b0
test al, al
jne 0x4f0324
pcmpeqd xmm0, xmm0
movdqa xmmword [esi + 0x20], xmm0
movdqa xmmword [esi + 0x30], xmm0
mov byte [esi + 0x20], 0
mov byte [esi + 0x38], 0
mov dword [esi + 0x68], 0xa
mov eax, dword [0x5abe0c]
movzx eax, byte [eax + 0xa]
test al, al
jne 0x4f05c8
call fcn.004a6040
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x4f012a
call fcn.004f0740
cmp byte [esi + 0x38], 1
je 0x4f059c
mov eax, dword [ebx]
mov edi, ebx
mov ebx, dword [eax + 0xc]
mov ecx, ebx
call dword [0x5c0d2c]
mov ecx, edi
call ebx
mov ecx, eax
mov eax, dword [eax]
cmp dword [eax + 0x18], 0x4ef830
jne 0x4efe85
xor edi, edi
dec edi
mov dword [esi + 0x58], edi
mov dword [esi + 0x5c], edi
mov eax, dword [ecx]
mov dword [esi], ecx
mov ebx, dword [eax + 0x14]
mov ecx, ebx
call dword [0x5c0d2c]
mov ecx, dword [esi]
lea eax, [esi + 0x58]
push eax
call ebx
mov ebx, dword [esi]
mov dword [esi + 0x54], edi
mov dword [esi + 0x50], edi
lea eax, [esi + 0x48]
push eax
call fcn.004ac450
add esp, 4
mov eax, dword [ebx]
cmp dword [eax + 0x28], 0x4efb70
je 0x4f01fd
sub esp, 0xc
movq xmm0, qword [esi + 0x48]
movq qword [esp + 4], xmm0
lea eax, [esi + 0x50]
mov dword [esp], eax
mov ecx, ebx
call fcn.004efb70
mov eax, dword [esi + 0x50]
mov ecx, dword [esi + 0x54]
mov edx, dword [esi + 0x58]
mov edi, dword [esi + 0x5c]
cmp edx, eax
mov ebx, edi
sbb ebx, ecx
cmovl ecx, edi
cmovl eax, edx
mov dword [esi + 0x70], eax
mov dword [esi + 0x74], ecx
mov edi, dword [esi]
mov eax, dword [edi]
mov ebx, dword [eax + 0x24]
mov ecx, ebx
call dword [0x5c0d2c]
sub esp, 8
movq xmm0, qword [esi + 0x70]
movq qword [esp], xmm0
mov ecx, edi
call ebx
test al, al
jne 0x4efe8a
jmp 0x4f0494
mov eax, dword [esi + 0x48]
mov dword [esi + 8], eax
mov edi, dword [esi + 0x4c]
mov eax, dword [0x5cacb4]
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + eax*4]
mov ecx, dword [0x5dd678]
cmp ecx, dword [eax + 4]
jg 0x4f0456
cmp byte [0x5dd674], 0
je 0x4f062e
mov eax, dword [0x5dd688]
mov ecx, dword [0x5cacb4]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x4f041c
mov ecx, dword [ebx + 8]
mov eax, dword [ebx + 0xc]
mov edx, ecx
or edx, eax
jne 0x4f026c
mov eax, dword [0x5dd684]
mov ecx, dword [0x5dd680]
mov edx, 0x3938700
add ecx, edx
mov edx, 0
adc eax, edx
mov edx, SysReAllocString
cmovo eax, edx
mov edx, 0xffffffff
cmovo ecx, edx
mov ebx, dword [esi + 8]
cmp ecx, ebx
sbb eax, edi
mov eax, 0x3938700
mov ecx, 0xf4240
cmovl eax, ecx
add eax, ebx
mov ecx, edi
mov edx, 0
adc ecx, edx
mov edx, SysReAllocString
cmovo ecx, edx
mov dword [esi + 0x6c], ecx
mov ecx, 0xffffffff
cmovo eax, ecx
mov dword [esi + 0x68], eax
mov dword [esi + 0x74], ecx
mov dword [esi + 0x70], ecx
xor eax, eax
mov dword [esi + 0x60], eax
mov dword [esi + 0x64], eax
xor eax, eax
sub esp, 0x14
mov dword [esp + 0x10], eax
movq xmm0, qword [esi + 0x60]
movq qword [esp + 4], xmm0
lea eax, [esi + 0x70]
mov dword [esp], eax
mov dword [esp + 0xc], 0xf4240
lea ecx, [esi + 0x68]
call fcn.004ac470
mov eax, dword [esi + 0x70]
mov edx, dword [esi + 0x74]
sub eax, ebx
sbb edx, edi
seto bl
mov ecx, edx
sar ecx, 0x1f
test bl, bl
cmovne eax, ecx
add ecx, 0x80000000
test bl, bl
cmove ecx, edx
mov dword [esi + 0x50], eax
mov dword [esi + 0x54], ecx
jmp 0x4f01b8
mov eax, dword [ebx]
mov edi, dword [eax + 0xc]
mov ecx, edi
call dword [0x5c0d2c]
mov ecx, ebx
call edi
mov edi, eax
mov eax, dword [eax]
mov ecx, dword [eax + 0x1c]
mov dword [esi], ecx
call dword [0x5c0d2c]
mov ecx, edi
push ebx
call dword [esi]
mov edi, dword [ebx + 0x2c]
test edi, edi
jne 0x4f0668
mov edi, dword [ebx + 8]
mov dword [ebx + 8], 0
test edi, edi
jne 0x4f053f
mov dword [esi + 0x70], 0xa
mov eax, dword [0x5abe0c]
mov cl, byte [eax + 0xa]
test cl, cl
jne 0x4f0702
mov dword [esi + 0x70], 0xa
mov al, byte [eax + 0xa]
test al, al
jne 0x4f06a8
call fcn.004a6040
mov ecx, dword [eax + 0xc]
test ecx, ecx
jne 0x4f0648
lea ecx, [esi + 0x44]
call fcn.004ba330
mov ecx, dword [esi + 0x78]
xor ecx, ebp
call fcn.004f5620
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov al, byte [ebx + 0x20]
test al, al
jne 0x4f0408
mov eax, dword [ebx]
mov edi, dword [eax + 0x10]
mov ecx, edi
call dword [0x5c0d2c]
mov ecx, ebx
call edi
test al, al
jne 0x4f0408
mov ecx, dword [ebx + 0x24]
call fcn.004e21b0
test al, al
jne 0x4f0408
mov eax, dword [ebx]
mov edi, dword [eax + 0xc]
mov ecx, edi
call dword [0x5c0d2c]
mov ecx, ebx
call edi
mov edi, eax
mov eax, dword [eax]
mov ebx, dword [eax + 0x20]
mov ecx, ebx
call dword [0x5c0d2c]
mov ecx, edi
call ebx
mov ebx, dword [esi + 4]
mov eax, dword [esi + 0x70]
test eax, eax
jmp 0x4f0087
mov edi, 3
jmp 0x4f0056
push 0x5dd688
call fcn.004f50f1
add esp, 4
cmp dword [0x5dd688], 0xffffffff
jne 0x4f0255
mov eax, dword [esi + 8]
mov dword [0x5dd680], eax
mov dword [0x5dd684], edi
push 0x5dd688
call fcn.004f516b
add esp, 4
jmp 0x4f0255
push 0x5dd678
call fcn.004f50f1
add esp, 4
cmp dword [0x5dd678], 0xffffffff
jne 0x4f0227
push 0x5c98a0
call fcn.004bc790
add esp, 4
mov byte [0x5dd674], al
push 0x5dd678
call fcn.004f516b
add esp, 4
jmp 0x4f0227
call fcn.00470b00
mov edi, dword [esi + 0x50]
mov ebx, dword [esi + 0x54]
mov eax, dword [esi + 0x58]
mov edx, dword [esi + 0x5c]
cmp edi, eax
mov dword [esi + 8], ebx
sbb ebx, edx
jge 0x4efe8a
mov ebx, eax
not ebx
mov ecx, edx
xor ecx, 0x7fffffff
or ecx, ebx
jne 0x4f04f5
xor eax, eax
dec eax
mov dword [esi + 0x68], eax
mov eax, SysReAllocString
mov dword [esi + 0x6c], eax
mov edi, dword [esi]
mov eax, dword [edi]
mov ebx, dword [eax + 0x24]
mov ecx, ebx
call dword [0x5c0d2c]
sub esp, 8
movq xmm0, qword [esi + 0x68]
movq qword [esp], xmm0
mov ecx, edi
call ebx
jmp 0x4efe8a
xor ecx, ecx
dec ecx
add ecx, edi
mov ebx, SysReAllocString
adc ebx, dword [esi + 8]
add ecx, 2
adc ebx, 0
cmp ecx, 2
sbb ebx, 0
jb 0x4f04c2
sub eax, edi
sbb edx, dword [esi + 8]
seto bl
mov ecx, edx
sar ecx, 0x1f
test bl, bl
cmovne eax, ecx
add ecx, 0x80000000
test bl, bl
cmove ecx, edx
mov dword [esi + 0x68], eax
mov dword [esi + 0x6c], ecx
jmp 0x4f04d0
mov edi, 3
jmp 0x4eff0f
lock dec dword [edi + 4]
jne 0x4f0366
mov eax, dword [edi]
mov ebx, dword [eax + 4]
mov ecx, ebx
call dword [0x5c0d2c]
mov ecx, edi
push 1
call ebx
jmp 0x4f0366
lea ecx, [esi + 0x44]
mov dword [ecx], 0xffffffff
call fcn.00450190
jmp 0x4efe39
push edi
call fcn.004617a0
lea eax, [esi + 0x70]
add esp, 4
mov dword [ebx + 0x34], edi
jmp 0x4f0062
int3
push edi
call fcn.004617a0
add esp, 4
mov dword [ebx + 0x34], edi
jmp 0x4eff18
lea ebx, [esi + 0x20]
mov ecx, ebx
call fcn.004c6d00
mov byte [ebx + 0x18], 0
mov ebx, dword [esi + 4]
jmp 0x4f0134
lea ebx, [esi + 0x20]
mov ecx, ebx
call fcn.004c6d00
mov byte [ebx + 0x18], 0
mov ebx, dword [esi + 4]
jmp 0x4efee0
movzx eax, al
mov dword [esi + 0x70], str.WorkerThread_active
push 0
push 0x45
push 0x5a2c28
push 2
lea ecx, [esi + 0x70]
push ecx
lea ecx, [esi + 0x68]
push ecx
push eax
call fcn.00440540
add esp, 0x1c
jmp 0x4f0119
movzx eax, al
mov ecx, dword [0x5cbd00]
xor ecx, dword [edi + 0x3c]
mov edx, dword [0x5cbd04]
mov dword [esi + 0x74], edx
mov dword [esi + 0x70], ecx
mov dword [esi + 0x68], str.WorkerThread_active
lea ecx, [esi + 0x70]
push ecx
push 1
lea ecx, [esi + 0x68]
push ecx
lea ecx, [esi + 0x60]
push ecx
push eax
call fcn.004c1fe0
add esp, 0x14
jmp 0x4efea5
mov dword [esi + 0x54], 0
mov dword [esi + 0x50], 0xf4240
xor ecx, ecx
mov eax, 0xf4240
jmp 0x4f01b8
call fcn.0056d430
jmp 0x4f039f
mov eax, dword [ebx]
mov ecx, dword [eax + 4]
mov dword [esi], ecx
call dword [0x5c0d2c]
mov ecx, ebx
call dword [esi]
jmp 0x4efde1
mov eax, dword [edi]
mov ecx, dword [eax + 8]
mov dword [esi], ecx
call dword [0x5c0d2c]
mov ecx, edi
call dword [esi]
jmp 0x4f0354
movzx eax, al
lea ecx, [esi + 0x20]
mov dword [ecx], str.WorkerThread_active
lea edx, [esi + 0x70]
push 0
push 0x42
push 0x5a2c28
push 1
push ecx
push edx
push eax
call fcn.00440540
add esp, 0x1c
jmp 0x4efdd6
movzx eax, al
mov dword [esi + 0x20], str.WorkerThread_dead
push 8
push 0x49
push 0x5a2c28
push 3
lea ecx, [esi + 0x20]
push ecx
lea ecx, [esi + 0x70]
push ecx
push eax
call fcn.00440540
add esp, 0x1c
jmp 0x4f038f
movzx eax, cl
lea ecx, [esi + 0x20]
mov dword [ecx], str.WorkerThread_born
lea edx, [esi + 0x70]
push 8
push 0x49
push 0x5a2c28
push 3
push ecx
push edx
push eax
call fcn.00440540
add esp, 0x1c
mov eax, dword [0x5abe0c]
jmp 0x4efdc4
movzx eax, cl
mov dword [esi + 0x20], str.WorkerThread_active
push 0
push 0x45
push 0x5a2c28
push 2
lea ecx, [esi + 0x20]
push ecx
lea ecx, [esi + 0x70]
push ecx
push eax
call fcn.00440540
add esp, 0x1c
mov eax, dword [0x5abe0c]
jmp 0x4f037d