Function at 0x100c0040
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2ec
mov eax, dword [0x102519c8]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, ecx
push 0x14
mov dword [ebp - 0x240], edi
call sub.msvcrt.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
test eax, eax
je 0x100c0078
push dword [edi + 4]
mov ecx, eax
call fcn.10154620
jmp 0x100c007a
xor eax, eax
push dword [ebp - 0x250]
lea ecx, [ebp - 0x2d4]
mov dword [ebp - 0x2d4], 0
push eax
mov dword [ebp - 0x2d0], 0
call fcn.100b76d0
xor eax, eax
mov byte [ebp - 0x24c], 1
mov dword [ebp - 0x2a8], eax
mov dword [ebp - 0x2bc], eax
mov dword [ebp - 0x2a4], eax
mov dword [ebp - 0x2b8], eax
call fcn.10057b40
test eax, eax
je 0x100c01f7
mov edx, dword [ebp - 0x2d0]
sub esp, 8
mov ecx, esp
mov dword [ecx], 0
mov dword [ecx + 4], 0
test edx, edx
je 0x100c00ee
lock inc dword [edx + 4]
mov eax, dword [ebp - 0x2d4]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov ecx, edi
call fcn.100c1da0
test al, al
je 0x100c01f7
mov eax, dword [edi + 0xd8]
mov esi, dword [eax]
cmp esi, eax
je 0x100c01f0
jmp 0x100c0120
lea eax, [ebp - 0x2b8]
push eax
lea eax, [ebp - 0x2bc]
push eax
push ecx
mov ebx, esp
call fcn.10002d70
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0xc]
add eax, 0x10
mov ecx, ebx
push 0x10202940
mov dword [ebx], eax
call fcn.10023e80
test al, al
jne 0x100c0160
push 0
push 0x10202940
mov ecx, ebx
call fcn.10003740
sub esp, 8
mov ecx, esp
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov eax, dword [esi + 0x18]
test eax, eax
je 0x100c017d
lock inc dword [eax + 4]
mov eax, dword [esi + 0x14]
mov dword [ecx], eax
mov eax, dword [esi + 0x18]
mov dword [ecx + 4], eax
mov ecx, edi
call fcn.100ba450
mov eax, dword [esi + 8]
cmp byte [eax + 0xd], 0
je 0x100c01b5
mov eax, dword [esi + 4]
cmp byte [eax + 0xd], 0
jne 0x100c01b1
cmp esi, dword [eax + 8]
jne 0x100c01b1
mov esi, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0xd], 0
je 0x100c01a1
mov esi, eax
jmp 0x100c01cc
mov esi, eax
mov ecx, dword [esi]
cmp byte [ecx + 0xd], 0
jne 0x100c01cc
nop
mov eax, dword [ecx]
mov esi, ecx
mov ecx, eax
cmp byte [eax + 0xd], 0
je 0x100c01c0
cmp esi, dword [edi + 0xd8]
jne 0x100c0120
mov eax, dword [ebp - 0x2bc]
mov dword [ebp - 0x2a8], eax
mov eax, dword [ebp - 0x2b8]
mov dword [ebp - 0x2a4], eax
mov byte [ebp - 0x24c], 0
push 0x60
call sub.msvcrt.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
test eax, eax
je 0x100c0225
push dword [ebp - 0x24c]
movzx ecx, byte [edi + 0xf8]
push dword [edi + 0xc4]
push ecx
push dword [edi + 4]
mov ecx, eax
call fcn.100b8ae0
jmp 0x100c0227
xor eax, eax
push dword [ebp - 0x250]
lea ecx, [ebp - 0x29c]
mov dword [ebp - 0x29c], 0
push eax
mov dword [ebp - 0x298], 0
call fcn.100b7310
mov eax, dword [ebp - 0x29c]
or ebx, 0xffffffff
mov dword [edi + 0xbc], eax
mov esi, dword [edi + 0xc0]
mov eax, dword [ebp - 0x298]
mov dword [edi + 0xc0], eax
test esi, esi
je 0x100c0291
mov eax, ebx
lock xadd dword [esi + 4], eax
jne 0x100c0291
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
mov eax, ebx
lock xadd dword [esi + 8], eax
jne 0x100c0291
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov ecx, dword [edi + 0xbc]
test ecx, ecx
je 0x100c0389
lea eax, [edi + 0xd8]
mov dword [ebp - 0x2c8], eax
mov eax, dword [eax]
mov esi, dword [eax]
cmp esi, eax
je 0x100c0329
mov ebx, dword [ebp - 0x2c8]
lea edi, [ecx + 0x28]
lea esp, [esp]
push dword [ebp - 0x250]
lea eax, [esi + 0x10]
mov ecx, edi
push eax
push 0
lea eax, [ebp - 0x2b0]
push eax
call fcn.1002f830
mov eax, dword [esi + 8]
cmp byte [eax + 0xd], 0
je 0x100c0304
mov eax, dword [esi + 4]
cmp byte [eax + 0xd], 0
jne 0x100c0300
lea esp, [esp]
cmp esi, dword [eax + 8]
jne 0x100c0300
mov esi, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0xd], 0
je 0x100c02f0
mov esi, eax
jmp 0x100c031c
mov esi, eax
mov ecx, dword [esi]
cmp byte [ecx + 0xd], 0
jne 0x100c031c
mov edi, edi
mov eax, dword [ecx]
mov esi, ecx
mov ecx, eax
cmp byte [eax + 0xd], 0
je 0x100c0310
cmp esi, dword [ebx]
jne 0x100c02c0
mov edi, dword [ebp - 0x240]
or ebx, 0xffffffff
push 8
call sub.msvcrt.dll_void____cdecl_operator_new_unsigned_int_
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x100c0367
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov eax, dword [edi + 0xc0]
test eax, eax
je 0x100c0354
lock inc dword [eax + 4]
mov eax, dword [edi + 0xbc]
mov dword [ecx], eax
mov eax, dword [edi + 0xc0]
mov dword [ecx + 4], eax
jmp 0x100c0369
xor ecx, ecx
push 0
push 0
push ecx
push 0x100c3930
push 0
push 0
call sub.msvcrt.dll__beginthreadex
add esp, 0x18
mov dword [ebp - 0x2b8], eax
test eax, eax
jne 0x100c03c4
mov esi, dword [ebp - 0x2d0]
test esi, esi
je 0x100c03b1
mov eax, ebx
lock xadd dword [esi + 4], eax
jne 0x100c03b1
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
lock xadd dword [esi + 8], ebx
dec ebx
jne 0x100c03b1
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
xor al, al
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.101f99c6
mov esp, ebp
pop ebp
ret
push 0x38
call sub.msvcrt.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
test eax, eax
je 0x100c03e2
lea ecx, [edi + 0x124]
push ecx
mov ecx, eax
call fcn.100b8f60
jmp 0x100c03e4
xor eax, eax
mov ecx, dword [edi + 0xbc]
push eax
add ecx, 0x54
call fcn.100b7bd0
push 8
call sub.msvcrt.dll_void____cdecl_operator_new_unsigned_int_
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x100c0431
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov eax, dword [edi + 0xc0]
test eax, eax
je 0x100c041e
lock inc dword [eax + 4]
mov eax, dword [edi + 0xbc]
mov dword [ecx], eax
mov eax, dword [edi + 0xc0]
mov dword [ecx + 4], eax
jmp 0x100c0433
xor ecx, ecx
push 0
push 0
push ecx
push 0x100c39d0
push 0
push 0
call sub.msvcrt.dll__beginthreadex
mov ecx, dword [edi + 0xbc]
add esp, 0x18
mov dword [ebp - 0x2bc], eax
push dword [ecx + 0x30]
call dword [sym.imp.KERNEL32.dll_SetEvent]
mov dword [ebp - 0x2a0], 0
jmp 0x100c0470
mov edx, dword [edi + 0xbc]
mov dword [ebp - 0x25c], edx
lea esi, [edx + 0x10]
test esi, esi
je 0x100c0490
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edx, dword [ebp - 0x25c]
cmp dword [edx + 0xc], 0
jne 0x100c04bc
xor eax, eax
mov dword [ebp - 0x290], 0
mov dword [ebp - 0x264], eax
test esi, esi
je 0x100c0578
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x100c0578
mov eax, dword [edx + 8]
mov eax, dword [eax]
mov ecx, dword [eax + 0xc]
mov dword [ebp - 0x264], ecx
test ecx, ecx
je 0x100c04db
lock inc dword [ecx + 4]
mov ecx, dword [eax + 0xc]
mov dword [ebp - 0x264], ecx
mov eax, dword [eax + 8]
mov dword [ebp - 0x260], eax
mov eax, dword [edx + 8]
mov eax, dword [eax]
mov dword [ebp - 0x24c], eax
mov ecx, dword [eax + 4]
mov eax, dword [eax]
mov dword [ecx], eax
mov eax, dword [ebp - 0x24c]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ecx + 4], eax
mov ecx, dword [ebp - 0x24c]
dec dword [edx + 0xc]
mov ecx, dword [ecx + 0xc]
mov dword [ebp - 0x25c], ecx
test ecx, ecx
je 0x100c053b
mov eax, ebx
lock xadd dword [ecx + 4], eax
jne 0x100c053b
mov eax, dword [ecx]
call dword [eax]
mov ecx, dword [ebp - 0x25c]
mov eax, ebx
lock xadd dword [ecx + 8], eax
jne 0x100c053b
mov eax, dword [ecx]
call dword [eax + 4]
push 0x10
push dword [ebp - 0x24c]
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
mov eax, dword [ebp - 0x260]
add esp, 8
mov dword [ebp - 0x290], eax
mov eax, dword [ebp - 0x264]
mov dword [ebp - 0x28c], eax
test esi, esi
je 0x100c056e
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov esi, dword [ebp - 0x260]
test esi, esi
jne 0x100c05d5
push 0
push dword [ebp - 0x2b8]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
jne 0x100c0f2a
mov eax, dword [edi + 0xbc]
mov dword [ebp - 0x25c], eax
lea esi, [eax + 0x10]
test esi, esi
je 0x100c05ae
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [ebp - 0x25c]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x25c], eax
test esi, esi
je 0x100c05c8
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [ebp - 0x25c]
test eax, eax
je 0x100c0f6e
jmp 0x100c0f2a
cmp dword [esi + 0x58], 8
lea ecx, [esi + 0x44]
mov dword [ebp - 0x294], ecx
mov eax, ecx
jb 0x100c05e8
mov eax, dword [ecx]
push 0x64
push 1
push eax
push str.ScanFileName
mov ecx, edi
call fcn.100d0960
test eax, eax
je 0x100c0f64
xor eax, eax
lea ecx, [ebp - 0x20c]
push 0x104
mov word [ebp - 0x20c], ax
mov eax, dword [edi]
push ecx
push str.Stop
mov ecx, edi
call dword [eax + 0xc]
lea eax, [ebp - 0x20c]
push str.TRUE
push eax
call sub.msvcrt.dll__wcsicmp
add esp, 8
test eax, eax
je 0x100c0f64
mov eax, dword [esi + 0xe4]
lea ecx, [edi + 0xd8]
mov dword [ebp - 0x25c], eax
mov eax, dword [ecx]
mov dword [ebp - 0x24c], eax
lea eax, [ebp - 0x25c]
push eax
lea eax, [ebp - 0x2e4]
push eax
call fcn.1002aeb0
mov eax, dword [eax]
mov dword [ebp - 0x268], eax
cmp eax, dword [ebp - 0x24c]
je 0x100c067f
mov byte [esi + 0x18], 1
lea ecx, [ebp - 0x258]
mov dword [ebp - 0x278], 0
mov dword [ebp - 0x274], 0
mov dword [ebp - 0x270], 0
mov dword [ebp - 0x2b4], 0
mov dword [ebp - 0x2b0], 0
mov dword [ebp - 0x2ac], 0
mov dword [ebp - 0x258], 0
mov dword [ebp - 0x254], 0
call fcn.100270a0
lea ecx, [ebp - 0x258]
mov dword [ebp - 0x258], eax
push ecx
mov ecx, dword [edi + 0x11c]
call fcn.10067d70
call fcn.10002d70
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0xc]
add eax, 0x10
lea ecx, [ebp - 0x248]
push 0x10202940
mov dword [ebp - 0x248], eax
call fcn.10023e80
test al, al
jne 0x100c072d
push 0
push 0x10202940
lea ecx, [ebp - 0x248]
call fcn.10003740
cmp byte [esi + 0xdd], 0
je 0x100c081e
push dword [esi + 0xe4]
lea eax, [ebp - 0x29c]
mov ecx, edi
push eax
call fcn.100c2a00
mov ecx, dword [ebp - 0x29c]
test ecx, ecx
je 0x100c07c5
mov eax, dword [ecx]
call dword [eax + 8]
test eax, eax
je 0x100c07c5
mov ecx, dword [ebp - 0x29c]
mov eax, dword [ecx + 0xc]
cmp eax, dword [ecx + 0x10]
je 0x100c0791
push dword [ecx + 0x10]
lea ecx, [ebp - 0x278]
push eax
push dword [ebp - 0x274]
lea eax, [ebp - 0x2e8]
push eax
call fcn.100b7aa0
mov ecx, dword [ebp - 0x29c]
mov eax, dword [ecx + 0x18]
cmp eax, dword [ecx + 0x1c]
je 0x100c07b5
push dword [ecx + 0x1c]
lea ecx, [ebp - 0x2b4]
push eax
push dword [ebp - 0x2b0]
lea eax, [ebp - 0x2ec]
push eax
call fcn.100b7aa0
lea ecx, [ebp - 0x29c]
call fcn.10033270
jmp 0x100c0ad1
lea ecx, [ebp - 0x29c]
call fcn.10033270
mov edx, dword [ebp - 0x248]
mov eax, ebx
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x100c07ed
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x258]
call fcn.100b9360
lea ecx, [ebp - 0x2b4]
call fcn.1002a3c0
lea ecx, [ebp - 0x278]
call fcn.1002a3c0
lea ecx, [ebp - 0x290]
call fcn.10033270
jmp 0x100c0470
sub esp, 8
lea eax, [ebp - 0x290]
mov ecx, esp
push eax
call fcn.100328c0
mov ecx, edi
call fcn.100bd310
test eax, eax
jne 0x100c0847
lea ecx, [ebp - 0x248]
call fcn.10007e10
jmp 0x100c07ed
lea ecx, [ebp - 0x280]
call fcn.100b85c0
lea ecx, [ebp - 0x288]
call fcn.100b85c0
push 0
sub esp, 8
lea eax, [edi + 0x11c]
mov ecx, esp
push eax
call fcn.100328c0
lea eax, [ebp - 0x248]
push eax
lea eax, [ebp - 0x288]
push eax
lea eax, [ebp - 0x280]
push eax
sub esp, 8
lea eax, [ebp - 0x2d4]
mov ecx, esp
push eax
call fcn.100328c0
mov ecx, esi
call fcn.10037d30
mov ecx, dword [ebp - 0x268]
cmp ecx, dword [ebp - 0x24c]
jne 0x100c099a
test al, al
jne 0x100c08f9
lea ecx, [ebp - 0x288]
call fcn.1002a820
push 0x20
push dword [ebp - 0x288]
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
add esp, 8
lea ecx, [ebp - 0x280]
call fcn.1002a820
push 0x20
push dword [ebp - 0x280]
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
add esp, 8
lea ecx, [ebp - 0x248]
call fcn.10007e10
jmp 0x100c07ed
mov eax, dword [esi + 0xe4]
lea ecx, [edi + 0x134]
mov esi, dword [ecx]
mov dword [ebp - 0x25c], eax
lea eax, [ebp - 0x25c]
push eax
lea eax, [ebp - 0x2e0]
push eax
call fcn.1002aeb0
cmp dword [eax], esi
mov esi, dword [ebp - 0x260]
je 0x100c0969
push str.srid:1
push dword [esi + 0xe4]
lea eax, [ebp - 0x2cc]
push eax
call fcn.10175b00
mov ecx, eax
call fcn.10175bd0
push ecx
lea eax, [ebp - 0x2cc]
mov ecx, esp
push eax
call fcn.1001b810
mov ecx, esi
call fcn.10036ef0
lea ecx, [ebp - 0x2cc]
call fcn.10007e10
cmp byte [esi + 0xe0], 0
mov cl, byte [esi + 0xdf]
je 0x100c0992
lea eax, [ebp - 0x288]
mov ecx, edi
push eax
lea eax, [ebp - 0x280]
push eax
call fcn.100cf200
jmp 0x100c08b3
test cl, cl
jne 0x100c08b3
mov eax, dword [ebp - 0x280]
mov esi, dword [eax]
cmp esi, eax
je 0x100c09f6
cmp dword [esi + 0x1c], 8
lea eax, [esi + 8]
jb 0x100c09b1
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x2c0]
call fcn.10002490
lea eax, [ebp - 0x2c0]
push eax
lea ecx, [ebp - 0x278]
call fcn.1002b780
mov edx, dword [ebp - 0x2c0]
mov eax, ebx
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x100c09ec
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, dword [esi]
cmp esi, dword [ebp - 0x280]
jne 0x100c09a6
mov eax, dword [ebp - 0x288]
mov esi, dword [eax]
cmp esi, eax
je 0x100c0a95
cmp dword [esi + 0x1c], 8
lea eax, [esi + 8]
jb 0x100c0a11
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x2c4]
call fcn.10002490
mov eax, dword [ebp - 0x2b0]
mov edi, dword [ebp - 0x2c4]
mov dword [ebp - 0x25c], eax
cmp dword [ebp - 0x2ac], eax
je 0x100c0a57
lea eax, [edi - 0x10]
push eax
call fcn.10002a60
mov ecx, dword [ebp - 0x25c]
add eax, 0x10
add esp, 4
mov dword [ecx], eax
add dword [ebp - 0x2b0], 4
jmp 0x100c0a6a
lea ecx, [ebp - 0x2c4]
push ecx
push eax
lea ecx, [ebp - 0x2b4]
call fcn.1001ddd0
add edi, 0xfffffff0
mov eax, ebx
lock xadd dword [edi + 0xc], eax
dec eax
test eax, eax
jg 0x100c0a81
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, dword [esi]
cmp esi, dword [ebp - 0x288]
jne 0x100c0a06
mov edi, dword [ebp - 0x240]
lea ecx, [ebp - 0x288]
call fcn.1002a820
push 0x20
push dword [ebp - 0x288]
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
add esp, 8
lea ecx, [ebp - 0x280]
call fcn.1002a820
push 0x20
push dword [ebp - 0x280]
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
mov esi, dword [ebp - 0x260]
add esp, 8
mov eax, dword [ebp - 0x268]
cmp eax, dword [ebp - 0x24c]
je 0x100c0b9f
sub esp, 8
lea eax, [ebp - 0x241]
mov ecx, esp
push eax
lea eax, [ebp - 0x258]
push eax
call fcn.100aaf70
lea eax, [ebp - 0x2b4]
push eax
lea eax, [ebp - 0x278]
push eax
mov eax, dword [ebp - 0x264]
sub esp, 8
mov ecx, esp
mov dword [ecx], 0
mov dword [ecx + 4], 0
test eax, eax
je 0x100c0b29
lock inc dword [eax + 4]
mov dword [ecx], esi
mov dword [ecx + 4], eax
mov ecx, edi
call fcn.100bd4d0
mov edx, dword [ebp - 0x248]
mov eax, ebx
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x100c0b52
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, dword [ebp - 0x258]
lea ecx, [ebp - 0x258]
push dword [esi + 4]
call fcn.100c22d0
mov eax, dword [ebp - 0x258]
push 0x1c
mov dword [eax + 4], esi
mov eax, dword [ebp - 0x258]
mov dword [eax], esi
mov eax, dword [ebp - 0x258]
mov dword [eax + 8], esi
push dword [ebp - 0x258]
mov dword [ebp - 0x254], 0
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
add esp, 8
jmp 0x100c07f8
mov eax, dword [esi + 0xe4]
lea ecx, [edi + 0xc8]
mov dword [ebp - 0x2d8], eax
lea eax, [ebp - 0x290]
push eax
lea eax, [ebp - 0x2d8]
push eax
call fcn.100b9fa0
mov ecx, eax
call fcn.10033dc0
lea eax, [ebp - 0x278]
mov ecx, esi
push eax
call fcn.10035140
mov eax, dword [esi + 0xe4]
mov ecx, edi
push 0x10204674
push str.UseEntryClass
push eax
mov dword [ebp - 0x268], eax
call fcn.100d1850
call fcn.10002d70
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0xc]
push dword [esi + 0xec]
add eax, 0x10
mov dword [ebp - 0x24c], eax
lea eax, [ebp - 0x24c]
push 0x10204700
push eax
call fcn.10002cb0
mov edi, dword [ebp - 0x24c]
add esp, 0xc
mov esi, dword [ebp - 0x240]
mov ecx, esi
push edi
push str.CleanRatio
push dword [ebp - 0x268]
call fcn.100d1850
mov eax, dword [ebp - 0x260]
lea ecx, [ebp - 0x224]
add eax, 0xa4
push eax
call fcn.10005170
cmp dword [ebp - 0x210], 8
lea eax, [ebp - 0x224]
jb 0x100c0c71
mov eax, dword [ebp - 0x224]
push eax
push str.BoxText
push dword [ebp - 0x268]
mov ecx, esi
call fcn.100d1850
lea ecx, [ebp - 0x224]
call fcn.10005250
mov eax, dword [ebp - 0x260]
add eax, 0x13c
cmp dword [eax + 0x14], 8
jb 0x100c0ca2
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x2dc]
call fcn.10002490
mov esi, dword [ebp - 0x2dc]
mov ecx, dword [ebp - 0x240]
push esi
push str.KillProcName
push dword [ebp - 0x268]
call fcn.100d1850
add esi, 0xfffffff0
mov eax, ebx
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x100c0ce2
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [ebp - 0x260]
push 1
call fcn.100bc830
movzx eax, al
push eax
mov eax, dword [ebp - 0x248]
push ecx
add eax, 0xfffffff0
mov esi, esp
push eax
call fcn.10002a60
add eax, 0x10
add esp, 4
mov dword [esi], eax
mov esi, dword [ebp - 0x260]
cmp dword [esi + 0xa0], 8
lea eax, [esi + 0x8c]
mov dword [ebp - 0x24c], eax
movsx ecx, byte [esi + 0xf5]
mov dl, byte [esi + 0xde]
mov dword [ebp - 0x250], ecx
jb 0x100c0d43
mov eax, dword [eax]
mov dword [ebp - 0x24c], eax
cmp dword [esi + 0x70], 8
lea eax, [esi + 0x5c]
mov dword [ebp - 0x26c], eax
jb 0x100c0d5a
mov eax, dword [eax]
mov dword [ebp - 0x26c], eax
cmp dword [esi + 0x88], 8
lea eax, [esi + 0x74]
mov dword [ebp - 0x25c], eax
jb 0x100c0d74
mov eax, dword [eax]
mov dword [ebp - 0x25c], eax
mov eax, dword [ebp - 0x294]
cmp dword [eax + 0x14], 8
jb 0x100c0d88
mov eax, dword [eax]
mov dword [ebp - 0x294], eax
xor eax, eax
test dl, dl
setne al
push eax
push ecx
push dword [esi + 0xe4]
push ecx
mov ecx, esp
push 0x10202940
call fcn.10002490
push ecx
mov ecx, esp
push 0x10202940
call fcn.10002490
push ecx
mov ecx, esp
push 0x10202940
call fcn.10002490
push 0
push dword [ebp - 0x268]
mov ecx, esi
call fcn.10035860
mov ecx, dword [ebp - 0x240]
push eax
lea eax, [ebp - 0x2b4]
push eax
lea eax, [ebp - 0x278]
push eax
push dword [ebp - 0x250]
push dword [ebp - 0x24c]
push dword [ebp - 0x26c]
push dword [ebp - 0x25c]
push dword [ebp - 0x294]
call fcn.100cd930
sub esp, 8
mov dword [ebp - 0x250], eax
mov ecx, esp
lea eax, [ebp - 0x241]
push eax
lea eax, [ebp - 0x258]
push eax
call fcn.100aaf70
push dword [ebp - 0x268]
mov ecx, dword [ebp - 0x240]
call fcn.100d1140
mov esi, dword [ebp - 0x258]
lea ecx, [ebp - 0x258]
push dword [esi + 4]
call fcn.100c22d0
mov eax, dword [ebp - 0x258]
mov edx, dword [ebp - 0x250]
mov dword [eax + 4], esi
mov eax, dword [ebp - 0x258]
mov dword [eax], esi
mov eax, dword [ebp - 0x258]
mov dword [eax + 8], esi
mov dword [ebp - 0x254], 0
cmp edx, 0xffffffff
je 0x100c0ecf
test edx, edx
je 0x100c0ecf
mov ecx, dword [ebp - 0x240]
push edx
mov eax, dword [ecx]
call dword [eax + 0x14]
test eax, eax
jne 0x100c0ecf
mov esi, dword [ebp - 0x260]
mov ecx, esi
call fcn.10035860
push eax
movsx eax, byte [esi + 0xf5]
push eax
call fcn.100bc630
add esp, 8
cmp eax, 1
jne 0x100c0eb6
inc dword [ebp - 0x2a8]
jmp 0x100c0ec1
cmp eax, 2
jne 0x100c0ec1
inc dword [ebp - 0x2a4]
push dword [esi + 0xe4]
call fcn.100ba410
add esp, 4
add edi, 0xfffffff0
mov eax, ebx
lock xadd dword [edi + 0xc], eax
dec eax
test eax, eax
jg 0x100c0ee6
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x248]
mov eax, ebx
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x100c0f03
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x258]
call fcn.100b9360
lea ecx, [ebp - 0x2b4]
call fcn.1002a3c0
lea ecx, [ebp - 0x278]
call fcn.1002a3c0
mov edi, dword [ebp - 0x240]
mov esi, dword [ebp - 0x264]
test esi, esi
je 0x100c0470
mov eax, ebx
lock xadd dword [esi + 4], eax
jne 0x100c0470
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
mov eax, ebx
lock xadd dword [esi + 8], eax
jne 0x100c0470
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
jmp 0x100c0470
mov dword [ebp - 0x2a0], 1
mov esi, dword [ebp - 0x264]
test esi, esi
je 0x100c0f97
mov eax, ebx
lock xadd dword [esi + 4], eax
jne 0x100c0f97
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
mov eax, ebx
lock xadd dword [esi + 8], eax
jne 0x100c0f97
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
cmp dword [ebp - 0x2a0], 0
mov eax, dword [edi + 0xbc]
mov byte [eax + 0x34], 1
jne 0x100c1d13
mov eax, dword [ebp - 0x2bc]
test eax, eax
je 0x100c1d13
push 0x4e20
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
jne 0x100c0fd9
mov eax, dword [edi + 0xbc]
mov byte [eax + 0x35], 1
mov ecx, dword [edi + 0x11c]
push 0
call fcn.10067d70
mov eax, dword [edi + 0xbc]
mov ecx, dword [eax + 0x54]
call fcn.100c4600
test al, al
jne 0x100c1c3a
lea esp, [esp]
mov eax, dword [edi + 0xbc]
lea ecx, [ebp - 0x258]
push ecx
mov ecx, dword [eax + 0x54]
call fcn.100c7670
mov eax, dword [ebp - 0x258]
test eax, eax
jne 0x100c1059
mov esi, dword [ebp - 0x254]
test esi, esi
je 0x100c1bfc
mov eax, ebx
lock xadd dword [esi + 4], eax
jne 0x100c1bfc
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
mov eax, ebx
lock xadd dword [esi + 8], eax
jne 0x100c1bfc
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
jmp 0x100c1bfc
mov esi, dword [eax + 4]
mov dword [ebp - 0x24c], esi
test esi, esi
je 0x100c1073
lock inc dword [esi + 4]
mov esi, dword [eax + 4]
mov dword [ebp - 0x24c], esi
mov edi, dword [eax]
mov dword [ebp - 0x264], edi
mov dword [ebp - 0x288], edi
mov dword [ebp - 0x284], esi
test edi, edi
je 0x100c1baa
cmp dword [edi + 0x58], 8
lea ecx, [edi + 0x44]
mov dword [ebp - 0x294], ecx
mov eax, ecx
jb 0x100c10a2
mov eax, dword [ecx]
mov ecx, dword [ebp - 0x240]
push 0x64
push 1
push eax
push str.ScanFileName
call fcn.100d0960
test eax, eax
je 0x100c1c14
mov ecx, dword [ebp - 0x240]
lea edx, [ebp - 0x20c]
xor eax, eax
push 0x104
mov word [ebp - 0x20c], ax
mov eax, dword [ecx]
push edx
push str.Stop
call dword [eax + 0xc]
lea eax, [ebp - 0x20c]
push str.TRUE
push eax
call sub.msvcrt.dll__wcsicmp
add esp, 8
test eax, eax
je 0x100c1c14
push 0x10202940
lea ecx, [ebp - 0x268]
mov dword [ebp - 0x218], 0
mov dword [ebp - 0x214], 0
mov dword [ebp - 0x210], 0
mov dword [ebp - 0x278], 0
mov dword [ebp - 0x274], 0
mov dword [ebp - 0x270], 0
call fcn.10002490
mov ecx, dword [ebp - 0x2c8]
mov eax, dword [edi + 0xe4]
mov dword [ebp - 0x250], eax
mov eax, dword [ecx]
mov dword [ebp - 0x2c4], eax
lea eax, [ebp - 0x250]
push eax
lea eax, [ebp - 0x2e0]
push eax
call fcn.1002aeb0
cmp byte [edi + 0xdd], 0
mov eax, dword [eax]
mov dword [ebp - 0x26c], eax
je 0x100c1264
push dword [edi + 0xe4]
mov ecx, dword [ebp - 0x240]
lea eax, [ebp - 0x29c]
push eax
call fcn.100c2a00
mov ecx, dword [ebp - 0x29c]
test ecx, ecx
je 0x100c121d
mov eax, dword [ecx]
call dword [eax + 8]
test eax, eax
je 0x100c121d
mov ecx, dword [ebp - 0x29c]
mov eax, dword [ecx + 0xc]
cmp eax, dword [ecx + 0x10]
je 0x100c11e9
push dword [ecx + 0x10]
lea ecx, [ebp - 0x218]
push eax
push dword [ebp - 0x214]
lea eax, [ebp - 0x2ec]
push eax
call fcn.100b7aa0
mov ecx, dword [ebp - 0x29c]
mov eax, dword [ecx + 0x18]
cmp eax, dword [ecx + 0x1c]
je 0x100c120d
push dword [ecx + 0x1c]
lea ecx, [ebp - 0x278]
push eax
push dword [ebp - 0x274]
lea eax, [ebp - 0x2e8]
push eax
call fcn.100b7aa0
lea ecx, [ebp - 0x29c]
call fcn.10033270
jmp 0x100c1600
lea ecx, [ebp - 0x29c]
call fcn.10033270
lea ecx, [ebp - 0x268]
call fcn.10007e10
lea ecx, [ebp - 0x278]
call fcn.1002a3c0
lea ecx, [ebp - 0x218]
call fcn.1002a3c0
lea ecx, [ebp - 0x288]
call fcn.10033270
lea ecx, [ebp - 0x258]
call fcn.10033270
jmp 0x100c1bf6
sub esp, 8
lea eax, [ebp - 0x288]
mov ecx, esp
push eax
call fcn.100328c0
mov ecx, dword [ebp - 0x240]
call fcn.100bd310
test eax, eax
je 0x100c1228
lea ecx, [ebp - 0x280]
call fcn.100b85c0
lea ecx, [ebp - 0x290]
call fcn.100b85c0
mov eax, dword [ebp - 0x258]
mov esi, dword [eax + 0xc]
cmp esi, dword [eax + 0x10]
je 0x100c12d0
mov edi, eax
lea ebx, [ebx]
push esi
lea ecx, [ebp - 0x280]
call fcn.10051f90
add esi, 0x18
cmp esi, dword [edi + 0x10]
jne 0x100c12b0
mov edi, dword [ebp - 0x264]
mov eax, dword [ebp - 0x258]
mov esi, dword [eax + 0x18]
cmp esi, dword [eax + 0x1c]
je 0x100c12fa
mov edi, dword [ebp - 0x258]
mov edi, edi
push esi
lea ecx, [ebp - 0x290]
call fcn.10051f90
add esi, 0x18
cmp esi, dword [edi + 0x1c]
jne 0x100c12e0
mov edi, dword [ebp - 0x264]
mov eax, dword [ebp - 0x26c]
cmp eax, dword [ebp - 0x2c4]
jne 0x100c1383
mov eax, dword [edi + 0xe4]
mov ecx, dword [ebp - 0x240]
mov dword [ebp - 0x250], eax
add ecx, 0x134
lea eax, [ebp - 0x250]
push eax
lea eax, [ebp - 0x2e4]
mov esi, dword [ecx]
push eax
call fcn.1002aeb0
cmp dword [eax], esi
je 0x100c1383
push str.srid:1
push dword [edi + 0xe4]
lea eax, [ebp - 0x25c]
push eax
call fcn.10175b00
mov ecx, eax
call fcn.10175bd0
mov eax, dword [ebp - 0x25c]
push ecx
add eax, 0xfffffff0
mov esi, esp
push eax
call fcn.10002a60
add esp, 4
add eax, 0x10
mov ecx, edi
mov dword [esi], eax
call fcn.10036ef0
lea ecx, [ebp - 0x25c]
call fcn.10007e10
cmp byte [edi + 0xe0], 0
mov cl, byte [edi + 0xdf]
je 0x100c13af
mov edi, dword [ebp - 0x240]
lea eax, [ebp - 0x290]
push eax
lea eax, [ebp - 0x280]
mov ecx, edi
push eax
call fcn.100cf200
jmp 0x100c13bd
test cl, cl
je 0x100c1441
mov edi, dword [ebp - 0x240]
lea ecx, [ebp - 0x290]
call fcn.1002a820
push 0x20
push dword [ebp - 0x290]
call fcn.1001da10
add esp, 8
lea ecx, [ebp - 0x280]
call fcn.1002a820
push 0x20
push dword [ebp - 0x280]
call fcn.1001da10
mov edx, dword [ebp - 0x268]
add esp, 8
add edx, 0xfffffff0
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x100c1410
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x278]
call fcn.1002a3c0
lea ecx, [ebp - 0x218]
call fcn.1002a3c0
lea ecx, [ebp - 0x288]
call fcn.10033270
lea ecx, [ebp - 0x258]
call fcn.10033270
jmp 0x100c1bfc
mov eax, dword [ebp - 0x280]
mov esi, dword [eax]
cmp esi, eax
je 0x100c14ff
cmp dword [esi + 0x1c], 8
lea edi, [esi + 8]
jb 0x100c145c
mov edi, dword [edi]
call fcn.10002d70
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0xc]
add eax, 0x10
lea ecx, [ebp - 0x248]
push edi
mov dword [ebp - 0x248], eax
call fcn.10023e80
test al, al
jne 0x100c148d
push edi
lea ecx, [ebp - 0x248]
call fcn.10008170
mov eax, dword [ebp - 0x214]
mov edi, dword [ebp - 0x248]
mov dword [ebp - 0x250], eax
cmp dword [ebp - 0x210], eax
je 0x100c14c7
lea eax, [edi - 0x10]
push eax
call fcn.10002a60
mov ecx, dword [ebp - 0x250]
add eax, 0x10
add esp, 4
mov dword [ecx], eax
add dword [ebp - 0x214], 4
jmp 0x100c14da
lea ecx, [ebp - 0x248]
push ecx
push eax
lea ecx, [ebp - 0x218]
call fcn.1001ddd0
add edi, 0xfffffff0
mov eax, ebx
lock xadd dword [edi + 0xc], eax
dec eax
test eax, eax
jg 0x100c14f1
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, dword [esi]
cmp esi, dword [ebp - 0x280]
jne 0x100c1451
mov eax, dword [ebp - 0x290]
mov esi, dword [eax]
cmp esi, eax
je 0x100c15be
nop
cmp dword [esi + 0x1c], 8
lea edi, [esi + 8]
jb 0x100c151b
mov edi, dword [edi]
call fcn.10002d70
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0xc]
add eax, 0x10
lea ecx, [ebp - 0x248]
push edi
mov dword [ebp - 0x248], eax
call fcn.10023e80
test al, al
jne 0x100c154c
push edi
lea ecx, [ebp - 0x248]
call fcn.10008170
mov eax, dword [ebp - 0x274]
mov edi, dword [ebp - 0x248]
mov dword [ebp - 0x250], eax
cmp dword [ebp - 0x270], eax
je 0x100c1586
lea eax, [edi - 0x10]
push eax
call fcn.10002a60
mov ecx, dword [ebp - 0x250]
add eax, 0x10
add esp, 4
mov dword [ecx], eax
add dword [ebp - 0x274], 4
jmp 0x100c1599
lea ecx, [ebp - 0x248]
push ecx
push eax
lea ecx, [ebp - 0x278]
call fcn.1001ddd0
add edi, 0xfffffff0
mov eax, ebx
lock xadd dword [edi + 0xc], eax
dec eax
test eax, eax
jg 0x100c15b0
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, dword [esi]
cmp esi, dword [ebp - 0x290]
jne 0x100c1510
lea ecx, [ebp - 0x290]
call fcn.1002a820
push 0x20
push dword [ebp - 0x290]
call fcn.1001da10
add esp, 8
lea ecx, [ebp - 0x280]
call fcn.1002a820
push 0x20
push dword [ebp - 0x280]
call fcn.1001da10
mov edi, dword [ebp - 0x264]
add esp, 8
mov esi, dword [ebp - 0x24c]
mov eax, dword [ebp - 0x26c]
cmp eax, dword [ebp - 0x2c4]
je 0x100c16ce
sub esp, 8
lea eax, [ebp - 0x241]
mov ecx, esp
push eax
mov eax, dword [ebp - 0x258]
add eax, 0x24
push eax
call fcn.100aaf70
lea eax, [ebp - 0x278]
push eax
lea eax, [ebp - 0x218]
push eax
sub esp, 8
mov eax, esp
mov dword [eax], 0
mov dword [eax + 4], 0
test esi, esi
je 0x100c1655
lock inc dword [esi + 4]
mov dword [eax], edi
mov edi, dword [ebp - 0x240]
mov ecx, edi
mov dword [eax + 4], esi
call fcn.100bd4d0
mov edx, dword [ebp - 0x268]
mov eax, ebx
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x100c1684
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x278]
call fcn.1002a3c0
lea ecx, [ebp - 0x218]
call fcn.1002a3c0
test esi, esi
je 0x100c101f
mov eax, ebx
lock xadd dword [esi + 4], eax
jne 0x100c101f
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
mov eax, ebx
lock xadd dword [esi + 8], eax
jne 0x100c101f
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
jmp 0x100c101f
mov eax, dword [edi + 0xe4]
lea ecx, [ebp - 0x2c0]
mov dword [ebp - 0x250], eax
mov dword [ebp - 0x2c0], eax
mov eax, dword [ebp - 0x240]
push ecx
add eax, 0xc8
lea ecx, [ebp - 0x2dc]
push ecx
mov ecx, eax
mov dword [ebp - 0x26c], eax
call fcn.100c4630
mov eax, dword [ebp - 0x26c]
mov esi, dword [ebp - 0x2dc]
cmp esi, dword [eax]
je 0x100c1721
mov ecx, dword [ebp - 0x250]
cmp ecx, dword [esi + 0x10]
jae 0x100c1765
lea ecx, [ebp - 0x2c0]
mov dword [ebp - 0x250], ecx
lea ecx, [ebp - 0x241]
push ecx
lea ecx, [ebp - 0x250]
push ecx
push 0x1020f724
mov ecx, eax
call fcn.100b5a90
mov ecx, dword [ebp - 0x26c]
push eax
add eax, 0x10
push eax
push esi
lea eax, [ebp - 0x2d8]
push eax
call fcn.100b65d0
mov esi, dword [ebp - 0x2d8]
mov ecx, dword [ebp - 0x24c]
test ecx, ecx
je 0x100c1773
lock inc dword [ecx + 4]
mov eax, dword [esi + 0x14]
mov dword [esi + 0x14], edi
mov dword [ebp - 0x2b0], eax
mov eax, dword [esi + 0x18]
mov dword [esi + 0x18], ecx
lea ecx, [ebp - 0x2b0]
mov dword [ebp - 0x2ac], eax
call fcn.10033270
lea eax, [ebp - 0x218]
mov ecx, edi
push eax
call fcn.10035140
mov eax, dword [edi + 0xe4]
mov ecx, dword [ebp - 0x240]
push 0x10204674
push str.UseEntryClass
push eax
mov dword [ebp - 0x248], eax
call fcn.100d1850
call fcn.10002d70
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0xc]
push dword [edi + 0xec]
add eax, 0x10
mov dword [ebp - 0x260], eax
lea eax, [ebp - 0x260]
push 0x10204700
push eax
call fcn.10002cb0
mov edi, dword [ebp - 0x260]
add esp, 0xc
mov ecx, dword [ebp - 0x240]
push edi
push str.CleanRatio
push dword [ebp - 0x248]
call fcn.100d1850
mov esi, dword [ebp - 0x264]
lea ecx, [ebp - 0x23c]
lea eax, [esi + 0xa4]
push eax
call fcn.10005170
cmp dword [ebp - 0x228], 8
lea eax, [ebp - 0x23c]
jb 0x100c183f
mov eax, dword [ebp - 0x23c]
mov ecx, dword [ebp - 0x240]
push eax
push str.BoxText
push dword [ebp - 0x248]
call fcn.100d1850
lea ecx, [ebp - 0x23c]
call fcn.10005250
add esi, 0x13c
cmp dword [esi + 0x14], 8
jb 0x100c186f
mov esi, dword [esi]
push esi
lea ecx, [ebp - 0x2cc]
call fcn.10002490
mov esi, dword [ebp - 0x2cc]
mov ecx, dword [ebp - 0x240]
push esi
push str.KillProcName
push dword [ebp - 0x248]
call fcn.100d1850
add esi, 0xfffffff0
mov eax, ebx
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x100c18af
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov ebx, dword [ebp - 0x264]
cmp byte [ebx + 0xdc], 0
setne al
cmp byte [ebx + 0xdd], 0
je 0x100c18ca
or al, 2
cmp byte [ebx + 0xde], 0
jne 0x100c18d5
or al, 4
cmp byte [ebx + 0xdf], 0
je 0x100c18e0
or al, 8
cmp byte [ebx + 0xe0], 0
je 0x100c18eb
or al, 0x20
cmp byte [ebx + 0xe1], 0
je 0x100c18f6
or al, 0x10
cmp byte [ebx + 0xf6], 0
je 0x100c1901
or al, 0x40
cmp byte [ebx + 0xf7], 0
je 0x100c190c
or al, 0x80
movzx eax, al
push 1
push eax
mov eax, dword [ebp - 0x268]
push ecx
add eax, 0xfffffff0
mov esi, esp
push eax
mov dword [ebp - 0x26c], eax
call fcn.10002a60
add eax, 0x10
add esp, 4
mov dword [esi], eax
xor eax, eax
mov cl, byte [ebx + 0xde]
movsx edx, byte [ebx + 0xf5]
test cl, cl
setne al
push eax
push edx
push dword [ebx + 0xe4]
push ecx
mov esi, esp
call fcn.10002d70
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0xc]
add eax, 0x10
mov ecx, esi
push 0x10202940
mov dword [esi], eax
call fcn.10023e80
test al, al
jne 0x100c1980
push 0
push 0x10202940
mov ecx, esi
call fcn.10003740
push ecx
mov esi, esp
call fcn.10002d70
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0xc]
add eax, 0x10
mov ecx, esi
push 0x10202940
mov dword [esi], eax
call fcn.10023e80
test al, al
jne 0x100c19b2
push 0
push 0x10202940
mov ecx, esi
call fcn.10003740
push ecx
mov esi, esp
call fcn.10002d70
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0xc]
add eax, 0x10
mov ecx, esi
push 0x10202940
mov dword [esi], eax
call fcn.10023e80
test al, al
jne 0x100c19e4
push 0
push 0x10202940
mov ecx, esi
call fcn.10003740
cmp dword [ebx + 0x114], 0
je 0x100c19f4
mov eax, 4
jmp 0x100c1a24
mov dl, byte [ebx + 0xe8]
cmp dl, 1
jne 0x100c1a06
mov eax, 1
jmp 0x100c1a24
mov cl, byte [ebx + 0xf5]
xor eax, eax
test cl, cl
jne 0x100c1a1a
cmp dl, 2
setne al
jmp 0x100c1a1d
setle al
lea eax, [eax*2 + 2]
cmp dword [ebx + 0xa0], 8
lea edx, [ebx + 0x8c]
movsx esi, byte [ebx + 0xf5]
jb 0x100c1a3c
mov edx, dword [edx]
cmp dword [ebx + 0x70], 8
lea ecx, [ebx + 0x5c]
jb 0x100c1a47
mov ecx, dword [ecx]
add ebx, 0x74
cmp dword [ebx + 0x14], 8
jb 0x100c1a52
mov ebx, dword [ebx]
mov edi, dword [ebp - 0x294]
cmp dword [edi + 0x14], 8
mov edi, dword [ebp - 0x260]
jb 0x100c1a78
mov edi, dword [ebp - 0x294]
mov edi, dword [edi]
mov dword [ebp - 0x294], edi
mov edi, dword [ebp - 0x260]
push 0
push dword [ebp - 0x248]
push eax
lea eax, [ebp - 0x278]
push eax
lea eax, [ebp - 0x218]
push eax
push esi
push edx
push ecx
mov ecx, dword [ebp - 0x240]
push ebx
push dword [ebp - 0x294]
call fcn.100cd930
mov ebx, dword [ebp - 0x258]
sub esp, 8
mov dword [ebp - 0x250], eax
mov ecx, esp
lea eax, [ebp - 0x241]
add ebx, 0x24
push eax
push ebx
call fcn.100aaf70
push dword [ebp - 0x248]
mov ecx, dword [ebp - 0x240]
call fcn.100d1140
mov esi, dword [ebx]
mov ecx, ebx
push dword [esi + 4]
call fcn.100c22d0
mov eax, dword [ebx]
mov edx, dword [ebp - 0x250]
mov dword [eax + 4], esi
mov eax, dword [ebx]
mov dword [eax], esi
mov eax, dword [ebx]
mov dword [eax + 8], esi
mov dword [ebx + 4], 0
cmp edx, 0xffffffff
je 0x100c1b5a
test edx, edx
je 0x100c1b5a
mov ecx, dword [ebp - 0x240]
push edx
mov eax, dword [ecx]
call dword [eax + 0x14]
test eax, eax
jne 0x100c1b5a
mov esi, dword [ebp - 0x264]
mov ecx, esi
call fcn.10035860
push eax
movsx eax, byte [esi + 0xf5]
push eax
call fcn.100bc630
add esp, 8
cmp eax, 1
jne 0x100c1b41
inc dword [ebp - 0x2a8]
jmp 0x100c1b4c
cmp eax, 2
jne 0x100c1b4c
inc dword [ebp - 0x2a4]
push dword [esi + 0xe4]
call fcn.100ba410
add esp, 4
or ebx, 0xffffffff
add edi, 0xfffffff0
mov eax, ebx
lock xadd dword [edi + 0xc], eax
dec eax
test eax, eax
jg 0x100c1b74
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x26c]
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x100c1b8e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x278]
call fcn.1002a3c0
lea ecx, [ebp - 0x218]
call fcn.1002a3c0
mov esi, dword [ebp - 0x24c]
test esi, esi
je 0x100c1bcd
mov eax, ebx
lock xadd dword [esi + 4], eax
jne 0x100c1bcd
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
mov eax, ebx
lock xadd dword [esi + 8], eax
jne 0x100c1bcd
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov esi, dword [ebp - 0x254]
test esi, esi
je 0x100c1bf6
mov eax, ebx
lock xadd dword [esi + 4], eax
jne 0x100c1bf6
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
mov eax, ebx
lock xadd dword [esi + 8], eax
jne 0x100c1bf6
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov edi, dword [ebp - 0x240]
mov eax, dword [edi + 0xbc]
mov ecx, dword [eax + 0x54]
call fcn.100c4600
test al, al
je 0x100c1000
jmp 0x100c1c3a
lea ecx, [ebp - 0x288]
mov dword [ebp - 0x2a0], 1
call fcn.10033270
lea ecx, [ebp - 0x258]
call fcn.10033270
mov edi, dword [ebp - 0x240]
push dword [ebp - 0x2b8]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
call esi
mov eax, dword [ebp - 0x2bc]
push eax
call esi
mov eax, dword [edi + 0xbc]
lea ecx, [ebp - 0x241]
mov esi, dword [eax + 0x54]
call fcn.10129b80
mov ecx, dword [esi + 0x28]
mov eax, dword [ecx]
mov dword [ebp - 0x2c8], eax
cmp eax, ecx
je 0x100c1cb4
jmp 0x100c1c80
push dword [ebp - 0x2e0]
add eax, 0x10
lea ecx, [edi + 0x12c]
push eax
push 0
lea eax, [ebp - 0x2b0]
push eax
call fcn.1001f820
lea ecx, [ebp - 0x2c8]
call fcn.10014d60
mov eax, dword [ebp - 0x2c8]
cmp eax, dword [esi + 0x28]
jne 0x100c1c80
lea ecx, [ebp - 0x241]
call fcn.10129ba0
cmp dword [ebp - 0x2a0], 0
jne 0x100c1cf5
mov al, byte [edi + 0xf8]
test al, al
je 0x100c1cd6
cmp al, 1
jne 0x100c1cf5
cmp al, 1
sete al
movzx eax, al
push eax
mov eax, dword [ebp - 0x2a4]
push eax
mov eax, dword [ebp - 0x2a8]
push eax
call fcn.100bff80
add esp, 0xc
lea ecx, [ebp - 0x2d4]
call fcn.10033270
mov al, 1
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.101f99c6
mov esp, ebp
pop ebp
ret
push dword [ebp - 0x2b8]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
call esi
mov eax, dword [ebp - 0x2bc]
test eax, eax
je 0x100c1d2e
push eax
call esi
cmp dword [ebp - 0x2a0], 0
jne 0x100c1d64
mov al, byte [edi + 0xf8]
test al, al
je 0x100c1d45
cmp al, 1
jne 0x100c1d64
cmp al, 1
sete al
movzx eax, al
push eax
mov eax, dword [ebp - 0x2a4]
push eax
mov eax, dword [ebp - 0x2a8]
push eax
call fcn.100bff80
add esp, 0xc
mov esi, dword [ebp - 0x2d0]
test esi, esi
je 0x100c1d8c
mov eax, ebx
lock xadd dword [esi + 4], eax
jne 0x100c1d8c
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
lock xadd dword [esi + 8], ebx
dec ebx
jne 0x100c1d8c
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov ecx, dword [ebp - 4]
mov al, 1
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.101f99c6
mov esp, ebp
pop ebp
ret