Function at 0x100245b0
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x110
mov eax, dword [0x10073498]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 8]
lea eax, [ebp - 0x104]
push esi
mov esi, dword [ebp + 0x14]
push edi
mov edi, dword [ebp + 0x10]
push 0x100
push eax
push 0
mov dword [ebp - 0x108], ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea eax, [ebp - 0x104]
push str.DOW2.exe
push eax
call fcn.1002ac50
add esp, 8
test eax, eax
jne 0x10024a70
lea eax, [ebp - 0x104]
push str.RaccoonCity.exe
push eax
call fcn.1002ac50
add esp, 8
test eax, eax
jne 0x10024a70
lea eax, [ebp - 0x104]
push str.bsp.exe
push eax
call fcn.1002ac50
add esp, 8
test eax, eax
jne 0x10024a70
push ebx
call dword [sym.imp.KERNEL32.dll_ResetEvent]
mov edx, dword [0x10104d18]
xor eax, eax
test edx, edx
jle 0x10024661
mov ecx, 0x10104ac0
cmp dword [ecx], ebx
je 0x10024661
inc eax
add ecx, 0xc
cmp eax, edx
jl 0x10024655
cmp eax, edx
je 0x10024c29
mov ebx, dword [ebp + 0xc]
lea ecx, [eax + eax*2]
mov eax, ebx
shl ecx, 2
and eax, 0x7e000000
mov dword [ebp - 0x110], ecx
or eax, 0x1000000
shr eax, 0x18
test byte [ecx + 0x10104ac4], al
je 0x10024c29
cmp dword [0x10073034], 0xffffffff
jne 0x100246b0
mov dword [0x10073034], 0
mov dword [ecx + 0x10104ac8], 0
mov eax, dword [ecx + 0x10104ac8]
cmp eax, dword [0x10073470]
jae 0x100246c5
inc eax
mov dword [ecx + 0x10104ac8], eax
push 0x10075338
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov dword [ebp - 0x10c], 0
test edi, edi
je 0x100246e0
mov dword [edi], ebx
mov eax, dword [ebp - 0x110]
mov edi, dword [0x10073484]
mov edx, dword [0x10073480]
mov ecx, dword [eax + 0x10104ac4]
mov eax, dword [0x10073034]
test cl, 1
je 0x10024757
test ebx, ebx
jne 0x10024757
test eax, eax
je 0x10024752
cmp eax, 2
je 0x10024752
cmp dword [0x10073474], ebx
jne 0x1002471e
mov ebx, 0xa
jmp 0x10024757
cmp dword [0x10073478], 0
jne 0x1002472e
mov ebx, 0xb
jmp 0x10024757
cmp dword [0x1007347c], 0
jne 0x1002473e
mov ebx, 0xe
jmp 0x10024757
test edx, edx
jne 0x10024747
lea ebx, [edx + 0x12]
jmp 0x10024757
test edi, edi
jne 0x10024757
mov ebx, 0x10013
jmp 0x10024757
mov ebx, 9
and ecx, 2
test ebx, ebx
jne 0x1002478f
test ecx, ecx
je 0x10024c1e
cmp dword [0x10073488], ebx
je 0x10024991
cmp dword [0x1007348c], ebx
je 0x10024a0e
cmp dword [0x10073490], ebx
je 0x10024a2b
jmp 0x10024c1e
cmp ebx, 0x12
ja 0x1002495e
je 0x10024947
add ebx, 0xfffffff7
cmp ebx, 5
ja case.0x100247aa.12
jmp dword [ebx*4 + 0x10024c40]
test eax, eax
jne 0x100247ee
test esi, esi
je 0x100247c4
mov dword [esi], 1
mov eax, dword [0x10073034]
mov esi, dword [ebp - 0x108]
inc eax
mov dword [0x10073034], eax
lea eax, [ebp - 0x110]
push eax
push 0
push esi
push 0x10026540
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
jmp 0x10024a3b
cmp eax, 2
jne case.0x100247aa.12
test esi, esi
je 0x10024806
mov dword [esi], 0
mov eax, dword [0x10073034]
inc eax
mov dword [0x10073474], 0
mov dword [0x10073034], eax
mov dword [0x10073478], 0
mov dword [0x1007347c], 0
mov dword [0x10073480], 0
mov dword [0x10073484], 0
mov dword [0x10073488], 0
mov dword [0x1007348c], 0
mov dword [0x10073490], 0
jmp 0x10024a35
cmp dword [0x10073474], 0
jne case.0x100247aa.12
test esi, esi
je 0x100248b7
xor eax, eax
mov dword [esi], 0
cmp dword [0x10073038], eax
je 0x1002488d
mov dword [esi], 1
mov eax, 1
cmp dword [0x1007303c], 0
je 0x1002489b
or eax, 2
mov dword [esi], eax
cmp dword [0x10073040], 0
je 0x100248a9
or eax, 4
mov dword [esi], eax
cmp dword [0x10073044], 0
je 0x100248b7
or eax, 8
mov dword [esi], eax
mov dword [0x10073474], 1
jmp 0x10024a35
cmp dword [0x10073478], 0
jne case.0x100247aa.12
mov dword [0x10073478], 1
jmp 0x10024a35
cmp dword [0x1007347c], 0
jne case.0x100247aa.12
test esi, esi
je 0x10024938
xor eax, eax
mov dword [esi], 0
cmp dword [0x10073038], eax
je 0x1002490e
mov dword [esi], 1
mov eax, 1
cmp dword [0x1007303c], 0
je 0x1002491c
or eax, 2
mov dword [esi], eax
cmp dword [0x10073040], 0
je 0x1002492a
or eax, 4
mov dword [esi], eax
cmp dword [0x10073044], 0
je 0x10024938
or eax, 8
mov dword [esi], eax
mov dword [0x1007347c], 1
jmp 0x10024a35
test edx, edx
jne case.0x100247aa.12
mov dword [0x10073480], 1
jmp 0x10024a35
cmp ebx, 0x2000007
ja 0x10024a1a
je 0x10024a05
cmp ebx, 0x10013
je 0x100249ae
cmp ebx, 0x2000001
jne case.0x100247aa.12
cmp dword [0x10073488], 0
jne case.0x100247aa.12
mov dword [0x10073488], 1
test esi, esi
je 0x10024a35
mov dword [esi], 0
jmp 0x10024a35
test edi, edi
jne case.0x100247aa.12
test esi, esi
je 0x100249f9
xor eax, eax
mov dword [esi], edi
cmp dword [0x10073038], eax
je 0x100249cf
mov dword [esi], 1
lea eax, [edi + 1]
cmp dword [0x1007303c], 0
je 0x100249dd
or eax, 2
mov dword [esi], eax
cmp dword [0x10073040], 0
je 0x100249eb
or eax, 4
mov dword [esi], eax
cmp dword [0x10073044], 0
je 0x100249f9
or eax, 8
mov dword [esi], eax
mov dword [0x10073484], 1
jmp 0x10024a35
cmp dword [0x1007348c], 0
jne case.0x100247aa.12
mov dword [0x1007348c], 1
jmp 0x10024a35
cmp ebx, 0x2000008
jne case.0x100247aa.12
cmp dword [0x10073490], 0
jne case.0x100247aa.12
mov dword [0x10073490], 1
mov esi, dword [ebp - 0x108]
push esi
call dword [sym.imp.KERNEL32.dll_SetEvent]
mov dword [ebp - 0x10c], 1
push 0x10075338
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [ebp - 0x10c]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10026812
mov esp, ebp
pop ebp
ret 0x10
cmp dword [0x10073034], 0xffffffff
jne 0x10024a8c
xor eax, eax
mov dword [0x10073034], 0
mov dword [0x10104d40], eax
jmp 0x10024a91
mov eax, dword [0x10104d40]
cmp eax, dword [0x10073460]
jge 0x10024a9f
inc eax
mov dword [0x10104d40], eax
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x10024aaf
cmp eax, 1
jne 0x10024c29
push 0x10075338
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [0x10073034]
test ecx, ecx
jne 0x10024af0
test edi, edi
je 0x10024ad4
mov dword [edi], 9
mov ecx, dword [0x10073034]
test esi, esi
je 0x10024ae4
mov dword [esi], 1
mov ecx, dword [0x10073034]
inc ecx
mov dword [0x10073034], ecx
jmp 0x10024beb
lea eax, [ecx - 1]
cmp eax, 0x3a
jbe 0x10024ae4
cmp ecx, 0x3c
jne 0x10024b33
test edi, edi
je 0x10024b0d
mov dword [edi], 9
mov ecx, dword [0x10073034]
test esi, esi
je 0x10024b1d
mov dword [esi], 0
mov ecx, dword [0x10073034]
inc ecx
mov dword [0x10073464], 0
mov dword [0x10073034], ecx
jmp 0x10024beb
cmp dword [0x10073464], 0
jne 0x10024ba5
test edi, edi
je 0x10024b46
mov dword [edi], 0xa
test esi, esi
je 0x10024b8f
xor eax, eax
mov dword [esi], 0
cmp dword [0x10073038], eax
je 0x10024b65
mov dword [esi], 1
mov eax, 1
cmp dword [0x1007303c], 0
je 0x10024b73
or eax, 2
mov dword [esi], eax
cmp dword [0x10073040], 0
je 0x10024b81
or eax, 4
mov dword [esi], eax
cmp dword [0x10073044], 0
je 0x10024b8f
or eax, 8
mov dword [esi], eax
mov dword [0x10073464], 1
mov dword [0x10073468], 0
jmp 0x10024beb
cmp dword [0x10073468], 0
jne 0x10024bce
test edi, edi
je 0x10024bb8
mov dword [edi], 0x12
mov dword [0x10073468], 1
mov dword [0x1007346c], 0
jmp 0x10024beb
cmp dword [0x1007346c], 0
jne 0x10024c16
test edi, edi
je 0x10024be1
mov dword [edi], 0x10013
mov dword [0x1007346c], 1
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
push 0x10075338
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
pop edi
pop esi
mov eax, 1
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10026812
mov esp, ebp
pop ebp
ret 0x10
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
push 0x10075338
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [ebp - 4]
xor eax, eax
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.10026812
mov esp, ebp
pop ebp
ret 0x10