Function at 0x5a53d0
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 [0x80e040]
xor eax, ebp
mov dword [esi + 0x78], eax
mov dword [esi + 0x70], 0xb
mov eax, dword [0x78ef14]
mov cl, byte [eax + 0xb]
test cl, cl
jne 0x5a5d0c
mov dword [esi + 0x70], 0xb
mov al, byte [eax + 0xb]
test al, al
jne 0x5a5cb7
mov ebx, dword [edi + 0x2c]
test ebx, ebx
jne 0x5a5c87
mov eax, dword [edi]
mov ebx, dword [eax + 0xc]
mov ecx, ebx
call dword [0x8072c0]
mov ecx, edi
call ebx
mov ebx, eax
mov eax, dword [eax]
mov ecx, dword [eax + 8]
mov dword [esi + 0xc], ecx
call dword [0x8072c0]
mov ecx, ebx
push edi
call dword [esi + 0xc]
call fcn.004ddf70
test al, al
mov ebx, edi
mov dword [esi + 0x10], edi
je 0x5a54a6
mov ecx, dword [ebx + 0x24]
call fcn.00597570
test al, al
jne 0x5a5c74
mov edi, dword [ebx + 0x30]
lea ecx, [esi + 0x44]
mov dword [ecx], 0xffffffff
call fcn.004bb1b0
test edi, edi
je 0x5a54b4
lea ebx, [esi + 0x20]
push 2
push ebx
call fcn.004de390
add esp, 8
lea ecx, [esi + 0x44]
push ebx
call fcn.004bb1c0
mov ecx, ebx
mov ebx, dword [esi + 0x10]
call fcn.00561620
mov al, 1
mov dword [esi + 0x18], eax
jmp 0x5a5856
lea ecx, [esi + 0x44]
mov dword [ecx], 0xffffffff
call fcn.004bb1b0
mov dword [esi + 0x18], 0
jmp 0x5a5856
mov eax, dword [esi + 0x48]
mov dword [esi + 0x14], eax
mov ebx, dword [esi + 0x4c]
mov eax, dword [0x813560]
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + eax*4]
mov ecx, dword [0x825c68]
cmp ecx, dword [eax + 4]
jg 0x5a5b31
cmp byte [0x825c64], 0
je 0x5a5c1f
mov eax, dword [0x825c78]
mov ecx, dword [0x813560]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x5a5a4b
mov dword [esi + 0x1c], ebx
mov ecx, dword [edi + 8]
mov eax, dword [edi + 0xc]
mov edx, ecx
or edx, eax
jne 0x5a5532
mov eax, dword [0x825c74]
mov ecx, dword [0x825c70]
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 + 0x14]
cmp ecx, ebx
mov edi, dword [esi + 0x1c]
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.00553860
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 + 0xc]
mov eax, dword [edi]
mov ebx, dword [eax + 0x24]
mov ecx, ebx
call dword [0x8072c0]
sub esp, 8
movq xmm0, qword [esi + 0x70]
movq qword [esp], xmm0
mov ecx, edi
call ebx
test al, al
je 0x5a5a85
mov dword [esi + 0x60], 0xb
mov eax, dword [0x78ef14]
mov al, byte [eax + 0xb]
test al, al
mov edi, dword [esi + 0x10]
jne 0x5a5c39
mov al, byte [edi + 0x20]
test al, al
jne 0x5a595d
mov eax, dword [edi]
mov ebx, dword [eax + 0x10]
mov ecx, ebx
call dword [0x8072c0]
mov ecx, edi
call ebx
test al, al
jne 0x5a595d
mov ecx, dword [edi + 0x24]
call fcn.00596cb0
test al, al
jne 0x5a595d
mov ebx, edi
cmp byte [esi + 0x18], 0
je 0x5a56a5
cmp byte [esi + 0x38], 1
je 0x5a5bc3
sub esp, 8
movq xmm0, qword [0x7a37c0]
movq qword [esp], xmm0
lea ecx, [esi + 0x20]
call fcn.005730c0
mov byte [esi + 0x38], 1
mov ecx, dword [ebx + 0x24]
call fcn.00597570
test al, al
jne 0x5a5b27
mov edi, dword [ebx + 0x30]
cmp dword [ebx + 0x34], edi
jne 0x5a5bb2
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 [0x8072c0]
mov ecx, dword [esi + 0x10]
call ebx
mov ebx, eax
mov eax, dword [eax]
mov edi, dword [eax + 0xc]
mov ecx, edi
call dword [0x8072c0]
mov ecx, ebx
mov ebx, dword [esi + 0x10]
push ebx
lea eax, [esi + 0x70]
push eax
call edi
mov eax, dword [esi + 0x70]
test eax, eax
je 0x5a5964
mov dword [esi + 0x60], eax
lea eax, [esi + 0x60]
push eax
call fcn.00534700
add esp, 4
mov dword [esi + 0xc], esp
mov eax, dword [ebx + 0x24]
mov dword [esi + 0x14], eax
sub esp, 0xc
mov edi, esp
lea ecx, [edi + 4]
lea eax, [esi + 0x70]
push eax
call fcn.005991b0
lea ebx, [esi + 0x68]
mov dword [edi], ebx
mov ecx, dword [esi + 0x14]
call fcn.00596f50
mov esp, dword [esi + 0xc]
lea ecx, [esi + 0x70]
push ebx
call fcn.00599260
mov ecx, ebx
call fcn.005991e0
mov eax, dword [esi + 0x70]
mov dword [esi + 0x58], eax
lea eax, [esi + 0x58]
push eax
call fcn.00534700
add esp, 4
cmp byte [esi + 0x18], 0
je 0x5a5792
cmp byte [esi + 0x38], 1
lea edi, [esi + 0x20]
jne 0x5a5777
mov ecx, edi
call fcn.00573300
mov byte [esi + 0x38], 0
sub esp, 8
movq xmm0, qword [0x7a37c0]
movq qword [esp], xmm0
mov ecx, edi
call fcn.005730c0
mov byte [esi + 0x38], 1
mov dword [esi + 0x68], 0xffffffff
mov dword [esi + 0x6c], 0xffffffff
mov ebx, dword [esi + 0x10]
mov eax, dword [ebx]
mov edi, dword [eax + 0xc]
mov ecx, edi
call dword [0x8072c0]
mov ecx, ebx
call edi
mov dword [esi + 0x14], eax
mov dword [esi + 0xc], esp
sub esp, 0x10
mov edi, esp
lea ecx, [edi + 4]
lea eax, [esi + 0x70]
push eax
call fcn.005991b0
lea eax, [esi + 0x68]
mov dword [edi], eax
mov dword [edi + 0xc], ebx
mov ebx, dword [esi + 0x14]
mov eax, dword [ebx]
mov edi, dword [eax + 0x10]
mov ecx, edi
call dword [0x8072c0]
mov ecx, ebx
mov ebx, dword [esi + 0x10]
call edi
mov esp, dword [esi + 0xc]
mov ecx, dword [ebx + 0x24]
call fcn.00597570
test al, al
jne 0x5a5b6f
mov edi, dword [ebx + 0x30]
cmp dword [ebx + 0x34], edi
lea eax, [esi + 0x70]
jne 0x5a5b9e
cmp dword [esi + 0x70], 0
jne 0x5a5b9b
mov ecx, eax
lea edi, [esi + 0x68]
push edi
call fcn.00599260
mov ecx, edi
call fcn.005991e0
mov eax, dword [esi + 0x70]
test eax, eax
jne 0x5a5702
lea ecx, [esi + 0x70]
call fcn.005991e0
mov bl, 1
cmp byte [esi + 0x38], 1
jne 0x5a584b
lea ecx, [esi + 0x20]
call fcn.00573300
test bl, bl
mov ebx, dword [esi + 0x10]
je 0x5a59c4
mov al, byte [ebx + 0x20]
test al, al
jne 0x5a59c4
mov eax, dword [ebx]
mov ebx, dword [eax + 0x10]
mov ecx, ebx
call dword [0x8072c0]
mov ecx, dword [esi + 0x10]
call ebx
mov ebx, dword [esi + 0x10]
test al, al
jne 0x5a59c4
mov ecx, dword [ebx + 0x24]
call fcn.00596cb0
test al, al
jne 0x5a59c4
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], 0xb
mov eax, dword [0x78ef14]
mov al, byte [eax + 0xb]
test al, al
jne 0x5a5bd9
mov eax, dword [ebx]
mov edi, ebx
mov ebx, dword [eax + 0xc]
mov ecx, ebx
call dword [0x8072c0]
mov ecx, edi
call ebx
mov edi, eax
mov eax, dword [eax]
mov ebx, dword [eax + 0x18]
cmp ebx, 0x5a4e70
jne 0x5a594c
mov dword [esi + 0xc], edi
xor edi, edi
dec edi
mov dword [esi + 0x58], edi
mov dword [esi + 0x5c], edi
mov eax, dword [esi + 0xc]
mov eax, dword [eax]
mov ebx, dword [eax + 0x14]
mov ecx, ebx
call dword [0x8072c0]
mov ecx, dword [esi + 0xc]
lea eax, [esi + 0x58]
push eax
call ebx
mov dword [esi + 0x54], edi
mov dword [esi + 0x50], edi
mov edi, dword [esi + 0xc]
lea eax, [esi + 0x48]
push eax
call fcn.00553840
add esp, 4
mov eax, dword [edi]
cmp dword [eax + 0x28], 0x5a51b0
je 0x5a54c0
sub esp, 0xc
movq xmm0, qword [esi + 0x48]
movq qword [esp + 4], xmm0
lea eax, [esi + 0x50]
mov dword [esp], eax
mov ecx, edi
call fcn.005a51b0
mov eax, dword [esi + 0x50]
mov ecx, dword [esi + 0x54]
jmp 0x5a55e8
mov ecx, ebx
call dword [0x8072c0]
mov ecx, edi
call ebx
jmp 0x5a5629
xor ebx, ebx
jmp 0x5a583d
mov al, byte [ebx + 0x20]
test al, al
jne 0x5a5828
mov eax, dword [ebx]
mov edi, dword [eax + 0x10]
mov ecx, edi
call dword [0x8072c0]
mov ecx, ebx
call edi
test al, al
jne 0x5a5828
mov ecx, dword [ebx + 0x24]
call fcn.00596cb0
test al, al
jne 0x5a5828
mov eax, dword [ebx]
mov edi, dword [eax + 0xc]
mov ecx, edi
call dword [0x8072c0]
mov ecx, ebx
call edi
mov edi, eax
mov eax, dword [eax]
mov ebx, dword [eax + 0x20]
mov ecx, ebx
call dword [0x8072c0]
mov ecx, edi
call ebx
mov ebx, dword [esi + 0x10]
jmp 0x5a5828
mov eax, dword [ebx]
mov edi, dword [eax + 0xc]
mov ecx, edi
call dword [0x8072c0]
mov ecx, ebx
call edi
mov edi, eax
mov eax, dword [eax]
mov ecx, dword [eax + 0x1c]
mov dword [esi + 0xc], ecx
call dword [0x8072c0]
mov ecx, edi
push ebx
call dword [esi + 0xc]
mov edi, dword [ebx + 0x2c]
test edi, edi
jne 0x5a5c9f
mov edi, dword [ebx + 8]
mov dword [ebx + 8], 0
test edi, edi
jne 0x5a5b79
mov dword [esi + 0x70], 0xb
mov eax, dword [0x78ef14]
mov cl, byte [eax + 0xb]
test cl, cl
jne 0x5a5d3b
mov dword [esi + 0x70], 0xb
mov al, byte [eax + 0xb]
test al, al
jne 0x5a5ce1
lea ecx, [esi + 0x44]
call fcn.00561620
mov ecx, dword [esi + 0x78]
xor ecx, ebp
call fcn.005c9f16
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push 0x825c78
call fcn.005c8bdd
add esp, 4
cmp dword [0x825c78], 0xffffffff
jne 0x5a5518
mov eax, dword [esi + 0x14]
mov dword [0x825c70], eax
mov dword [0x825c74], ebx
push 0x825c78
call fcn.005c8c57
add esp, 4
jmp 0x5a5518
call fcn.004e9220
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 + 0x14], ebx
sbb ebx, edx
jge 0x5a5629
mov ebx, eax
not ebx
mov ecx, edx
xor ecx, 0x7fffffff
or ecx, ebx
jne 0x5a5ae7
xor eax, eax
dec eax
mov dword [esi + 0x68], eax
mov eax, SysReAllocString
mov dword [esi + 0x6c], eax
mov edi, dword [esi + 0xc]
mov eax, dword [edi]
mov ebx, dword [eax + 0x24]
mov ecx, ebx
call dword [0x8072c0]
sub esp, 8
movq xmm0, qword [esi + 0x68]
movq qword [esp], xmm0
mov ecx, edi
call ebx
jmp 0x5a5629
xor ecx, ecx
dec ecx
add ecx, edi
mov ebx, SysReAllocString
adc ebx, dword [esi + 0x14]
add ecx, 2
adc ebx, 0
cmp ecx, 2
sbb ebx, 0
jb 0x5a5ab3
sub eax, edi
sbb edx, dword [esi + 0x14]
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 0x5a5ac1
mov edi, 3
jmp 0x5a56b8
push 0x825c68
call fcn.005c8bdd
add esp, 4
cmp dword [0x825c68], 0xffffffff
jne 0x5a54ea
push 0x811df0
call fcn.00564150
add esp, 4
mov byte [0x825c64], al
push 0x825c68
call fcn.005c8c57
add esp, 4
jmp 0x5a54ea
mov edi, 3
jmp 0x5a5800
lock dec dword [edi + 4]
jne 0x5a5a08
mov eax, dword [edi]
mov ebx, dword [eax + 4]
mov ecx, ebx
call dword [0x8072c0]
mov ecx, edi
push 1
call ebx
jmp 0x5a5a08
int3
push edi
call fcn.004d8040
lea eax, [esi + 0x70]
add esp, 4
mov dword [ebx + 0x34], edi
jmp 0x5a580c
push edi
call fcn.004d8040
add esp, 4
mov dword [ebx + 0x34], edi
jmp 0x5a56c1
lea ebx, [esi + 0x20]
mov ecx, ebx
call fcn.00573300
mov byte [ebx + 0x18], 0
mov ebx, dword [esi + 0x10]
jmp 0x5a5689
movzx eax, al
mov dword [esi + 0x70], str.WorkerThread_active
push 0
push 0x45
push 0x788320
push 2
lea ecx, [esi + 0x70]
push ecx
lea ecx, [esi + 0x68]
push ecx
push eax
call fcn.004aae50
add esp, 0x1c
test byte [esi + 0x38], 1
je 0x5a58bb
lea ebx, [esi + 0x20]
mov ecx, ebx
call fcn.00573300
mov byte [ebx + 0x18], 0
mov ebx, dword [esi + 0x10]
jmp 0x5a58bb
mov dword [esi + 0x54], 0
mov dword [esi + 0x50], 0xf4240
xor ecx, ecx
mov eax, 0xf4240
jmp 0x5a55e8
movzx eax, al
mov ecx, dword [0x814548]
xor ecx, dword [edi + 0x3c]
mov edx, dword [0x81454c]
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.004b4d20
add esp, 0x14
jmp 0x5a5643
lea ecx, [esi + 0x44]
mov dword [ecx], 0xffffffff
call fcn.004bb1b0
jmp 0x5a547b
mov eax, dword [ebx]
mov ecx, dword [eax + 4]
mov dword [esi + 0xc], ecx
call dword [0x8072c0]
mov ecx, ebx
call dword [esi + 0xc]
jmp 0x5a5421
mov eax, dword [edi]
mov ecx, dword [eax + 8]
mov dword [esi + 0xc], ecx
call dword [0x8072c0]
mov ecx, edi
call dword [esi + 0xc]
jmp 0x5a59f6
movzx eax, al
lea ecx, [esi + 0x20]
mov dword [ecx], str.WorkerThread_active
lea edx, [esi + 0x70]
push 0
push 0x42
push 0x788320
push 1
push ecx
push edx
push eax
call fcn.004aae50
add esp, 0x1c
jmp 0x5a5416
movzx eax, al
mov dword [esi + 0x20], str.WorkerThread_dead
push 8
push 0x49
push 0x788320
push 3
lea ecx, [esi + 0x20]
push ecx
lea ecx, [esi + 0x70]
push ecx
push eax
call fcn.004aae50
add esp, 0x1c
jmp 0x5a5a31
movzx eax, cl
lea ecx, [esi + 0x20]
mov dword [ecx], str.WorkerThread_born
lea edx, [esi + 0x70]
push 8
push 0x49
push 0x788320
push 3
push ecx
push edx
push eax
call fcn.004aae50
add esp, 0x1c
mov eax, dword [0x78ef14]
jmp 0x5a5404
movzx eax, cl
mov dword [esi + 0x20], str.WorkerThread_active
push 0
push 0x45
push 0x788320
push 2
lea ecx, [esi + 0x20]
push ecx
lea ecx, [esi + 0x70]
push ecx
push eax
call fcn.004aae50
add esp, 0x1c
mov eax, dword [0x78ef14]
jmp 0x5a5a1f