Function at 0x4140f7
Capabilities:
Create thread

Disassembly:
push ebp
lea ebp, [esp - 0x49c]
sub esp, 0x51c
mov eax, dword [0x488548]
xor eax, ebp
mov dword [ebp + 0x498], eax
mov ecx, dword [ebp + 0x4a4]
mov eax, dword [ebp + 0x4ac]
push ebx
mov ebx, dword [ebp + 0x4b8]
push esi
mov esi, dword [ebp + 0x4b0]
xor edx, edx
test dword [ebx], 0x2000000
push edi
mov edi, dword [ebp + 0x4b4]
mov dword [ebp - 0x78], ecx
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x6c], esi
mov dword [ebp - 0x68], edi
mov dword [ebp - 0x60], ebx
mov dword [ebp - 0x70], edx
mov dword [ebp - 0x64], edx
mov dword [ebp - 0x5c], edx
jne 0x4141b3
cmp word [eax], 0x61
jne 0x41417d
cmp word [eax + 2], 0x75
jne 0x41417d
cmp word [eax + 4], 0x78
jne 0x41417d
cmp word [eax + 6], 0x3a
jne 0x41417d
push ecx
push eax
lea eax, [ebp - 0x58]
push eax
call fcn.00413bd3
jmp 0x41418d
push 0x4755f0
push eax
lea eax, [ebp - 0x58]
push eax
call dword [sym.imp.PPLIB32W.DLL__CatPath_12]
push esi
lea eax, [ebp - 0x58]
push eax
call dword [sym.imp.PPLIB32W.DLL__VFSFindFirst_8]
mov esi, eax
cmp esi, 0xffffffff
je 0x4141ac
test edi, edi
je 0x4141ac
mov edx, edi
mov ecx, esi
call fcn.00413b8e
mov eax, esi
jmp 0x414534
mov edi, 0x48a9c0
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov esi, dword [0x489620]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x74], eax
jmp 0x414294
mov eax, dword [esi + 0x10]
test eax, eax
je 0x4141ec
mov ebx, dword [esi]
push esi
call fcn.00413b06
mov esi, ebx
mov ebx, dword [ebp - 0x60]
jmp 0x414294
mov ecx, dword [ebp - 0x7c]
lea eax, [esi + 0x2c]
mov dx, word [ecx]
cmp dx, word [eax]
jne 0x414218
test dx, dx
je 0x414214
mov dx, word [ecx + 2]
cmp dx, word [eax + 2]
jne 0x414218
add ecx, 4
add eax, 4
test dx, dx
jne 0x4141f2
xor eax, eax
jmp 0x41421d
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x41426a
test dword [ebx], 0x400
jne 0x4141da
mov eax, dword [esi + 0x14]
test al, 1
je 0x41425c
test al, 2
mov eax, dword [ebp - 0x64]
je 0x4142be
test eax, eax
je 0x414248
dec dword [eax + 8]
push eax
call fcn.00413b06
mov eax, dword [ebp + 0x4a8]
mov dword [esi + 0x4e0], eax
inc dword [esi + 8]
mov dword [ebp - 0x64], esi
jmp 0x41426a
mov eax, dword [esi + 0x4dc]
cmp eax, dword [ebp - 0x78]
jne 0x41426a
mov dword [ebp - 0x70], esi
mov ecx, dword [ebp - 0x78]
lea eax, [esi + 0x4dc]
cmp dword [eax], ecx
jne 0x41428c
mov ecx, dword [ebp + 0x4a8]
cmp dword [esi + 0x4e0], ecx
je 0x41428c
or dword [esi + 0x14], 2
and dword [eax], 0
mov eax, dword [esi + 0x24]
add dword [ebp - 0x5c], eax
mov esi, dword [esi]
test esi, esi
jne 0x4141d3
mov ecx, dword [0x4870f4]
cmp dword [ebp - 0x5c], ecx
jle 0x41431a
mov esi, dword [0x489620]
mov eax, ecx
cdq
and edx, 7
add eax, edx
mov ebx, eax
sar ebx, 3
add ebx, ecx
jmp 0x414316
test eax, eax
je 0x4142cb
dec dword [eax + 8]
push eax
call fcn.00413b06
push ebx
push dword [ebp - 0x68]
push dword [ebp - 0x6c]
push esi
call fcn.0041404a
push edi
mov esi, eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x4141ac
cmp esi, dword [ebp - 0x70]
je 0x414314
cmp esi, dword [ebp - 0x64]
je 0x414314
mov eax, dword [esi + 8]
test eax, eax
jg 0x414314
test byte [esi + 0x14], 4
je 0x414314
mov eax, dword [esi + 0x24]
sub dword [ebp - 0x5c], eax
mov eax, esi
mov esi, dword [esi]
push eax
call fcn.00413b06
cmp dword [ebp - 0x5c], ebx
jl 0x41431a
jmp 0x414316
mov esi, dword [esi]
test esi, esi
jne 0x4142e6
mov ebx, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push edi
call ebx
cmp dword [ebp - 0x70], 0
jne 0x414476
mov ecx, 0x9b8
call fcn.00424f73
mov ecx, dword [ebp - 0x60]
mov esi, eax
xor eax, eax
mov dword [esi], eax
mov dword [esi + 4], 0xaa
mov dword [esi + 8], eax
mov ecx, dword [ecx]
and ecx, 0xc000000
mov dword [esi + 0xc], ecx
mov ecx, dword [ebp - 0x78]
mov dword [esi + 0x4dc], ecx
mov ecx, dword [ebp + 0x4a8]
mov dword [esi + 0x4e0], ecx
mov ecx, dword [ebp - 0x74]
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], eax
mov dword [esi + 0x18], eax
mov dword [esi + 0x4e8], eax
mov dword [esi + 0x1c], eax
mov dword [esi + 0x20], eax
mov dword [esi + 0x24], eax
mov dword [esi + 0x28], eax
mov dword [esi + 0x4e4], ecx
mov ecx, dword [ebp - 0x7c]
lea eax, [esi + 0x2c]
sub eax, ecx
movzx edx, word [ecx]
mov word [eax + ecx], dx
inc ecx
inc ecx
test dx, dx
jne 0x414396
xor eax, eax
cmp dword [0x4870f0], eax
jge 0x4143b5
or dword [esi + 0xc], 0x4000000
lea ecx, [ebp - 0x80]
push ecx
push eax
push esi
push 0x413c37
push eax
push eax
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [ebp - 0x5c], eax
test eax, eax
je 0x414531
mov eax, dword [0x4870f0]
test eax, eax
jl 0x414442
mov ecx, dword [ebp - 0x60]
test byte [ecx], 1
jne 0x4143ed
test eax, eax
je 0x4143ed
imul eax, eax, 0x64
jmp 0x4143f0
push 0x1e
pop eax
push eax
push dword [ebp - 0x5c]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
jne 0x414437
push dword [ebp - 0x5c]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 0x64], 0
je 0x414423
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [ebp - 0x64]
dec dword [eax + 8]
push eax
call fcn.00413b06
push edi
call ebx
push dword [ebp - 0x60]
push dword [ebp - 0x68]
push dword [ebp - 0x6c]
push esi
call fcn.0041404a
jmp 0x414534
push 0xffffffffffffffff
push dword [ebp - 0x5c]
call dword [sym.imp.KERNEL32.dll_SetThreadPriority]
push dword [ebp - 0x5c]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
or dword [esi + 0xc], 0x40000000
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [0x489620]
test eax, eax
jne 0x41446c
mov dword [0x489620], esi
jmp 0x414473
mov eax, dword [eax]
cmp dword [eax], 0
jne 0x41446a
mov dword [eax], esi
push edi
call ebx
mov eax, dword [ebp - 0x60]
test byte [eax], 1
mov esi, dword [ebp - 0x64]
jne 0x414515
test esi, esi
je 0x4144b0
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
push dword [ebp - 0x60]
push dword [ebp - 0x68]
push dword [ebp - 0x6c]
push esi
call fcn.0041404a
dec dword [esi + 8]
push edi
mov dword [ebp - 0x74], eax
call ebx
mov eax, dword [ebp - 0x74]
jmp 0x414534
mov ebx, dword [ebp - 0x68]
lea eax, [ebx + 0x4c8]
push eax
push dword [ebp - 0x7c]
lea eax, [ebp - 0x58]
push eax
call fcn.004136d1
test eax, eax
je 0x414526
mov eax, dword [ebp - 0x60]
and dword [eax], 0xfdffffff
lea edi, [ebp - 0x58]
dec edi
dec edi
mov ax, word [edi + 2]
inc edi
inc edi
test ax, ax
jne 0x4144d8
push dword [ebp - 0x6c]
mov esi, 0x475680
movsd dword es:[edi], dword [esi]
lea eax, [ebp - 0x58]
push eax
movsw word es:[edi], word [esi]
call dword [sym.imp.PPLIB32W.DLL__VFSFindFirst_8]
or dword [ebx], 0xffffffff
mov ecx, 0x476584
lea edx, [ebx + 4]
sub edx, ecx
movzx esi, word [ecx]
mov word [edx + ecx], si
inc ecx
inc ecx
test si, si
jne 0x414505
jmp 0x414534
test esi, esi
je 0x414526
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
dec dword [esi + 8]
push edi
call ebx
push 0xaa
call dword [sym.imp.KERNEL32.dll_SetLastError]
or eax, 0xffffffff
mov ecx, dword [ebp + 0x498]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0046890b
add ebp, 0x49c
leave
ret 0x18