Function at 0x4eab60
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 [0x587040]
xor eax, ebp
mov dword [esi + 0x78], eax
mov dword [esi + 0x70], 0xa
mov eax, dword [0x574474]
mov cl, byte [eax + 0xa]
test cl, cl
jne 0x4eb4a6
mov dword [esi + 0x70], 0xa
mov al, byte [eax + 0xa]
test al, al
jne 0x4eb451
mov ebx, dword [edi + 0x2c]
test ebx, ebx
jne 0x4eb425
mov eax, dword [edi]
mov ebx, dword [eax + 0xc]
mov ecx, ebx
call dword [0x580f64]
mov ecx, edi
call ebx
mov ebx, eax
mov eax, dword [eax]
mov ecx, dword [eax + 8]
mov dword [esi], ecx
call dword [0x580f64]
mov ecx, ebx
push edi
call dword [esi]
call fcn.00476300
test al, al
mov ebx, edi
mov dword [esi + 4], edi
je 0x4eac34
mov ecx, dword [ebx + 0x24]
call fcn.004e3de0
test al, al
jne 0x4eb412
mov edi, dword [ebx + 0x30]
lea ecx, [esi + 0x44]
mov dword [ecx], 0xffffffff
call fcn.0046b360
test edi, edi
je 0x4eac42
lea ebx, [esi + 0x20]
push 2
push ebx
call fcn.00476710
add esp, 8
lea ecx, [esi + 0x44]
push ebx
call fcn.0046b390
mov ecx, ebx
mov ebx, dword [esi + 4]
call fcn.004b9540
mov al, 1
mov dword [esi + 0xc], eax
jmp 0x4eafdd
lea ecx, [esi + 0x44]
mov dword [ecx], 0xffffffff
call fcn.0046b360
mov dword [esi + 0xc], 0
jmp 0x4eafdd
mov eax, dword [esi + 0x48]
mov dword [esi + 8], eax
mov edi, dword [esi + 0x4c]
mov eax, dword [0x58a36c]
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + eax*4]
mov ecx, dword [0x59cdf0]
cmp ecx, dword [eax + 4]
jg 0x4eb229
cmp byte [0x59cdec], 0
je 0x4eb388
mov eax, dword [0x59ce00]
mov ecx, dword [0x58a36c]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x4eb1ef
mov ecx, dword [ebx + 8]
mov eax, dword [ebx + 0xc]
mov edx, ecx
or edx, eax
jne 0x4eacbd
mov eax, dword [0x59cdfc]
mov ecx, dword [0x59cdf8]
mov edx, 0x3938700
add ecx, edx
mov edx, 0
adc eax, edx
mov edx, SysReAllocString
cmovo eax, edx
mov ebx, 0xffffffff
cmovo ecx, ebx
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.004a9d10
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
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 [0x580f64]
sub esp, 8
movq xmm0, qword [esi + 0x70]
movq qword [esp], xmm0
mov ecx, edi
call ebx
test al, al
je 0x4eb267
mov dword [esi + 0x60], 0xa
mov eax, dword [0x574474]
mov al, byte [eax + 0xa]
test al, al
mov edi, dword [esi + 4]
jne 0x4eb3cd
mov al, byte [edi + 0x20]
test al, al
jne 0x4eb0f0
mov eax, dword [edi]
mov ebx, dword [eax + 0x10]
mov ecx, ebx
call dword [0x580f64]
mov ecx, edi
call ebx
test al, al
jne 0x4eb0f0
mov ecx, dword [edi + 0x24]
call fcn.004e34e0
test al, al
jne 0x4eb0f0
mov ebx, edi
cmp byte [esi + 0xc], 0
je 0x4eae2c
cmp byte [esi + 0x38], 1
je 0x4eb372
sub esp, 8
movq xmm0, qword [0x57a3f0]
movq qword [esp], xmm0
lea ecx, [esi + 0x20]
call fcn.004c29d0
mov byte [esi + 0x38], 1
mov ecx, dword [ebx + 0x24]
call fcn.004e3de0
test al, al
jne 0x4eb308
mov edi, dword [ebx + 0x30]
cmp dword [ebx + 0x34], edi
jne 0x4eb34b
xor eax, eax
dec eax
mov dword [esi + 0x70], eax
mov dword [esi + 0x74], eax
mov eax, dword [ebx]
mov ebx, dword [eax + 0xc]
mov ecx, ebx
call dword [0x580f64]
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 [0x580f64]
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 0x4eb0f7
mov dword [esi + 0x60], eax
lea eax, [esi + 0x60]
push eax
call fcn.004938a0
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.004e5910
lea eax, [esi + 0x68]
mov dword [ebx], eax
mov ebx, eax
mov ecx, dword [esi + 8]
call fcn.004e3770
mov esp, dword [esi]
mov ecx, edi
push ebx
call fcn.004e59c0
mov ecx, ebx
call fcn.004e5940
mov eax, dword [esi + 0x70]
mov dword [esi + 0x58], eax
lea eax, [esi + 0x58]
push eax
call fcn.004938a0
add esp, 4
cmp byte [esi + 0xc], 0
je 0x4eaf15
cmp byte [esi + 0x38], 1
lea edi, [esi + 0x20]
jne 0x4eaefa
mov ecx, edi
call fcn.004c2c10
mov byte [esi + 0x38], 0
sub esp, 8
movq xmm0, qword [0x57a3f0]
movq qword [esp], xmm0
mov ecx, edi
call fcn.004c29d0
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 [0x580f64]
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.004e5910
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 [0x580f64]
mov ecx, ebx
mov ebx, dword [esi + 4]
call edi
mov esp, dword [esi]
mov ecx, dword [ebx + 0x24]
call fcn.004e3de0
test al, al
jne 0x4eb1e5
mov edi, dword [ebx + 0x30]
cmp dword [ebx + 0x34], edi
lea eax, [esi + 0x70]
jne 0x4eb312
cmp dword [esi + 0x70], 0
jne 0x4eb348
mov edi, ebx
mov ecx, eax
lea ebx, [esi + 0x68]
push ebx
call fcn.004e59c0
mov ecx, ebx
call fcn.004e5940
mov eax, dword [esi + 0x70]
test eax, eax
mov ebx, edi
lea edi, [esi + 0x70]
jne 0x4eae89
mov ecx, edi
call fcn.004e5940
mov bl, 1
cmp byte [esi + 0x38], 1
jne 0x4eafd2
lea ecx, [esi + 0x20]
call fcn.004c2c10
test bl, bl
mov ebx, dword [esi + 4]
je 0x4eb150
mov al, byte [ebx + 0x20]
test al, al
jne 0x4eb150
mov eax, dword [ebx]
mov ebx, dword [eax + 0x10]
mov ecx, ebx
call dword [0x580f64]
mov ecx, dword [esi + 4]
call ebx
mov ebx, dword [esi + 4]
test al, al
jne 0x4eb150
mov ecx, dword [ebx + 0x24]
call fcn.004e34e0
test al, al
jne 0x4eb150
pcmpeqd xmm0, xmm0
movdqa xmmword [esi + 0x20], xmm0
movdqa xmmword [esi + 0x30], xmm0
xor eax, eax
mov byte [esi + 0x20], al
mov byte [esi + 0x38], al
mov dword [esi + 0x68], 0xa
mov eax, dword [0x574474]
mov al, byte [eax + 0xa]
test al, al
jne 0x4eb3a2
call fcn.004a3d10
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x4eb053
call fcn.004eb510
cmp byte [esi + 0x38], 1
je 0x4eb35c
mov eax, dword [ebx]
mov edi, ebx
mov ebx, dword [eax + 0xc]
mov ecx, ebx
call dword [0x580f64]
mov ecx, edi
call ebx
mov ecx, eax
mov eax, dword [eax]
cmp dword [eax + 0x18], 0x4ea600
jne 0x4eb0e6
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 [0x580f64]
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.004a9cf0
add esp, 4
mov eax, dword [ebx]
cmp dword [eax + 0x28], 0x4ea940
je 0x4eac4e
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.004ea940
mov eax, dword [esi + 0x50]
mov ecx, dword [esi + 0x54]
jmp 0x4ead70
call fcn.004ea600
jmp 0x4eadb0
xor ebx, ebx
jmp 0x4eafc4
mov al, byte [ebx + 0x20]
test al, al
jne 0x4eb146
mov eax, dword [ebx]
mov edi, dword [eax + 0x10]
mov ecx, edi
call dword [0x580f64]
mov ecx, ebx
call edi
test al, al
jne 0x4eb146
mov ecx, dword [ebx + 0x24]
call fcn.004e34e0
test al, al
jne 0x4eb146
mov eax, dword [ebx]
mov edi, dword [eax + 0xc]
mov ecx, edi
call dword [0x580f64]
mov ecx, ebx
call edi
mov edi, eax
mov eax, dword [eax]
mov ebx, dword [eax + 0x20]
mov ecx, ebx
call dword [0x580f64]
mov ecx, edi
call ebx
mov ebx, dword [esi + 4]
mov eax, dword [esi + 0x70]
test eax, eax
jmp 0x4eafb2
mov eax, dword [ebx]
mov edi, dword [eax + 0xc]
mov ecx, edi
call dword [0x580f64]
mov ecx, ebx
call edi
mov edi, eax
mov eax, dword [eax]
mov ecx, dword [eax + 0x1c]
mov dword [esi], ecx
call dword [0x580f64]
mov ecx, edi
push ebx
call dword [esi]
mov edi, dword [ebx + 0x2c]
test edi, edi
jne 0x4eb43b
mov edi, dword [ebx + 8]
mov dword [ebx + 8], 0
test edi, edi
jne 0x4eb326
mov dword [esi + 0x70], 0xa
mov eax, dword [0x574474]
mov cl, byte [eax + 0xa]
test cl, cl
jne 0x4eb4d5
mov dword [esi + 0x70], 0xa
mov al, byte [eax + 0xa]
test al, al
jne 0x4eb47b
call fcn.004a3d10
mov ecx, dword [eax + 0xc]
test ecx, ecx
jne 0x4eb408
lea ecx, [esi + 0x44]
call fcn.004b9540
mov ecx, dword [esi + 0x78]
xor ecx, ebp
call fcn.004ecef0
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov edi, 3
jmp 0x4eaf81
push 0x59ce00
call fcn.004ec9c1
add esp, 4
cmp dword [0x59ce00], 0xffffffff
jne 0x4eaca6
mov eax, dword [esi + 8]
mov dword [0x59cdf8], eax
mov dword [0x59cdfc], edi
push 0x59ce00
call fcn.004eca3b
add esp, 4
jmp 0x4eaca6
push 0x59cdf0
call fcn.004ec9c1
add esp, 4
cmp dword [0x59cdf0], 0xffffffff
jne 0x4eac78
push 0x589248
call fcn.004bb900
add esp, 4
mov byte [0x59cdec], al
push 0x59cdf0
call fcn.004eca3b
add esp, 4
jmp 0x4eac78
call fcn.0047f540
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 0x4eadb0
mov ebx, eax
not ebx
mov ecx, edx
xor ecx, 0x7fffffff
or ecx, ebx
jne 0x4eb2c8
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 [0x580f64]
sub esp, 8
movq xmm0, qword [esi + 0x68]
movq qword [esp], xmm0
mov ecx, edi
call ebx
jmp 0x4eadb0
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 0x4eb295
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 0x4eb2a3
mov edi, 3
jmp 0x4eae3f
push edi
call fcn.004712d0
lea eax, [esi + 0x70]
add esp, 4
mov dword [ebx + 0x34], edi
jmp 0x4eaf8d
lock dec dword [edi + 4]
jne 0x4eb192
mov eax, dword [edi]
mov ebx, dword [eax + 4]
mov ecx, ebx
call dword [0x580f64]
mov ecx, edi
push 1
call ebx
jmp 0x4eb192
int3
push edi
call fcn.004712d0
add esp, 4
mov dword [ebx + 0x34], edi
jmp 0x4eae48
lea ebx, [esi + 0x20]
mov ecx, ebx
call fcn.004c2c10
mov byte [ebx + 0x18], 0
mov ebx, dword [esi + 4]
jmp 0x4eb05d
lea ebx, [esi + 0x20]
mov ecx, ebx
call fcn.004c2c10
mov byte [ebx + 0x18], 0
mov ebx, dword [esi + 4]
jmp 0x4eae10
mov dword [esi + 0x54], 0
mov dword [esi + 0x50], 0xf4240
xor ecx, ecx
mov eax, 0xf4240
jmp 0x4ead70
movzx eax, al
mov dword [esi + 0x70], str.WorkerThread_active
push 0
push 0x45
push 0x568468
push 2
lea ecx, [esi + 0x70]
push ecx
lea ecx, [esi + 0x68]
push ecx
push eax
call fcn.0045d150
add esp, 0x1c
jmp 0x4eb042
movzx eax, al
mov ecx, dword [0x58b2d8]
xor ecx, dword [edi + 0x3c]
mov edx, dword [0x58b2dc]
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.004ab700
add esp, 0x14
jmp 0x4eadca
call fcn.00555f80
jmp 0x4eb1cb
lea ecx, [esi + 0x44]
mov dword [ecx], 0xffffffff
call fcn.0046b360
jmp 0x4eac09
mov eax, dword [ebx]
mov ecx, dword [eax + 4]
mov dword [esi], ecx
call dword [0x580f64]
mov ecx, ebx
call dword [esi]
jmp 0x4eabb1
mov eax, dword [edi]
mov ecx, dword [eax + 8]
mov dword [esi], ecx
call dword [0x580f64]
mov ecx, edi
call dword [esi]
jmp 0x4eb180
movzx eax, al
lea ecx, [esi + 0x20]
mov dword [ecx], str.WorkerThread_active
lea edx, [esi + 0x70]
push 0
push 0x42
push 0x568468
push 1
push ecx
push edx
push eax
call fcn.0045d150
add esp, 0x1c
jmp 0x4eaba6
movzx eax, al
mov dword [esi + 0x20], str.WorkerThread_dead
push 8
push 0x49
push 0x568468
push 3
lea ecx, [esi + 0x20]
push ecx
lea ecx, [esi + 0x70]
push ecx
push eax
call fcn.0045d150
add esp, 0x1c
jmp 0x4eb1bb
movzx eax, cl
lea ecx, [esi + 0x20]
mov dword [ecx], str.WorkerThread_born
lea edx, [esi + 0x70]
push 8
push 0x49
push 0x568468
push 3
push ecx
push edx
push eax
call fcn.0045d150
add esp, 0x1c
mov eax, dword [0x574474]
jmp 0x4eab94
movzx eax, cl
mov dword [esi + 0x20], str.WorkerThread_active
push 0
push 0x45
push 0x568468
push 2
lea ecx, [esi + 0x20]
push ecx
lea ecx, [esi + 0x70]
push ecx
push eax
call fcn.0045d150
add esp, 0x1c
mov eax, dword [0x574474]
jmp 0x4eb1a9