Function at 0x8c1440
Capabilities:
Authenticate hmac
Check for time delay via gettickcount
Check mutex on windows
Contain obfuscated stackstrings
Copy file
Create directory
Create process on windows
Create process suspended
Delete file
Encode data using xor
Encrypt or decrypt via wincrypt
Get file size
Move file
Read file on windows
Resume thread
Write and execute a file
Write file on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1f40
call fcn.00858020
push ebx
mov ebx, ecx
push esi
push edi
mov dword [ebp - 4], ebx
jmp 0x8c145b
cmp byte [ebx], 0
jne 0x8c358b
call fcn.008c3950
mov byte [ebx + 0x2b7d], al
call dword [sym.imp.kernel32.dll_GetCurrentProcessId]
mov dword [ebx + 0x2b10], eax
call dword [sym.imp.kernel32.dll_GetCurrentThreadId]
mov ecx, dword [ebp + 8]
mov dword [0xaea6d8], eax
lea eax, [ebx + 0x2b14]
push 0x20
push ecx
push eax
call fcn.008cb2cb
add esp, 0xc
mov ecx, ebx
mov byte [ebx + 0x2b33], 0
push 0x104
push 0xaea3ac
call fcn.008c39d0
push 0
push 0xaea3ac
call fcn.008cb285
add esp, 8
cmp eax, 0xffffffff
jne 0x8c150b
push 0
push 0xaea3ac
call dword [sym.imp.kernel32.dll_CreateDirectoryA]
test eax, eax
jne 0x8c150b
mov esi, dword [sym.imp.kernel32.dll_GetLastError]
call esi
call esi
push eax
push 0xa384fc
call fcn.008c94e0
add esp, 4
add ebx, 0x24
push eax
push ebx
call fcn.008c3720
add esp, 0xc
mov eax, 0x6f
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov esi, dword [sym.imp.kernel32.dll_lstrcatA]
push 0xa384f8
push 0xaea3ac
call esi
push 3
push 0xaea3ac
call fcn.008c6e90
push 0xa384e8
call fcn.008c94e0
add esp, 0xc
push eax
push 0xaea3ac
call esi
mov ecx, ebx
call fcn.008c0fb0
mov al, 0x8d
mov dl, 0x73
mov byte [ebp - 0x59], al
mov byte [ebp - 0x55], al
mov cl, 0xf4
mov al, 0xa8
add ebx, 0x24
mov byte [ebp - 0x80], 6
mov byte [ebp - 0x7f], 2
mov byte [ebp - 0x7e], 0
mov byte [ebp - 0x7d], 0
mov byte [ebp - 0x7c], 0
mov byte [ebp - 0x7b], 0xa4
mov byte [ebp - 0x7a], 0
mov byte [ebp - 0x79], 0
mov byte [ebp - 0x78], 0x52
mov byte [ebp - 0x77], 0x53
mov byte [ebp - 0x76], 0x41
mov byte [ebp - 0x75], 0x31
mov byte [ebp - 0x74], 0
mov byte [ebp - 0x73], 2
mov byte [ebp - 0x72], 0
mov byte [ebp - 0x71], 0
mov byte [ebp - 0x70], 1
mov byte [ebp - 0x6f], 0
mov byte [ebp - 0x6e], 1
mov byte [ebp - 0x6d], 0
mov byte [ebp - 0x6c], 0x91
mov byte [ebp - 0x6b], 0xc8
mov byte [ebp - 0x6a], 0xb0
mov byte [ebp - 0x69], 0x9a
mov byte [ebp - 0x68], 0x2c
mov byte [ebp - 0x67], 0x39
mov byte [ebp - 0x66], 0xd2
mov byte [ebp - 0x65], dl
mov byte [ebp - 0x64], 0x5e
mov byte [ebp - 0x63], 0x8f
mov byte [ebp - 0x62], 0x6f
mov byte [ebp - 0x61], 0x15
mov byte [ebp - 0x60], 0x2a
mov byte [ebp - 0x5f], 0xe7
mov byte [ebp - 0x5e], 0x4f
mov byte [ebp - 0x5d], 0xbd
mov byte [ebp - 0x5c], 0x66
mov byte [ebp - 0x5b], 0xff
mov byte [ebp - 0x5a], 0x4e
mov byte [ebp - 0x58], 0x8c
mov byte [ebp - 0x57], 0xb3
mov byte [ebp - 0x56], 0xc0
mov byte [ebp - 0x54], 0x98
mov byte [ebp - 0x53], cl
mov byte [ebp - 0x52], 0xb2
mov byte [ebp - 0x51], 0xdc
mov byte [ebp - 0x50], 0x81
mov byte [ebp - 0x4f], 0x43
mov byte [ebp - 0x4e], 0x51
mov byte [ebp - 0x4d], 0xbc
mov byte [ebp - 0x4c], 0xf3
mov byte [ebp - 0x4b], 0xd6
mov byte [ebp - 0x4a], 0x74
mov byte [ebp - 0x49], 0x50
mov byte [ebp - 0x48], 0x7f
mov byte [ebp - 0x47], 0x39
mov byte [ebp - 0x46], 0x87
mov byte [ebp - 0x45], al
mov byte [ebp - 0x44], 0x1b
mov byte [ebp - 0x3e], al
mov eax, dword [ebx]
cmp eax, 0xffffffff
mov byte [ebp - 0x43], 0x5c
mov byte [ebp - 0x42], 6
mov byte [ebp - 0x41], 0x36
mov byte [ebp - 0x40], 0x47
mov byte [ebp - 0x3f], 8
mov byte [ebp - 0x3d], 0xd8
mov byte [ebp - 0x3c], 0x63
mov byte [ebp - 0x3b], 0xad
mov byte [ebp - 0x3a], 0xfd
mov byte [ebp - 0x39], 0x6d
mov byte [ebp - 0x38], 0xb5
mov byte [ebp - 0x37], 0xa4
mov byte [ebp - 0x36], 0x94
mov byte [ebp - 0x35], 0xf0
mov byte [ebp - 0x34], 0xe0
mov byte [ebp - 0x33], 0xdf
mov byte [ebp - 0x32], 0xea
mov byte [ebp - 0x31], 0xc5
mov byte [ebp - 0x30], cl
mov byte [ebp - 0x2f], dl
mov byte [ebp - 0x2e], 0xdc
mov byte [ebp - 0x2d], 0xd2
jne 0x8c1c9a
mov edi, 0xaea3ac
or ecx, 0xffffffff
xor eax, eax
mov dword [ebx + 0x1438], 0
mov dword [ebx + 0x143c], 0x3e8
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 3
jbe 0x8c1700
cmp byte [0xaea3ad], 0x3a
je 0x8c1700
lea edx, [ebp - 0x740]
push 0x104
push edx
push 0
call dword [sym.imp.kernel32.dll_GetModuleFileNameA]
lea eax, [ebp - 0x740]
push 0x5c
push eax
call fcn.008612da
add esp, 8
lea edx, [eax + 1]
test eax, eax
jne 0x8c1706
lea edx, [ebp - 0x740]
mov edi, 0xaea3ac
or ecx, 0xffffffff
xor eax, eax
push 0x2e
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [ebp - 0x740]
push ecx
call fcn.008612da
mov byte [eax], 0
mov ecx, 0x40
xor eax, eax
lea edi, [ebp - 0x537]
mov byte [ebp - 0x538], 0
mov byte [ebp - 0x434], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0x40
xor eax, eax
lea edi, [ebp - 0x433]
add esp, 8
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0xb8]
lea edx, [ebp - 0xb8]
push 1
push eax
mov dword [ebp - 0x94], 0xc
mov dword [ebp - 0x90], edx
mov dword [ebp - 0x8c], 0
xor esi, esi
call dword [sym.imp.advapi32.dll_InitializeSecurityDescriptor]
test eax, eax
je 0x8c17be
push esi
push esi
lea ecx, [ebp - 0xb8]
push 1
push ecx
call dword [sym.imp.advapi32.dll_SetSecurityDescriptorDacl]
test eax, eax
je 0x8c17be
lea esi, [ebp - 0x94]
push 0xa37bf8
call fcn.008c94e0
add esp, 4
push eax
push 0
push esi
call dword [sym.imp.kernel32.dll_CreateMutexA]
mov esi, eax
test esi, esi
jne 0x8c17e3
call dword [sym.imp.kernel32.dll_GetLastError]
jmp 0x8c1804
call dword [sym.imp.kernel32.dll_GetLastError]
cmp eax, 0xb7
push esi
jne 0x8c17fe
call dword [sym.imp.kernel32.dll_CloseHandle]
mov esi, 1
jmp 0x8c1806
call dword [sym.imp.kernel32.dll_CloseHandle]
xor esi, esi
or edi, 0xffffffff
cmp edi, 0xffffffff
jne 0x8c182b
lea edx, [ebp - 0x740]
lea eax, [ebp - 0x538]
push edx
push 0xa384e0
push eax
call fcn.00858bf5
add esp, 0xc
jmp 0x8c1847
lea ecx, [ebp - 0x740]
push edi
push ecx
lea edx, [ebp - 0x538]
push 0xa384d4
push edx
call fcn.00858bf5
add esp, 0x10
lea eax, [ebp - 0x538]
push 0
push eax
call fcn.008cb285
add esp, 8
cmp eax, 0xffffffff
jne 0x8c1862
cmp edi, 1
jge 0x8c1879
test esi, esi
jne 0x8c1873
lea ecx, [ebp - 0x538]
push ecx
call dword [sym.imp.kernel32.dll_DeleteFileA]
inc edi
cmp edi, 0x63
jle 0x8c1809
cmp edi, 0xffffffff
jle 0x8c1926
lea esi, [edi - 1]
cmp esi, 0xffffffff
jne 0x8c18a7
lea edx, [ebp - 0x740]
lea eax, [ebp - 0x538]
push edx
push 0xa384e0
push eax
call fcn.00858bf5
add esp, 0xc
jmp 0x8c18c3
lea ecx, [ebp - 0x740]
push esi
push ecx
lea edx, [ebp - 0x538]
push 0xa384d4
push edx
call fcn.00858bf5
add esp, 0x10
lea eax, [ebp - 0x740]
push edi
push eax
lea ecx, [ebp - 0x434]
push 0xa384d4
push ecx
call fcn.00858bf5
add esp, 0x10
lea edx, [ebp - 0x434]
lea eax, [ebp - 0x538]
push 1
push edx
push eax
call dword [sym.imp.kernel32.dll_MoveFileExA]
test eax, eax
jne 0x8c191b
lea ecx, [ebp - 0x434]
push eax
lea edx, [ebp - 0x538]
push ecx
push edx
call dword [sym.imp.kernel32.dll_CopyFileA]
lea eax, [ebp - 0x538]
push eax
call dword [sym.imp.kernel32.dll_DeleteFileA]
dec edi
dec esi
cmp edi, 0xffffffff
jg 0x8c1885
lea ecx, [ebp - 0x740]
lea edx, [ebp - 0x538]
push ecx
push 0xa384e0
push edx
call fcn.00858bf5
add esp, 0xc
mov esi, dword [sym.imp.kernel32.dll_CreateFileA]
lea eax, [ebp - 0x538]
push 0
push 0x80000080
push 2
push 0
push 5
push 0xc0000000
push eax
call esi
cmp eax, 0xffffffff
mov dword [ebx], eax
jne 0x8c1986
push 0
push 0x80000080
push 2
push 0
push 1
lea ecx, [ebp - 0x538]
push 0xc0000000
push ecx
call esi
mov dword [ebx], eax
cmp dword [ebx], 0xffffffff
je 0x8c1c9a
lea esi, [ebx + 0x101c]
push esi
call dword [sym.imp.kernel32.dll_GetLocalTime]
xor edx, edx
xor eax, eax
mov dx, word [ebx + 0x102a]
mov ax, word [ebx + 0x1028]
push edx
xor ecx, ecx
mov cx, word [ebx + 0x1026]
xor edx, edx
mov dx, word [ebx + 0x1024]
push eax
push ecx
xor eax, eax
mov ax, word [ebx + 0x1022]
push edx
xor ecx, ecx
xor edx, edx
mov cx, word [ebx + 0x101e]
mov dx, word [esi]
push eax
push ecx
push edx
push 0xa38484
lea edi, [ebx + 0x1c]
call fcn.008c9470
add esp, 4
push eax
push edi
call fcn.00858bf5
or ecx, 0xffffffff
xor eax, eax
add esp, 0x24
repne scasb al, byte es:[edi]
mov eax, dword [ebx + 0x143c]
not ecx
dec ecx
cmp eax, 0x3e7
mov dword [ebp - 0xc], ecx
jne 0x8c1a19
mov dword [ebp - 0xc], 0
mov eax, dword [ebx + 0x1438]
test eax, eax
je 0x8c1a60
mov eax, dword [ebp - 0xc]
test eax, eax
jle 0x8c1c80
mov esi, dword [ebp - 0xc]
mov edi, 0xffffffe4
lea eax, [ebx + 0x1c]
sub edi, ebx
mov ecx, 2
mov edx, dword [ebx + 0x1438]
add edx, ecx
mov dword [ebx + 0x1438], edx
add dl, 0x43
xor byte [eax], dl
inc eax
lea edx, [edi + eax]
cmp edx, esi
jl 0x8c1a40
jmp 0x8c1c80
xor edi, edi
mov di, word [ebx + 0x102a]
call dword [sym.imp.kernel32.dll_GetTickCount]
mov dx, word [ebx + 0x1028]
mov cx, word [ebx + 0x1026]
add eax, edi
add eax, edx
mov dx, word [ebx + 0x1022]
add ecx, eax
mov ax, word [esi]
imul eax, edx
mov dx, word [ebx + 0x101e]
mov esi, 0xa
imul eax, edx
imul eax, edi
inc eax
xor edx, edx
imul ecx, eax
and ecx, 0xffff
or ecx, 0xfc000000
mov eax, ecx
div esi
xor edx, 0x55
shl edx, 0x10
or edx, ecx
mov dword [ebx + 0x102c], edx
call dword [sym.imp.kernel32.dll_GetTickCount]
push eax
call fcn.00858798
add esp, 4
xor esi, esi
call fcn.008587a5
and eax, 0x800000ff
jns 0x8c1aea
dec eax
or eax, 0xffffff00
inc eax
mov byte [ebp + esi - 0x98], al
inc esi
cmp esi, 0x10
jl 0x8c1ad7
lea ecx, [ebp - 0x98]
lea eax, [ebx + 0x1030]
push ecx
push 0x10
push eax
call fcn.008c8d30
add esp, 0xc
xor edi, edi
lea edx, [ebp - 8]
mov dword [ebp - 8], edi
push 0xf0000000
push 1
push 0xa38458
push edi
push edx
mov dword [ebp - 0x1c], edi
call dword [sym.imp.advapi32.dll_CryptAcquireContextA]
test eax, eax
je 0x8c1c68
mov edx, dword [ebp - 8]
lea eax, [ebp - 0x1c]
push eax
push edi
push edi
lea ecx, [ebp - 0x80]
push 0x54
push ecx
push edx
call dword [sym.imp.advapi32.dll_CryptImportKey]
test eax, eax
je 0x8c1c5d
mov ecx, dword [ebp - 0x1c]
lea eax, [ebp - 0x14]
push edi
push eax
push edi
push edi
push 1
push edi
push ecx
mov dword [ebp - 0x14], edi
call dword [sym.imp.advapi32.dll_CryptEncrypt]
mov esi, dword [ebp - 0x14]
cmp esi, edi
je 0x8c1c05
push esi
call fcn.008581c5
mov edi, eax
mov eax, dword [ebp - 0x98]
mov edx, edi
mov dword [ebp - 0x14], 0x10
add esp, 4
mov dword [edx], eax
mov ecx, dword [ebp - 0x94]
push esi
mov dword [edx + 4], ecx
mov eax, dword [ebp - 0x90]
mov dword [edx + 8], eax
mov ecx, dword [ebp - 0x8c]
mov dword [edx + 0xc], ecx
mov al, byte [edi]
lea edx, [ebp - 0x14]
xor al, 0x23
push edx
push edi
mov byte [edi], al
mov eax, dword [ebp - 0x1c]
push 0
push 1
push 0
push eax
call dword [sym.imp.advapi32.dll_CryptEncrypt]
test eax, eax
je 0x8c1bfa
mov eax, dword [ebx]
lea ecx, [ebp - 0x14]
push 0
push ecx
lea edx, [ebp - 0x18]
push 4
push edx
push eax
mov dword [ebp - 0x18], 0xccfc00
call dword [sym.imp.kernel32.dll_WriteFile]
mov edx, dword [ebx]
lea ecx, [ebp - 0x14]
push 0
push ecx
push esi
push edi
push edx
call dword [sym.imp.kernel32.dll_WriteFile]
push edi
call fcn.00857e98
add esp, 4
jmp 0x8c1c51
mov edx, dword [ebx]
mov esi, dword [sym.imp.kernel32.dll_WriteFile]
lea eax, [ebp - 0x14]
push edi
push eax
lea ecx, [ebp - 0x18]
push 4
push ecx
push edx
mov dword [ebp - 0x18], 0xccfd00
call esi
xor eax, eax
mov cl, byte [ebp + eax - 0x98]
mov dl, byte [ebp + eax - 0x6b]
xor cl, dl
mov byte [ebp + eax - 0xb4], cl
inc eax
cmp eax, 0x10
jl 0x8c1c24
mov ecx, dword [ebx]
lea edx, [ebp - 0x14]
push edi
push edx
lea eax, [ebp - 0xb4]
push 0x10
push eax
push ecx
call esi
mov edx, dword [ebp - 0x1c]
push edx
call dword [sym.imp.advapi32.dll_CryptDestroyKey]
xor edi, edi
mov eax, dword [ebp - 8]
push edi
push eax
call dword [sym.imp.advapi32.dll_CryptReleaseContext]
mov ecx, dword [ebp - 0xc]
lea eax, [ebx + 0x1c]
push eax
push eax
lea eax, [ebx + 0x1030]
push ecx
push eax
call fcn.008c8e20
add esp, 0x10
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebx]
lea edx, [ebp - 0x84]
push 0
push edx
push eax
lea eax, [ebx + 0x1c]
push eax
push ecx
call dword [sym.imp.kernel32.dll_WriteFile]
push 0xa3843c
push 0x4c
push 0xa3840c
call fcn.008c9470
add esp, 4
push eax
push ebx
call fcn.008c3720
mov esi, dword [ebp - 4]
mov edx, dword [ebp + 8]
add esp, 0x10
mov eax, dword [esi + 0x2b10]
push fcn.008c0bb0
push edx
push eax
push 0xa383cc
call fcn.008c94e0
add esp, 4
push eax
push ebx
call fcn.008c3720
add esp, 0x14
call fcn.008c5000
call fcn.008c50e0
mov ecx, esi
call fcn.008c1040
push 0xa383c4
call fcn.008c94e0
add esp, 4
push eax
push ebx
call fcn.008c3720
add esp, 8
lea ecx, [ebp - 0x22c]
push 0x104
push ecx
mov ecx, esi
call fcn.008c39d0
mov edi, 0xa384f8
or ecx, 0xffffffff
xor eax, eax
lea edx, [ebp - 0x22c]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 0xa383b8
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov eax, dword [ebp - 4]
and ecx, 3
lea edx, [ebp - 0x22c]
rep movsb byte es:[edi], byte [esi]
lea edi, [eax + 0x2b14]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.008c94e0
lea edx, [ebp - 0x22c]
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push eax
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea eax, [ebp - 0x22c]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
call fcn.008cb285
add esp, 0xc
cmp eax, 0xffffffff
jne 0x8c1e83
lea ecx, [ebp - 0x22c]
push 0x104
push ecx
mov ecx, dword [ebp - 4]
call fcn.008c3a20
mov edi, 0xa384f8
or ecx, 0xffffffff
xor eax, eax
lea edx, [ebp - 0x22c]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 0xa383b8
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov eax, dword [ebp - 4]
and ecx, 3
lea edx, [ebp - 0x22c]
rep movsb byte es:[edi], byte [esi]
lea edi, [eax + 0x2b14]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.008c94e0
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
add esp, 4
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [ebp - 0x22c]
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [ebp - 4]
lea eax, [ebp - 0x22c]
push 1
push eax
lea esi, [edi + 0x2ac8]
mov ecx, esi
call fcn.008c7a90
test al, al
je 0x8c1fc8
mov ecx, dword [0xa37b24]
push ecx
call fcn.008c94e0
add esp, 4
add eax, 5
lea edx, [ebp - 0x1f40]
mov ecx, esi
push eax
push 0x7ff
lea eax, [ebp - 0x22c]
push edx
push eax
call fcn.008c7f60
test al, al
je 0x8c1fc8
push 0xa383ac
call fcn.008c9470
add esp, 4
lea ecx, [ebp - 0x1f40]
lea edx, [ebp - 0xc4]
mov esi, eax
push ecx
push 0x20
push edx
push 0xa383a0
call fcn.008c9470
add esp, 4
push eax
push 0xa38390
call fcn.008c94e0
add esp, 4
push eax
push esi
call fcn.008c9730
add esp, 0x18
lea eax, [ebp - 0x1f40]
push eax
push 0
push 0xa38380
call fcn.008c94e0
add esp, 4
push eax
push esi
call fcn.008c96c0
add esp, 0x10
lea ecx, [ebp - 0x1f40]
mov dword [0xaea91c], eax
push ecx
push 0
push 0xa38370
call fcn.008c94e0
add esp, 4
push eax
push esi
call fcn.008c96c0
mov dword [0xaeaa24], eax
lea eax, [edi + 0x2b14]
lea edx, [ebp - 0xc4]
push eax
push edx
call fcn.0086118f
add esp, 0x18
test eax, eax
jne 0x8c1fc8
lea eax, [ebp - 0x1f40]
push eax
push 0
push 0xa38364
call fcn.008c94e0
add esp, 4
push eax
push esi
call fcn.008c96c0
add esp, 0x10
lea ecx, [ebp - 0x1f40]
mov dword [0xaea6d0], eax
push ecx
push 0
push 0xa38354
call fcn.008c94e0
add esp, 4
push eax
push esi
call fcn.008c96c0
add esp, 0x10
mov dword [0xaea6e4], eax
mov al, byte [edi + 0x2b90]
test al, al
je 0x8c1fdc
push 1
call fcn.008c6c50
add esp, 4
push 1
push 0x251c
mov ecx, edi
call fcn.008c4200
test eax, eax
jne 0x8c20ef
push 0xa38338
call fcn.008c94e0
add esp, 4
push eax
push ebx
call fcn.008c3720
push 0xa38324
call fcn.008c94e0
mov edi, dword [sym.imp.kernel32.dll_OpenMutexA]
add esp, 0xc
push eax
push 0
push 0x100000
call edi
mov esi, eax
test esi, esi
jne 0x8c20e5
push 0xa38318
call fcn.008c94e0
add esp, 4
push eax
push esi
push 0x100000
call edi
mov esi, eax
test esi, esi
jne 0x8c20e5
mov dword [ebp - 8], eax
test esi, esi
jne 0x8c20e5
push 0x64
call dword [sym.imp.kernel32.dll_Sleep]
push 0xa38324
call fcn.008c94e0
add esp, 4
push eax
push esi
push 0x100000
call edi
mov esi, eax
test esi, esi
jne 0x8c2094
push 0xa38318
call fcn.008c94e0
add esp, 4
push eax
push esi
push 0x100000
call edi
mov esi, eax
push 0xa38304
call fcn.008c94e0
add esp, 4
push eax
push 0
push 0x100000
call edi
test eax, eax
jne 0x8c20ca
push 0xa382f8
call fcn.008c94e0
add esp, 4
push eax
push 0
push 0x100000
call edi
test eax, eax
je 0x8c20e1
push eax
call dword [sym.imp.kernel32.dll_CloseHandle]
mov eax, dword [ebp - 8]
inc eax
cmp eax, 0x5f
mov dword [ebp - 8], eax
jl 0x8c2050
test esi, esi
je 0x8c20ec
push esi
call dword [sym.imp.kernel32.dll_CloseHandle]
mov edi, dword [ebp - 4]
push 0
mov ecx, edi
call fcn.008c4320
test eax, eax
jne 0x8c2198
mov esi, dword [0xaea6fc]
push 0xa382e4
inc esi
mov dword [0xaea6fc], esi
call fcn.008c94e0
add esp, 4
push eax
push 0
push 0x100000
call dword [sym.imp.kernel32.dll_OpenEventA]
mov esi, eax
test esi, esi
jne 0x8c2159
push 0xc8
call dword [sym.imp.kernel32.dll_Sleep]
push 0xa382e4
call fcn.008c94e0
add esp, 4
push eax
push esi
push 0x100000
call dword [sym.imp.kernel32.dll_OpenEventA]
mov esi, eax
test esi, esi
je 0x8c2198
push 0
push esi
call dword [sym.imp.kernel32.dll_WaitForSingleObject]
cmp eax, 0x102
je 0x8c2191
push 0x251c
mov ecx, edi
call fcn.008c4320
test eax, eax
jne 0x8c2187
pop edi
pop esi
mov eax, 0x6e
pop ebx
mov esp, ebp
pop ebp
ret 4
mov dword [0xaea6fc], 0
push esi
call dword [sym.imp.kernel32.dll_CloseHandle]
call dword [sym.imp.kernel32.dll_GetTickCount]
and eax, 0xfff00000
mov dword [ebp - 0x18], eax
mov eax, dword [0xaea700]
test eax, eax
jne 0x8c21c4
mov eax, dword [0xaea6fc]
test eax, eax
jne 0x8c21c4
mov edx, dword [ebp + 8]
push edx
call fcn.008c7270
add esp, 4
mov esi, dword [sym.imp.kernel32.dll_CreateEventA]
push 0
push 0
lea eax, [ebp - 0xa4]
push 0
push eax
mov dword [ebp - 0xa4], 0xc
mov dword [ebp - 0xa0], 0
mov dword [ebp - 0x9c], 1
call esi
test eax, eax
mov dword [edi + 0x2b8c], eax
jne 0x8c2213
mov esi, dword [sym.imp.kernel32.dll_GetLastError]
call esi
call esi
push eax
push 0xa382c0
jmp 0x8c2264
push 0
push 0
lea ecx, [ebp - 0xa4]
push 1
push ecx
call esi
test eax, eax
mov dword [edi + 0x18], eax
jne 0x8c223b
mov esi, dword [sym.imp.kernel32.dll_GetLastError]
call esi
call esi
push eax
push 0xa3829c
jmp 0x8c2264
push 0
push 0
lea edx, [ebp - 0xa4]
push 0
push edx
call esi
test eax, eax
mov dword [edi + 0x2b88], eax
jne 0x8c2284
mov esi, dword [sym.imp.kernel32.dll_GetLastError]
call esi
call esi
push eax
push 0xa38278
call fcn.008c94e0
add esp, 4
push eax
push ebx
call fcn.008c3720
add esp, 0xc
mov eax, 0xab
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0xa38270
call fcn.008c94e0
add esp, 4
push eax
push ebx
call fcn.008c3720
mov ecx, dword [ebp - 4]
add esp, 8
lea eax, [ebp - 0x330]
push 0x104
push eax
call fcn.008c3a20
mov edi, 0xa384f8
or ecx, 0xffffffff
xor eax, eax
lea edx, [ebp - 0x330]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 0xa3825c
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.008c94e0
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
lea edx, [ebp - 0x330]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push eax
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea eax, [ebp - 0x330]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
call fcn.008cb285
add esp, 0xc
cmp eax, 0xffffffff
jne 0x8c2357
lea ecx, [ebp - 0x330]
push ecx
push 0xa38248
call fcn.008c94e0
add esp, 4
push eax
push ebx
call fcn.008c3720
add esp, 0xc
mov eax, 0x99
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
lea edx, [ebp - 0x330]
lea eax, [ebp - 0x330]
push edx
push eax
call fcn.0085a1d0
add esp, 8
test eax, eax
je 0x8c238f
lea ecx, [ebp - 0x330]
push ecx
push 0xa38230
call fcn.008c94e0
add esp, 4
push eax
push ebx
call fcn.008c3720
add esp, 0xc
mov esi, dword [ebp - 4]
lea edx, [ebp - 0x330]
push 1
push edx
lea ecx, [esi + 0x2ac8]
mov byte [ebp - 0xd], 0
call fcn.008c7a90
test al, al
jne 0x8c255a
mov byte [ebp + 0xb], al
mov eax, dword [esi + 0x2b0c]
cmp eax, 8
jne 0x8c23d1
call dword [sym.imp.kernel32.dll_GetLastError]
cmp eax, 0x80090006
jne 0x8c23d1
mov byte [ebp + 0xb], 1
call dword [sym.imp.kernel32.dll_GetLastError]
mov edi, dword [esi + 0x2b0c]
lea eax, [ebp - 0x330]
push eax
call dword [sym.imp.kernel32.dll_GetLastError]
push eax
push edi
push 0xa38214
call fcn.008c94e0
add esp, 4
push eax
push ebx
call fcn.008c3720
add esp, 0x14
lea ecx, [ebp - 0x330]
push 0
push 0x80
push 3
push 0
push 3
push closesocket
push ecx
call dword [sym.imp.kernel32.dll_CreateFileA]
mov edi, eax
cmp edi, 0xffffffff
jne 0x8c2450
lea edx, [ebp - 0x330]
push edx
call dword [sym.imp.kernel32.dll_GetLastError]
push eax
push 0xa381fc
call fcn.008c94e0
add esp, 4
push eax
push ebx
call fcn.008c3720
add esp, 0x10
jmp 0x8c24bd
push 0
push edi
call dword [sym.imp.kernel32.dll_GetFileSize]
push eax
push 0xa381ec
call fcn.008c94e0
add esp, 4
push eax
push ebx
call fcn.008c3720
add esp, 0xc
push 2
push 0
push 0xfffffffffffffffc
push edi
call dword [sym.imp.kernel32.dll_SetFilePointer]
lea eax, [ebp - 0x84]
push 0
push eax
lea ecx, [ebp - 8]
push 4
push ecx
push edi
mov dword [ebp - 8], 0
call dword [sym.imp.kernel32.dll_ReadFile]
mov edx, dword [ebp - 8]
push edx
push 0xa381dc
call fcn.008c94e0
add esp, 4
push eax
push ebx
call fcn.008c3720
add esp, 0xc
push edi
call dword [sym.imp.kernel32.dll_CloseHandle]
mov al, byte [ebp + 0xb]
test al, al
je 0x8c2535
mov al, byte [esi + 0x2b7d]
test al, al
jne 0x8c2505
call fcn.008c5fd0
test al, al
je 0x8c2505
lea eax, [ebp - 0x330]
push 1
push eax
lea ecx, [esi + 0x2ac8]
call fcn.008c7a90
test al, al
jne 0x8c2517
cmp dword [esi + 0x2b0c], 8
jne 0x8c2513
call dword [sym.imp.kernel32.dll_GetLastError]
cmp eax, 0x80090006
jne 0x8c2513
pop edi
pop esi
mov eax, 0x9b
pop ebx
mov esp, ebp
pop ebp
ret 4
mov byte [ebp - 0xd], 1
push 0xa381c4
call fcn.008c94e0
add esp, 4
push eax
push ebx
call fcn.008c3720
mov al, byte [ebp - 0xd]
add esp, 8
test al, al
je 0x8c255a
push 0xa381a0
call fcn.008c94e0
add esp, 4
push eax
push ebx
call fcn.008c3720
add esp, 8
mov eax, 0x7c
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0xa38198
call fcn.008c94e0
add esp, 4
push eax
push ebx
call fcn.008c3720
mov ecx, 0x11
xor eax, eax
lea edi, [ebp - 0x128]
mov edx, dword [0xa37b28]
rep stosd dword es:[edi], eax
xor ecx, ecx
mov eax, dword [0xaea6fc]
mov dword [ebp - 0x2c], ecx
add esp, 8
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x128], 0x44
mov dword [ebp - 0x24], ecx
push 0xaea708
mov dword [ebp - 0x20], ecx
mov ecx, dword [esi + 0x2b10]
push edx
mov edx, dword [esi + 0x18]
push eax
mov eax, dword [esi + 0x2b8c]
push ecx
mov ecx, dword [ebp - 0x18]
push edx
push eax
lea eax, [esi + 0x2b14]
push eax
push ecx
push 0xa38178
call fcn.008c94e0
add esp, 4
lea edx, [ebp - 0x638]
push eax
push edx
call dword [sym.imp.user32.dll_wsprintfA]
add esp, 0x28
lea eax, [ebp - 0x638]
push eax
push 0xa3816c
call fcn.008c94e0
add esp, 4
push eax
push ebx
call fcn.008c3720
lea ecx, [ebp - 0x638]
push ecx
call fcn.008c93d0
mov dword [ebp + 8], eax
lea edi, [ebp - 0x638]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x10
lea edx, [ebp - 0x1740]
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [ebp - 0xc], edx
mov edi, ecx
push edi
push 0xa38160
call fcn.008c94e0
add esp, 4
push eax
push ebx
call fcn.008c3720
lea eax, [edi + 4]
add esp, 0xc
test eax, eax
jle 0x8c267a
mov edi, dword [ebp - 0xc]
mov dword [ebp - 8], eax
mov ecx, dword [ebp + 8]
xor eax, eax
mov al, byte [ecx]
inc ecx
push eax
push 0xa38158
push edi
mov dword [ebp + 8], ecx
call dword [sym.imp.user32.dll_wsprintfA]
add edi, eax
mov eax, dword [ebp - 8]
add esp, 0xc
dec eax
mov dword [ebp - 8], eax
jne 0x8c2652
jmp 0x8c267d
mov edi, dword [ebp - 0xc]
lea eax, [ebp - 0x1740]
mov byte [edi], 0
push eax
push 0xa3814c
call fcn.008c94e0
add esp, 4
push eax
push ebx
call fcn.008c3720
mov eax, dword [0xaea700]
xor edi, edi
add esp, 0xc
cmp eax, edi
mov dword [ebp - 8], edi
jne 0x8c27cd
lea ecx, [ebp - 0x2c]
lea edx, [ebp - 0x128]
push ecx
push edx
push edi
push edi
push edi
push 1
push edi
lea eax, [ebp - 0x1740]
push edi
lea ecx, [ebp - 0x330]
push eax
push ecx
call dword [sym.imp.kernel32.dll_CreateProcessA]
test eax, eax
je 0x8c26f8
mov esi, dword [sym.imp.kernel32.dll_GetLastError]
call esi
lea edx, [ebp - 0x638]
push edx
call esi
push eax
lea eax, [ebp - 0x330]
push eax
jmp 0x8c3172
mov ecx, dword [ebp - 0x24]
push ecx
push 0xa38140
call fcn.008c94e0
add esp, 4
push eax
push ebx
call fcn.008c3720
mov edx, dword [esi + 0x2b8c]
mov eax, dword [ebp - 0x2c]
add esp, 0xc
lea ecx, [ebp - 0x88]
mov dword [ebp + 8], edi
mov dword [ebp - 0x88], edx
push 0xffffffffffffffff
push edi
push ecx
push 2
mov dword [ebp - 0x84], eax
call dword [sym.imp.kernel32.dll_WaitForMultipleObjects]
test eax, eax
je 0x8c27aa
mov eax, dword [ebp - 0x2c]
lea edx, [ebp + 8]
push edx
push eax
call dword [sym.imp.kernel32.dll_GetExitCodeProcess]
test eax, eax
jne 0x8c2771
call dword [sym.imp.kernel32.dll_GetLastError]
push eax
push 0xa3811c
call fcn.008c94e0
add esp, 4
push eax
push ebx
call fcn.008c3720
add esp, 0xc
mov ecx, dword [ebp + 8]
push ecx
push 0xa380f8
call fcn.008c94e0
add esp, 4
push eax
push ebx
call fcn.008c3720
mov edx, dword [ebp - 0x2c]
mov esi, dword [sym.imp.kernel32.dll_CloseHandle]
add esp, 0xc
push edx
call esi
mov eax, dword [ebp - 0x28]
push eax
call esi
mov eax, dword [ebp + 8]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0xa380f0
call fcn.008c94e0
add esp, 4
push eax
push ebx
call fcn.008c3720
lea ecx, [ebp - 0x2c]
push ecx
call fcn.008c5a20
add esp, 0xc
mov dword [ebp - 8], eax
mov edx, dword [ebp - 0x2c]
mov esi, dword [sym.imp.kernel32.dll_CloseHandle]
push edx
call esi
mov eax, dword [ebp - 0x28]
push eax
call esi
lea ecx, [ebp - 0x22c]
push 0x104
push ecx
mov ecx, dword [ebp - 4]
call fcn.008c39d0
mov edi, 0xa384f8
or ecx, 0xffffffff
xor eax, eax
lea edx, [ebp - 0x22c]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 0xa383b8
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov eax, dword [ebp - 4]
and ecx, 3
lea edx, [ebp - 0x22c]
rep movsb byte es:[edi], byte [esi]
lea edi, [eax + 0x2b14]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.008c94e0
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
add esp, 4
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [ebp - 0x22c]
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea eax, [ebp - 0x22c]
and ecx, 3
push 1
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp - 4]
push eax
add ecx, 0x2ac8
call fcn.008c7a90
test al, al
jne 0x8c28e6
mov edi, dword [sym.imp.kernel32.dll_GetLastError]
call edi
mov edx, dword [ebp - 4]
mov esi, dword [edx + 0x2b0c]
call edi
push eax
push esi
push 0xa380d8
call fcn.008c94e0
add esp, 4
push eax
push ebx
call fcn.008c3720
add esp, 0x10
mov eax, 0x78
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov eax, dword [0xa37b24]
push eax
call fcn.008c94e0
mov esi, dword [ebp - 4]
add esp, 4
add eax, 5
lea ecx, [ebp - 0xf40]
push eax
push 0x7ff
lea edx, [ebp - 0x22c]
push ecx
push edx
lea ecx, [esi + 0x2ac8]
call fcn.008c7f60
test al, al
jne 0x8c2954
mov edi, dword [sym.imp.kernel32.dll_GetLastError]
call edi
mov esi, dword [esi + 0x2b0c]
call edi
push eax
push esi
push 0xa380b8
call fcn.008c94e0
add esp, 4
push eax
push ebx
call fcn.008c3720
add esp, 0x10
mov eax, 0x82
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0xa383ac
call fcn.008c9470
add esp, 4
mov edi, eax
lea eax, [ebp - 0xf40]
lea ecx, [ebp - 0xe4]
push eax
push 0x20
push ecx
push 0xa383a0
call fcn.008c9470
add esp, 4
push eax
push 0xa38390
call fcn.008c94e0
add esp, 4
push eax
push edi
call fcn.008c9730
lea eax, [esi + 0x2b14]
lea edx, [ebp - 0xe4]
push eax
push edx
call fcn.0086118f
add esp, 0x20
test eax, eax
je 0x8c29d4
push 0xa380a0
call fcn.008c94e0
add esp, 4
push eax
push ebx
call fcn.008c3720
add esp, 8
mov eax, 0x8e
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
lea eax, [ebp - 0xf40]
push eax
push 1
push 0xa38364
call fcn.008c94e0
add esp, 4
push eax
push edi
call fcn.008c96c0
add esp, 0x10
lea ecx, [ebp - 0xf40]
mov dword [0xaea6d0], eax
push ecx
push 0x186a0
push 0xa38090
call fcn.008c94e0
add esp, 4
push eax
push edi
call fcn.008c96c0
add esp, 0x10
lea edx, [ebp - 0xf40]
mov dword [0xaea6dc], eax
push edx
push 0
push 0xa38080
call fcn.008c94e0
add esp, 4
push eax
push edi
call fcn.008c96c0
add esp, 0x10
mov dword [0xaea6e0], eax
lea eax, [ebp - 0xf40]
push eax
push 0
push 0xa38070
call fcn.008c94e0
add esp, 4
push eax
push edi
call fcn.008c96c0
add esp, 0x10
lea ecx, [ebp - 0xf40]
push ecx
push 0
push 0xa38064
call fcn.008c94e0
add esp, 4
push eax
push edi
call fcn.008c96c0
add esp, 0x10
lea edx, [ebp - 0xf40]
mov dword [ebp + 8], eax
push edx
push 0
push 0xa38354
call fcn.008c94e0
add esp, 4
push eax
push edi
call fcn.008c96c0
add esp, 0x10
mov dword [0xaea6e4], eax
lea eax, [ebp - 0xf40]
push eax
push 0
push 0xa38054
call fcn.008c94e0
add esp, 4
push eax
push edi
call fcn.008c96c0
add esp, 0x10
lea ecx, [ebp - 0xf40]
mov dword [ebp - 0x18], eax
push ecx
push 0
push 0xa38040
call fcn.008c94e0
add esp, 4
push eax
push edi
call fcn.008c96c0
add esp, 0x10
lea edx, [ebp - 0xf40]
mov dword [0xaea6e8], eax
push edx
push 0
push 0xa3802c
call fcn.008c94e0
add esp, 4
push eax
push edi
call fcn.008c96c0
mov esi, dword [ebp - 4]
add esp, 0x10
shr eax, 1
not al
and al, 1
mov byte [esi + 0x22], al
lea eax, [ebp - 0xf40]
push eax
push 0x3e8
push 0xa38014
call fcn.008c94e0
add esp, 4
push eax
push edi
call fcn.008c96c0
add esp, 0x10
lea ecx, [ebp - 0xf40]
mov dword [esi + 0x2b80], eax
push ecx
push 0
push 0xa38000
call fcn.008c94e0
add esp, 4
push eax
push edi
call fcn.008c96c0
add esp, 0x10
lea edx, [ebp - 0xf40]
mov dword [esi + 0x2b84], eax
push edx
push 0x100
push 0xaea818
push 0x8f8814
push 0xa37ff0
call fcn.008c94e0
add esp, 4
push eax
push edi
call fcn.008c9730
mov ecx, 0x200
xor eax, eax
lea edi, [ebp - 0xf40]
push 0xa37fe8
rep stosd dword es:[edi], eax
call fcn.008c94e0
add esp, 0x1c
push eax
push ebx
call fcn.008c3720
add esp, 8
mov ecx, esi
push 0x104
push 0xaea5c0
call fcn.008c39d0
mov edi, 0xa384f8
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, 0xaea5c0
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
dec edi
mov ecx, edx
push 0xa37fd8
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.008c94e0
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
add esp, 4
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, 0xaea5c0
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov eax, dword [0xaeaa28]
mov ecx, edx
and ecx, 3
test eax, eax
rep movsb byte es:[edi], byte [esi]
je 0x8c2cd0
mov eax, dword [sym.imp.kernel32.dll_GetProcAddress]
xor ecx, ecx
xor edx, edx
mov cl, byte [eax + 4]
mov dl, byte [eax + 3]
push ecx
xor ecx, ecx
mov cl, byte [eax + 2]
push edx
push ecx
xor edx, edx
mov dl, byte [eax + 1]
xor ecx, ecx
mov cl, byte [eax]
push edx
push ecx
push 0xa37fb4
call fcn.008c94e0
mov edx, dword [0xaeaa28]
add esp, 4
add edx, 0x24
push eax
push edx
call fcn.008c3720
mov eax, dword [0xaeaa28]
add esp, 0x1c
test eax, eax
je 0x8c2cd0
mov eax, dword [sym.imp.kernel32.dll_GetModuleHandleA]
xor ecx, ecx
xor edx, edx
mov cl, byte [eax + 4]
mov dl, byte [eax + 3]
push ecx
xor ecx, ecx
mov cl, byte [eax + 2]
push edx
push ecx
xor edx, edx
mov dl, byte [eax + 1]
xor ecx, ecx
mov cl, byte [eax]
push edx
push ecx
push 0xa37f90
call fcn.008c94e0
mov edx, dword [0xaeaa28]
add esp, 4
add edx, 0x24
push eax
push edx
call fcn.008c3720
add esp, 0x1c
push 0xa37f88
call fcn.008c94e0
add esp, 4
push eax
push ebx
call fcn.008c3720
push 0
push 0xaea5c0
call fcn.008cb285
add esp, 0x10
cmp eax, 0xffffffff
jne 0x8c2dac
mov ecx, dword [ebp - 4]
push 0x104
push 0xaea5c0
call fcn.008c39d0
mov edi, 0xa384f8
or ecx, 0xffffffff
xor eax, eax
push 0xa37f78
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, 0xaea5c0
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.008c94e0
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push eax
mov esi, edi
mov edx, ecx
mov edi, 0xaea5c0
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push 0xaea5c0
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.008cb285
add esp, 0xc
cmp eax, 0xffffffff
jne 0x8c2dac
push 0xaea5c0
push 0xa37f5c
call fcn.008c94e0
add esp, 4
push eax
push ebx
call fcn.008c3720
add esp, 0xc
mov eax, 0x9a
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov esi, dword [ebp - 4]
push 1
push 0xaea5c0
lea ecx, [esi + 0x2ac8]
call fcn.008c7a90
test al, al
jne 0x8c2e01
mov edi, dword [sym.imp.kernel32.dll_GetLastError]
call edi
mov esi, dword [esi + 0x2b0c]
push 0xaea5c0
call edi
push eax
push esi
push 0xa38214
call fcn.008c94e0
add esp, 4
push eax
push ebx
call fcn.008c3720
add esp, 0x14
mov eax, 0x7a
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0xa37f54
call fcn.008c94e0
add esp, 4
push eax
push ebx
call fcn.008c3720
lea edi, [esi + 0x1468]
add esp, 8
mov ecx, edi
call fcn.008c8660
test al, al
jne 0x8c2e4e
push 0xa37f40
call fcn.008c94e0
add esp, 4
push eax
push ebx
call fcn.008c3720
add esp, 8
mov eax, 0xa0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov eax, dword [edi]
push 2
push eax
call dword [sym.imp.kernel32.dll_SetThreadPriority]
push 0xa37f38
call fcn.008c94e0
add esp, 4
push eax
push ebx
call fcn.008c3720
add esp, 8
call dword [sym.imp.kernel32.dll_GetTickCount]
mov ecx, dword [0xa37b28]
mov edx, dword [ebp + 8]
mov edi, eax
mov eax, dword [esi + 0x2b8c]
push ecx
mov ecx, dword [esi + 0x2b88]
push edx
push eax
lea eax, [esi + 0x2b14]
push ecx
push eax
lea ecx, [esi + 0x1468]
and edi, 0xfff00000
call fcn.008c82b0
push eax
lea ecx, [esi + 0x1468]
call fcn.008c82a0
xor edx, edx
push eax
mov dl, byte [esi + 0x2b7d]
mov eax, dword [esi + 0x2b10]
push edx
push eax
push edi
push 0xa37f10
call fcn.008c94e0
add esp, 4
lea ecx, [ebp - 0x638]
push eax
push ecx
call dword [sym.imp.user32.dll_wsprintfA]
xor edx, edx
mov ecx, 0x11
xor eax, eax
lea edi, [ebp - 0x128]
mov dword [ebp - 0x2c], edx
add esp, 0x30
rep stosd dword es:[edi], eax
mov eax, dword [esi + 0x2b8c]
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x24], edx
push eax
mov dword [ebp - 0x128], 0x44
mov dword [ebp - 0x20], edx
call dword [sym.imp.kernel32.dll_ResetEvent]
lea ecx, [ebp - 0x638]
push ecx
call fcn.008c93d0
mov dword [ebp + 8], eax
lea edi, [ebp - 0x638]
or ecx, 0xffffffff
xor eax, eax
add esp, 4
lea edx, [ebp - 0x1740]
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [ebp - 0xc], edx
lea eax, [ecx + 4]
test eax, eax
jle 0x8c2f78
mov dword [ebp - 0x1c], eax
mov edi, edx
mov ecx, dword [ebp + 8]
xor eax, eax
mov al, byte [ecx]
inc ecx
push eax
push 0xa38158
push edi
mov dword [ebp + 8], ecx
call dword [sym.imp.user32.dll_wsprintfA]
add edi, eax
mov eax, dword [ebp - 0x1c]
add esp, 0xc
dec eax
mov dword [ebp - 0x1c], eax
jne 0x8c2f50
jmp 0x8c2f7b
mov edi, dword [ebp - 0xc]
push 0xa37f08
mov byte [edi], 0
call fcn.008c94e0
add esp, 4
push eax
push ebx
call fcn.008c3720
mov eax, dword [0xaea6fc]
add esp, 8
test eax, eax
je 0x8c30b7
push 0
mov ecx, esi
call fcn.008c4320
test eax, eax
jne 0x8c300f
push 0xa382e4
call fcn.008c94e0
add esp, 4
push eax
push 0
push 0x100000
call dword [sym.imp.kernel32.dll_OpenEventA]
mov edi, eax
test edi, edi
je 0x8c300f
push 0
push edi
call dword [sym.imp.kernel32.dll_WaitForSingleObject]
cmp eax, 0x102
je 0x8c3008
push 0x251c
mov ecx, esi
call fcn.008c4320
test eax, eax
jne 0x8c2ffe
pop edi
pop esi
mov eax, 0x6e
pop ebx
mov esp, ebp
pop ebp
ret 4
mov dword [0xaea6fc], 0
push edi
call dword [sym.imp.kernel32.dll_CloseHandle]
mov eax, dword [0xaea6fc]
test eax, eax
je 0x8c30b7
lea edi, [ebp - 0x1740]
or ecx, 0xffffffff
xor eax, eax
lea esi, [ebp - 0x428]
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov eax, 0x7eb
mov edx, ecx
mov ecx, dword [ebp - 4]
mov dword [ebp - 0x430], eax
lea edi, [ebp - 0x1740]
mov ecx, dword [ecx + 0x2b10]
xor eax, eax
mov dword [ebp - 0x42c], ecx
or ecx, 0xffffffff
add edx, 0xd
mov dword [ebp + 8], esi
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [ebp - 0x434], edx
mov eax, ecx
mov esi, edi
mov edi, dword [ebp + 8]
push edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [ebp - 0x434]
push ecx
call fcn.008c6d30
add esp, 8
test eax, eax
jne 0x8c31b4
mov esi, dword [sym.imp.kernel32.dll_GetLastError]
call esi
lea edx, [ebp - 0x638]
push edx
push 0xaea5c0
call esi
push eax
push 0xa37ee4
jmp 0x8c3177
mov eax, dword [0xaea700]
test eax, eax
je 0x8c312e
lea edi, [ebp - 0x1740]
or ecx, 0xffffffff
xor eax, eax
lea esi, [ebp - 0x428]
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov eax, 0x7eb
mov edx, ecx
mov ecx, dword [ebp - 4]
mov dword [ebp - 0x430], eax
lea edi, [ebp - 0x1740]
mov ecx, dword [ecx + 0x2b10]
xor eax, eax
mov dword [ebp - 0x42c], ecx
or ecx, 0xffffffff
add edx, 0xd
mov dword [ebp + 8], esi
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [ebp - 0x434], edx
mov eax, ecx
mov esi, edi
mov edi, dword [ebp + 8]
push edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [ebp - 0x434]
jmp 0x8c3085
lea eax, [ebp - 0x2c]
lea ecx, [ebp - 0x128]
push eax
push ecx
push 0
push 0
push 4
push 0
push 0
lea edx, [ebp - 0x1740]
push 0
push edx
push 0xaea5c0
call dword [sym.imp.kernel32.dll_CreateProcessA]
test eax, eax
jne 0x8c3197
mov esi, dword [sym.imp.kernel32.dll_GetLastError]
call esi
lea eax, [ebp - 0x638]
push eax
call esi
push eax
push 0xaea5c0
push 0xa37ebc
call fcn.008c94e0
add esp, 4
push eax
push ebx
call fcn.008c3720
add esp, 0x14
mov eax, 0xaa
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [ebp - 0x24]
push ecx
push 0xa37eb0
call fcn.008c94e0
add esp, 4
push eax
push ebx
call fcn.008c3720
add esp, 0xc
jmp 0x8c31b7
mov esi, dword [ebp - 4]
mov eax, dword [0xaea6e0]
xor edi, edi
cmp eax, edi
mov dword [0xaea6f8], eax
jne 0x8c320f
mov eax, dword [ebp - 0x18]
cmp eax, edi
mov dword [0xaea6f8], eax
jne 0x8c320f
mov eax, dword [0xaea700]
cmp eax, edi
mov dword [0xaea6f8], eax
jne 0x8c320f
mov eax, dword [0xaea6fc]
cmp eax, edi
mov dword [0xaea6f8], eax
jne 0x8c320f
mov edx, dword [ebp - 8]
push edx
push 0xa37e9c
push 0xaea5c0
call fcn.008c5810
add esp, 0xc
and eax, 0xff
mov dword [0xaea6f8], eax
push 0xa37e94
call fcn.008c94e0
add esp, 4
push eax
push ebx
call fcn.008c3720
add esp, 8
lea ecx, [esi + 0x1468]
call fcn.008c87b0
cmp eax, edi
jne 0x8c3265
mov esi, dword [sym.imp.kernel32.dll_GetLastError]
call esi
call esi
push eax
push 0xa37e80
call fcn.008c94e0
add esp, 4
push eax
push ebx
call fcn.008c3720
add esp, 0xc
mov eax, 0xa0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push eax
push 0xa37e50
call fcn.008c94e0
add esp, 4
push eax
push ebx
call fcn.008c3720
mov eax, dword [0xaea6fc]
add esp, 0xc
cmp eax, edi
jne 0x8c331e
cmp dword [0xaea700], edi
jne 0x8c331e
mov eax, dword [ebp - 0x28]
push eax
call dword [sym.imp.kernel32.dll_ResumeThread]
mov ecx, dword [esi + 0x2b88]
mov eax, dword [0xaea6dc]
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x88], ecx
push eax
lea ecx, [ebp - 0x88]
push edi
push ecx
push 2
mov dword [ebp - 0x84], edx
call dword [sym.imp.kernel32.dll_WaitForMultipleObjects]
test eax, eax
je 0x8c3377
push 0xa37e3c
call fcn.008c94e0
add esp, 4
push eax
push edi
push 0x100000
call dword [sym.imp.kernel32.dll_OpenEventA]
cmp eax, edi
je 0x8c3335
push eax
call dword [sym.imp.kernel32.dll_CloseHandle]
mov edx, dword [0xaea6dc]
mov eax, dword [esi + 0x2b88]
push edx
push eax
call dword [sym.imp.kernel32.dll_WaitForSingleObject]
test eax, eax
je 0x8c3377
mov ecx, dword [0xaea6dc]
push ecx
push 0xa37e20
jmp 0x8c3341
mov eax, dword [0xaea6dc]
mov ecx, dword [esi + 0x2b88]
push eax
push ecx
call dword [sym.imp.kernel32.dll_WaitForSingleObject]
test eax, eax
je 0x8c3377
mov edx, dword [0xaea6dc]
push edx
push 0xa37e08
call fcn.008c94e0
add esp, 4
push eax
push ebx
call fcn.008c3720
add esp, 0xc
mov ecx, esi
push 0x40000c28
push 0x1cbd0900
push 0x2ee6
call fcn.008c12d0
pop edi
pop esi
mov eax, 0x72
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0xa37df8
call fcn.008c94e0
add esp, 4
push eax
push ebx
call fcn.008c3720
mov eax, dword [esi + 0x2b8c]
add esp, 8
push edi
push eax
call dword [sym.imp.kernel32.dll_WaitForSingleObject]
test eax, eax
je 0x8c33c5
push 0xa37de0
call fcn.008c94e0
add esp, 4
push eax
push ebx
call fcn.008c3720
add esp, 8
mov eax, 0x72
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0xa37e3c
call fcn.008c94e0
add esp, 4
push eax
push edi
push 0x100000
call dword [sym.imp.kernel32.dll_OpenEventA]
cmp eax, edi
je 0x8c3403
push eax
call dword [sym.imp.kernel32.dll_CloseHandle]
push 0xa37dd4
call fcn.008c94e0
add esp, 4
push eax
push ebx
call fcn.008c3720
add esp, 8
jmp 0x8c3415
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x2c]
mov dword [0xaea80c], ecx
mov dword [0xaea810], edx
push 0xa37dcc
call fcn.008c94e0
add esp, 4
push eax
push ebx
call fcn.008c3720
mov eax, dword [0xaea6fc]
add esp, 8
cmp eax, edi
je 0x8c3458
push 0xa37dc0
call fcn.008c94e0
add esp, 4
push eax
push ebx
call fcn.008c3720
add esp, 8
mov dword [0xaea80c], edi
mov dword [0xaea810], edi
cmp dword [0xaea6f8], edi
jne 0x8c346e
pop edi
pop esi
mov eax, 0x7a
pop ebx
mov esp, ebp
pop ebp
ret 4
call fcn.008c6cc0
call fcn.008c52e0
mov edi, eax
test edi, edi
jne 0x8c3491
push 0xb
lea eax, [esi + 0x1468]
push 0x62d
push eax
call fcn.008c4490
push edi
push 0xa37da8
call fcn.008c94e0
add esp, 4
push eax
push ebx
call fcn.008c3720
add esp, 0xc
call fcn.008c5620
mov edi, eax
test edi, edi
jne 0x8c34cb
push 0xd
push 0x630
push 0x8b1
lea ecx, [esi + 0x1468]
call fcn.008c8550
push edi
push 0xa37d90
call fcn.008c94e0
add esp, 4
push eax
push ebx
call fcn.008c3720
mov al, byte [esi + 0x22]
add esp, 0xc
test al, al
je 0x8c351a
mov ecx, esi
call fcn.008c3c90
test al, al
jne 0x8c351a
push 0xa37d74
call fcn.008c94e0
add esp, 4
push eax
push ebx
call fcn.008c3720
add esp, 8
mov eax, 0xdc
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0xa37d6c
call fcn.008c94e0
add esp, 4
push eax
push ebx
call fcn.008c3720
mov eax, dword [esi + 0x2b10]
add esp, 8
lea edi, [esi + 0x1468]
push eax
push 0x611
push 0x8b1
mov ecx, edi
call fcn.008c8550
mov ecx, dword [ebp - 8]
push ecx
push 0x617
push 0x8b1
mov ecx, edi
call fcn.008c8550
mov ecx, esi
call fcn.008c4e60
push 0xa37d4c
mov byte [esi + 0x2ba4], al
call fcn.008c94e0
add esp, 4
push eax
push ebx
call fcn.008c3720
add esp, 8
mov byte [esi], 1
pop edi
pop esi
mov eax, 0x755
pop ebx
mov esp, ebp
pop ebp
ret 4