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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xa0
mov esi, esp
mov edi, ecx
mov eax, dword [0x1d17014]
xor eax, ebp
mov dword [esi + 0x98], eax
test byte [0x1d31e80], 0x19
jne 0x1c954a4
mov ebx, dword [edi + 0x38]
test ebx, ebx
jne 0x1c95560
mov ecx, dword [edi + 0x2c]
push edi
call fcn.01c6a5d0
call fcn.01c5be40
test al, al
mov dword [esi + 0x10], edi
je 0x1c9548d
mov ecx, dword [edi + 0x30]
call fcn.01c924c0
test al, al
jne 0x1c95671
mov edi, dword [edi + 0x3c]
lea ecx, [esi + 0x34]
mov dword [ecx], 0xffffffff
call fcn.01c652d0
test edi, edi
je 0x1c9549b
lea ebx, [esi + 0x70]
push 2
push ebx
call fcn.01c5c100
add esp, 8
lea ecx, [esi + 0x34]
push ebx
call fcn.01c652e0
mov ecx, ebx
call fcn.01c8b850
mov al, 1
mov dword [esi + 0x1c], eax
test byte [0x1d31e80], 0x19
jne 0x1c95578
test byte [0x1d31e38], 0x19
mov ebx, dword [esi + 0x10]
je 0x1c9545b
call fcn.01c85cd0
mov ecx, dword [ebx + 0x2c]
lea eax, [ebx + 0x20]
mov dword [esi + 0x14], eax
push eax
call fcn.01c6c6c0
test byte [0x1d31e80], 0x19
jne 0x1c955d0
mov dword [esi + 0x20], 0
lea edi, [esi + 0x78]
mov dword [esi + 8], 0
jmp 0x1c9569b
lea ecx, [esi + 0x34]
mov dword [ecx], 0xffffffff
call fcn.01c652d0
mov dword [esi + 0x1c], 0
jmp 0x1c9543d
lea ebx, [esi + 0x70]
push ebx
call fcn.01c7a710
add esp, 4
call fcn.01c7b5b0
sub esp, 0x30
xor ecx, ecx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], ecx
pxor xmm0, xmm0
movdqu xmmword [esp + 0xc], xmm0
mov dword [esp + 0x2c], 8
mov dword [esp + 8], str.WorkerThread_born
mov dword [esp + 4], 0x1d31e80
mov dword [esp], 0x49
call fcn.01c7bb80
add esp, 0x30
test byte [0x1d31e80], 0x19
je 0x1c953cd
lea ebx, [esi + 0x70]
push ebx
call fcn.01c7a710
add esp, 4
call fcn.01c7b5b0
sub esp, 0x30
xor ecx, ecx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], ecx
pxor xmm0, xmm0
movdqu xmmword [esp + 0xc], xmm0
mov dword [esp + 8], str.WorkerThread_active
mov dword [esp + 4], 0x1d31e80
mov dword [esp], 0x42
call fcn.01c7bb80
add esp, 0x30
jmp 0x1c953cd
mov eax, dword [ebx]
mov ecx, dword [eax + 4]
mov dword [esi + 8], ecx
call dword [section..00cfg]
mov ecx, ebx
call dword [esi + 8]
jmp 0x1c953d8
lea edi, [esi + 0x70]
push edi
call fcn.01c7a710
add esp, 4
call fcn.01c7b5b0
sub esp, 0x30
xor ecx, ecx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x24], edi
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], ecx
pxor xmm0, xmm0
movdqu xmmword [esp + 0xc], xmm0
mov dword [esp + 8], str.WorkerThread_active
mov dword [esp + 4], 0x1d31e80
mov dword [esp], 0x45
call fcn.01c7bb80
add esp, 0x30
jmp 0x1c9544a
mov eax, dword [0x1d33dbc]
mov dword [esi + 8], eax
mov eax, ebx
mov ebx, dword [0x1d33db8]
xor ebx, eax
lea edi, [esi + 0x70]
mov dword [edi + 0xc], fcn.01c650b0
mov dword [edi + 0x10], 0x1d0edac
push 8
call fcn.01c97121
add esp, 4
mov ecx, dword [esi + 8]
mov dword [eax + 4], ecx
mov dword [eax], ebx
mov dword [edi + 4], eax
xor eax, eax
mov dword [esi + 0x5c], eax
mov dword [esi + 0x20], 0
mov dword [esi + 0x58], eax
sub esp, 0x1c
movq xmm0, qword [esi + 0x58]
movq qword [esp + 0x10], xmm0
mov dword [esp + 0x18], edi
mov dword [esp + 0xc], 0x1d0bf40
mov dword [esp + 8], str.WorkerThread_active
mov dword [esp + 4], 0x1d31e80
mov dword [esp], 0x42
call fcn.01c65140
add esp, 0x1c
mov eax, dword [edi + 0x10]
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x1c95669
mov edi, dword [esi + 0x74]
call dword [section..00cfg]
push edi
call ecx
add esp, 4
mov ebx, dword [esi + 0x10]
jmp 0x1c9547e
lea ecx, [esi + 0x34]
mov dword [ecx], 0xffffffff
call fcn.01c652d0
jmp 0x1c9541a
test bl, bl
mov ebx, dword [esi + 0x10]
jne 0x1c95b00
movzx eax, byte [ebx + 0x28]
test al, al
jne 0x1c95b00
movzx eax, byte [ebx + 0x44]
test al, al
jne 0x1c95b00
mov ecx, dword [ebx + 0x30]
call fcn.01c91e20
test al, al
jne 0x1c95b00
pcmpeqd xmm0, xmm0
movdqa xmmword [esi + 0x70], xmm0
movdqa xmmword [esi + 0x80], xmm0
mov dword [esi + 0x94], 0xffffffff
mov dword [esi + 0x90], 0xffffffff
mov byte [esi + 0x70], 0
pxor xmm0, xmm0
movdqu xmmword [edi], xmm0
mov dword [edi + 0x14], 0
mov dword [edi + 0x10], 0
cmp byte [esi + 0x1c], 0
je 0x1c95723
sub esp, 8
movq xmm0, qword [0x1d0f3e8]
movq qword [esp], xmm0
mov ecx, edi
call fcn.01c85510
mov byte [esi + 0x70], 1
mov ecx, dword [ebx + 0x30]
call fcn.01c924c0
test al, al
jne 0x1c95af6
mov edi, dword [ebx + 0x3c]
cmp dword [ebx + 0x40], edi
jne 0x1c95c5a
mov dword [esi + 0x2c], 0xffffffff
mov dword [esi + 0x30], 0xffffffff
mov ecx, dword [ebx + 0x2c]
push ebx
lea edi, [esi + 0x2c]
push edi
call fcn.01c90330
mov eax, dword [esi + 0x2c]
test eax, eax
je 0x1c95815
mov dword [esi + 0x50], eax
lea eax, [esi + 0x50]
push eax
call fcn.01c6e620
add esp, 4
mov dword [esi + 8], esp
mov eax, dword [ebx + 0x30]
mov dword [esi + 0xc], eax
sub esp, 0xc
mov eax, edi
mov edi, esp
lea ecx, [edi + 4]
push eax
call fcn.01c93720
lea ebx, [esi + 0x58]
mov dword [edi], ebx
mov ecx, dword [esi + 0xc]
call fcn.01c91f20
mov esp, dword [esi + 8]
lea ecx, [esi + 0x2c]
push ebx
call fcn.01c937f0
mov ecx, ebx
call fcn.01c93750
mov eax, dword [esi + 0x2c]
mov dword [esi + 0x58], eax
push ebx
call fcn.01c6e620
add esp, 4
mov edi, esp
mov eax, dword [esi + 0x10]
mov ebx, dword [eax + 0x2c]
sub esp, 8
mov ecx, esp
lea eax, [esi + 0x2c]
push eax
call fcn.01c93720
mov ecx, ebx
call fcn.01c90d40
mov esp, edi
cmp dword [esi + 0x2c], 0
jne 0x1c95c6b
mov ecx, dword [esi + 0x14]
call fcn.01c8b190
mov al, 1
mov dword [esi + 8], eax
xor ebx, ebx
lea edi, [esi + 0x78]
lea ecx, [esi + 0x2c]
call fcn.01c93750
cmp byte [esi + 0x70], 0
je 0x1c95690
mov ecx, edi
call fcn.01c857b0
jmp 0x1c95690
mov al, byte [ebx + 0x28]
mov ecx, ebx
mov bl, 1
test al, al
lea edi, [esi + 0x78]
jne 0x1c957f7
mov al, byte [ecx + 0x44]
test al, al
jne 0x1c957f7
mov ecx, dword [ecx + 0x30]
call fcn.01c91e20
test al, al
jne 0x1c957f4
test byte [esi + 8], 1
mov edi, dword [esi + 0x10]
je 0x1c95a67
test byte [0x1d31e80], 0x19
mov ebx, 0xffffffff
jne 0x1c95c6e
test byte [0x1d31e38], 0x19
jne 0x1c95a5d
cmp byte [esi + 0x70], 0
je 0x1c95874
lea ecx, [esi + 0x78]
call fcn.01c857b0
mov byte [esi + 0x70], 0
mov ecx, dword [edi + 0x2c]
mov eax, dword [ecx]
cmp dword [eax + 0x18], 0x1c6c6c0
jne 0x1c95a74
mov dword [esi + 0x3c], ebx
mov dword [esi + 0x38], ebx
lea eax, [esi + 0x38]
push eax
call fcn.01c912a0
mov ebx, dword [esi + 0x38]
mov edi, dword [esi + 0x3c]
mov edx, 0xf4240
cmp ebx, edx
mov eax, 0xf4240
cmovb eax, ebx
test edi, edi
mov ecx, 0
cmovns edi, ecx
mov dword [esi + 8], edi
cmovns ebx, edx
cmove ebx, eax
mov eax, dword [0x1d33130]
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + eax*4]
mov ecx, dword [0x1d450d4]
cmp ecx, dword [eax + 4]
lea edi, [esi + 0x78]
jg 0x1c95baa
cmp byte [0x1d450d0], 0
je 0x1c95c08
xor edi, edi
dec edi
mov dword [esi + 0x5c], edi
mov dword [esi + 0x58], edi
lea eax, [esi + 0x58]
push eax
call fcn.01c7b170
add esp, 4
mov eax, dword [0x1d450e0]
mov ecx, dword [0x1d33130]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x1c95adb
mov dword [esi + 0x54], edi
mov dword [esi + 0x50], edi
mov eax, edi
add eax, ebx
mov ecx, 0x7fffffff
mov edx, dword [esi + 8]
adc ecx, edx
add eax, 2
adc ecx, 0
cmp eax, 2
mov edi, dword [esi + 0x58]
sbb ecx, 0
mov eax, dword [esi + 0x5c]
jb 0x1c95d69
add edi, ebx
adc eax, edx
seto bl
mov edx, eax
sar edx, 0x1f
test bl, bl
lea ecx, [edx - 0x80000000]
cmove edx, edi
test bl, bl
cmove ecx, eax
mov dword [esi + 0x48], edx
mov dword [esi + 0x4c], ecx
xor eax, eax
mov dword [esi + 0x44], eax
mov dword [esi + 0x40], eax
sub esp, 0x14
mov dword [esp + 0x10], eax
movq xmm0, qword [esi + 0x40]
movq qword [esp + 4], xmm0
lea eax, [esi + 0x50]
mov dword [esp], eax
mov dword [esp + 0xc], 0xf4240
lea ecx, [esi + 0x48]
call fcn.01c7b190
mov edx, dword [esi + 0x58]
mov ecx, dword [esi + 0x5c]
mov dword [esi + 8], ecx
mov eax, dword [esi + 0x50]
mov edi, dword [esi + 0x54]
sub eax, edx
sbb edi, ecx
seto bl
mov byte [esi + 0xc], bl
mov ecx, edi
sar ecx, 0x1f
test bl, bl
cmovne eax, ecx
mov ebx, 0x80000000
xor ecx, ebx
mov ebx, dword [0x1d450d8]
sub ebx, edx
mov edx, dword [0x1d450dc]
sbb edx, dword [esi + 8]
mov dword [esi + 0x18], edx
seto byte [esi + 8]
cmp byte [esi + 0xc], 0
cmove ecx, edi
mov edi, edx
sar edi, 0x1f
cmp byte [esi + 8], 0
cmovne ebx, edi
mov edx, 0x80000000
xor edi, edx
cmp byte [esi + 8], 0
cmove edi, dword [esi + 0x18]
cmp eax, ebx
mov edx, ebx
cmova edx, eax
cmp ecx, edi
cmovg ebx, eax
cmove ebx, edx
mov eax, edi
cmovg eax, ecx
lea edi, [esi + 0x78]
mov dword [esi + 8], eax
mov dword [esi + 0x58], ebx
mov dword [esi + 0x5c], eax
sub esp, 8
movq xmm0, qword [esi + 0x58]
movq qword [esp], xmm0
mov ecx, dword [esi + 0x14]
call fcn.01c8b620
test al, al
je 0x1c95a81
xor ebx, ebx
test byte [0x1d31e80], 0x19
mov dword [esi + 8], 0
lea ecx, [esi + 0x2c]
je 0x1c957fa
jmp 0x1c95cc9
call fcn.01c85cd0
jmp 0x1c95862
mov ecx, dword [edi + 0x2c]
call fcn.01c6a990
jmp 0x1c95843
push dword [esi + 0x14]
call fcn.01c6c6c0
lea edi, [esi + 0x78]
jmp 0x1c95a3f
call fcn.01c79530
mov eax, dword [esi + 0x38]
mov ecx, dword [esi + 0x3c]
cmp ebx, eax
mov edx, dword [esi + 8]
sbb edx, ecx
jge 0x1c95a3f
mov dword [esi + 0xc], ebx
mov edx, eax
xor edi, edi
dec edi
xor edx, edi
mov ebx, 0x7fffffff
mov edi, ecx
xor edi, ebx
or edi, edx
jne 0x1c95c10
xor eax, eax
dec eax
mov dword [esi + 0x50], eax
mov eax, 0x7fffffff
mov dword [esi + 0x54], eax
lea edi, [esi + 0x78]
sub esp, 8
movq xmm0, qword [esi + 0x50]
movq qword [esp], xmm0
mov ecx, dword [esi + 0x14]
call fcn.01c8b620
jmp 0x1c95a3f
push 0x1d450e0
call fcn.01c97191
add esp, 4
cmp dword [0x1d450e0], 0xffffffff
je 0x1c95b5f
jmp 0x1c95924
mov edi, 3
jmp 0x1c95736
mov ecx, dword [ebx + 0x2c]
push ebx
call fcn.01c6a920
mov edi, ebx
mov ebx, dword [ebx + 0x38]
test ebx, ebx
jne 0x1c95dbd
mov ecx, dword [edi + 8]
mov dword [edi + 8], 0
test ecx, ecx
jne 0x1c95be8
test byte [0x1d31e80], 0x19
jne 0x1c95dd5
test byte [0x1d31e38], 0x19
jne 0x1c95bfe
lea ecx, [esi + 0x34]
call fcn.01c8b850
mov ecx, dword [esi + 0x98]
xor ecx, ebp
call fcn.01c97fe3
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esi + 0x5c]
mov ecx, dword [esi + 0x58]
mov edx, 0x3938700
add ecx, edx
adc eax, 0
seto byte [esi + 0xc]
mov edx, eax
sar edx, 0x1f
cmp byte [esi + 0xc], 0
cmovne ecx, edx
add edx, 0x80000000
cmp byte [esi + 0xc], 0
cmove edx, eax
mov dword [0x1d450d8], ecx
mov dword [0x1d450dc], edx
push 0x1d450e0
call fcn.01c9720b
add esp, 4
jmp 0x1c95924
push 0x1d450d4
call fcn.01c97191
add esp, 4
cmp dword [0x1d450d4], 0xffffffff
jne 0x1c958e1
push 0x1d32ff0
call fcn.01c7b340
add esp, 4
mov byte [0x1d450d0], al
push 0x1d450d4
call fcn.01c9720b
add esp, 4
jmp 0x1c958e1
lock dec dword [ecx + 4]
jne 0x1c95b28
push 1
call fcn.01c6d0d0
jmp 0x1c95b28
call fcn.01c85cd0
jmp 0x1c95b42
mov eax, dword [esi + 8]
jmp 0x1c95a1d
xor edx, edx
dec edx
add edx, dword [esi + 0xc]
mov edi, 0x7fffffff
mov ebx, dword [esi + 8]
adc edi, ebx
add edx, 2
adc edi, 0
cmp edx, 2
sbb edi, 0
jb 0x1c95ab0
sub eax, dword [esi + 0xc]
sbb ecx, ebx
seto bl
mov edx, ecx
sar edx, 0x1f
test bl, bl
cmovne eax, edx
add edx, 0x80000000
test bl, bl
cmove edx, ecx
mov dword [esi + 0x50], eax
mov dword [esi + 0x54], edx
jmp 0x1c95abe
push edi
call fcn.01c5afc0
add esp, 4
mov dword [ebx + 0x40], edi
jmp 0x1c9573f
int3
lea eax, [esi + 0x58]
push eax
call fcn.01c7a710
add esp, 4
call fcn.01c7b5b0
sub esp, 0x30
xor ecx, ecx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x28], ecx
lea edx, [esi + 0x58]
mov dword [esp + 0x24], edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], ecx
pxor xmm0, xmm0
movdqu xmmword [esp + 0xc], xmm0
mov dword [esp + 8], str.WorkerThread_active
mov dword [esp + 4], 0x1d31e80
mov dword [esp], 0x45
call fcn.01c7bb80
add esp, 0x30
jmp 0x1c95855
mov eax, dword [0x1d33db8]
xor eax, dword [esi + 0x10]
mov dword [esi + 8], eax
mov edi, dword [0x1d33dbc]
xor edi, dword [esi + 0x20]
mov dword [esi + 0x64], fcn.01c650b0
mov dword [esi + 0x68], 0x1d0edac
push 8
call fcn.01c97121
add esp, 4
mov dword [eax + 4], edi
mov ecx, dword [esi + 8]
mov dword [eax], ecx
mov dword [esi + 0x5c], eax
mov dword [esi + 0x54], ebx
mov dword [esi + 0x50], ebx
sub esp, 0x1c
movq xmm0, qword [esi + 0x50]
movq qword [esp + 0x10], xmm0
lea eax, [esi + 0x58]
mov dword [esp + 0x18], eax
mov dword [esp + 0xc], 0x1d0bf40
mov dword [esp + 8], str.WorkerThread_active
mov dword [esp + 4], 0x1d31e80
mov dword [esp], 0x42
call fcn.01c65140
add esp, 0x1c
mov eax, dword [esi + 0x68]
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x1c95d5b
mov edi, dword [esi + 0x5c]
call dword [section..00cfg]
push edi
call ecx
add esp, 4
xor ebx, ebx
mov dword [esi + 8], 0
jmp 0x1c957f4
mov dword [esi + 0xc], ebx
xor edx, edx
dec edx
mov ebx, edx
mov dword [esi + 0x24], edi
add ebx, edi
mov edi, 0x7fffffff
adc edi, eax
add ebx, 2
adc edi, 0
mov dword [esi + 0x18], edi
add edx, 1
mov ecx, 0x7fffffff
adc ecx, 0
mov dword [esi + 0x28], 0
xor edi, edi
inc edi
cmp edi, ebx
mov edi, dword [esi + 0x28]
sbb edi, dword [esi + 0x18]
jb 0x1c9596c
mov ebx, dword [esi + 0x24]
xor ebx, dword [esi + 0xc]
xor eax, dword [esi + 8]
or eax, ebx
je 0x1c9596c
int3
mov eax, dword [ebx]
mov ecx, dword [eax + 8]
mov dword [esi + 8], ecx
call dword [section..00cfg]
mov ecx, ebx
call dword [esi + 8]
jmp 0x1c95b16
lea edi, [esi + 0x70]
push edi
call fcn.01c7a710
add esp, 4
call fcn.01c7b5b0
sub esp, 0x30
xor ebx, ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x24], edi
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], ebx
pxor xmm0, xmm0
movdqu xmmword [esp + 0xc], xmm0
mov dword [esp + 8], str.WorkerThread_active
mov dword [esp + 4], 0x1d31e80
mov dword [esp], 0x45
call fcn.01c7bb80
add esp, 0x30
test byte [0x1d31e80], 0x19
je 0x1c95b35
push edi
call fcn.01c7a710
add esp, 4
call fcn.01c7b5b0
sub esp, 0x30
mov dword [esp + 0x28], ebx
mov dword [esp + 0x24], edi
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], ebx
pxor xmm0, xmm0
movdqu xmmword [esp + 0xc], xmm0
mov dword [esp + 0x2c], 8
mov dword [esp + 8], str.WorkerThread_dead
mov dword [esp + 4], 0x1d31e80
mov dword [esp], 0x49
call fcn.01c7bb80
add esp, 0x30
jmp 0x1c95b35