Function at 0x97977c
Capabilities:
Check for foreground window switch
Hide graphical window
Move file

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 0xcc
push 0
push 0
dec ecx
jne 0x979785
push ecx
xchg dword [ebp - 4], ecx
push ebx
push esi
push edi
mov esi, dword [ebp + 0x68]
lea edi, [ebp - 0x504]
push ecx
movzx ecx, byte [esi]
inc ecx
rep movsb byte es:[edi], byte [esi]
pop ecx
mov esi, dword [ebp + 0x6c]
lea edi, [ebp - 0x404]
push ecx
movzx ecx, byte [esi]
inc ecx
rep movsb byte es:[edi], byte [esi]
pop ecx
mov dword [ebp - 0x55c], ecx
mov dword [ebp - 0x508], edx
mov dword [ebp - 0x304], eax
mov eax, dword [ebp + 0x60]
call fcn.00409208
mov eax, dword [ebp + 0x5c]
call fcn.00409208
mov eax, dword [ebp + 0x14]
call fcn.00409208
xor eax, eax
push ebp
push 0x97b060
push dword fs:[eax]
mov dword fs:[eax], esp
cmp byte [0xa4a7a4], 0
je 0x979905
cmp byte [ebp + 0x1c], 0
jne 0x979905
xor edx, edx
push ebp
push 0x979877
push dword fs:[edx]
mov dword fs:[edx], esp
push 0
call sub.ole32.dll_CoInitialize
cmp dword [ebp + 0x10], 0
setne byte [ebp - 0x579]
cmp byte [ebp - 0x579], 0
jne 0x979842
mov ecx, dword [ebp - 0x304]
mov dl, 1
mov eax, dword [0x5cdc04]
call fcn.005c9bf8
mov dword [ebp + 0x10], eax
mov eax, dword [ebp + 0x10]
mov edx, dword [ebp - 0x304]
mov dword [eax + 0x2fc], edx
mov dword [eax + 0x2f8], 0x990c78
mov ecx, 0x97b078
mov edx, 0x5dc
mov eax, dword [ebp + 0x10]
call fcn.005cb584
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x9798b5
cmp byte [0xa4a7e8], 0
je 0x979905
xor eax, eax
push ebp
push 0x9798fb
push dword fs:[eax]
mov dword fs:[eax], esp
push 0xffffffffffffffff
lea eax, [ebp - 0x588]
mov edx, 0xa4a7d8
call fcn.0043750c
mov ecx, dword [ebp - 0x588]
mov edx, 0x97b0ec
mov eax, dword [ebp + 0x10]
call fcn.005ce484
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x979905
mov eax, dword [ebp + 0x2c]
mov eax, dword [eax]
xor edx, edx
mov dword [eax + 0x244], edx
mov eax, dword [ebp + 0x2c]
mov eax, dword [eax]
mov byte [eax + 0x230], 0
mov eax, dword [ebp + 0x58]
mov eax, dword [eax]
mov edx, dword [ebp + 0x2c]
mov edx, dword [edx]
mov dword [edx + 0x228], eax
mov dword [0xa4a7cc], 1
mov dword [0xa4a7d0], 2
mov dword [0xa4a7d4], 3
mov eax, dword [ebp + 0x2c]
push eax
mov eax, dword [ebp + 0x30]
push eax
push 0
push 0
push 0
push 0x97b108
mov ecx, 0x97b124
mov edx, 0x97b134
mov eax, dword [ebp - 0x304]
call fcn.0097edfc
xor eax, eax
mov dword [ebp - 0x2f8], eax
mov eax, dword [ebp + 0x64]
mov edx, 0x97b148
movzx ecx, byte [eax]
inc ecx
call fcn.00409798
je 0x9799cc
mov eax, dword [ebp + 0x64]
mov edx, 0x97b14c
movzx ecx, byte [eax]
inc ecx
call fcn.00409798
je 0x9799cc
mov eax, dword [ebp + 0x64]
mov edx, 0x97b150
movzx ecx, byte [eax]
inc ecx
call fcn.00409798
je 0x9799cc
mov eax, dword [ebp + 0x64]
mov edx, 0x97b154
movzx ecx, byte [eax]
inc ecx
call fcn.00409798
jne 0x979aad
lea eax, [ebp - 0x58c]
mov edx, dword [ebp - 0x304]
add edx, 0x3d9
call fcn.0040a400
mov edx, dword [ebp - 0x58c]
mov eax, dword [ebp - 0x304]
mov ecx, dword [eax + 0x480]
mov eax, dword [ebp - 0x304]
mov eax, dword [eax + 0x484]
add eax, 8
call fcn.0040a4e4
lea edx, [ebp - 0x590]
mov eax, dword [ebp - 0x55c]
call fcn.00424d78
lea eax, [ebp - 0x590]
mov edx, 0x97b164
call fcn.0040a48c
mov ecx, dword [ebp - 0x590]
mov eax, dword [ebp - 0x304]
mov eax, dword [eax + 0x484]
mov edx, dword [ebp - 0x55c]
call fcn.00684f24
mov eax, dword [ebp - 0x55c]
call fcn.00424b08
lea edx, [ebp - 0x594]
mov eax, dword [ebp - 0x55c]
call fcn.00424d78
mov edx, dword [ebp - 0x594]
lea eax, [ebp - 0x534]
mov ecx, 0x97b164
call fcn.0040a4e4
lea eax, [ebp - 0x538]
mov edx, dword [ebp - 0x55c]
call fcn.0040954c
mov eax, dword [ebp - 0x538]
call fcn.0040a278
push eax
mov eax, dword [ebp - 0x534]
call fcn.0040a278
push eax
call sub.KERNEL32.DLL_MoveFileW
cmp eax, 1
sbb eax, eax
inc eax
call fcn.0095f874
mov byte [0xa4a784], al
mov eax, dword [ebp - 0x304]
cmp byte [eax + 0x3ec], 0
je 0x979b4b
cmp byte [ebp + 0x1c], 0
jne 0x979b4b
push 0
push 0x97b178
call sub.user32.dll_FindWindowW
test eax, eax
jbe 0x979ae6
push eax
call sub.user32.dll_CloseWindow
lea eax, [ebp - 0x568]
push eax
call sub.user32.dll_GetCursorPos
mov eax, dword [ebp - 0x564]
add eax, 0xa
push eax
mov eax, dword [ebp - 0x568]
sub eax, 0xa
push eax
call sub.user32.dll_SetCursorPos
mov eax, dword [ebp - 0x564]
push eax
mov eax, dword [ebp - 0x568]
push eax
call sub.user32.dll_SetCursorPos
push 0
lea eax, [ebp - 0x560]
push eax
push 0
push 0x10
call sub.user32.dll_SystemParametersInfoW
cmp dword [ebp - 0x560], 1
sbb eax, eax
inc eax
cmp al, 1
jne 0x979b4b
push 0
push 0
push 0
push 0x11
call sub.user32.dll_SystemParametersInfoW
mov dl, 1
mov eax, dword [0x4446a4]
call fcn.004531b0
mov dword [ebp - 0x2e0], eax
cmp byte [ebp + 0x34], 0
je 0x979c4b
mov dl, 1
mov eax, dword [0x445a28]
call fcn.00407440
mov dword [ebp - 0x570], eax
mov dl, 1
mov eax, dword [0x445a28]
call fcn.00407440
mov ebx, eax
lea edx, [ebp - 0x570]
mov eax, 0x97b1b4
call fcn.00613254
xor ecx, ecx
xor edx, edx
mov eax, dword [ebp - 0x570]
mov esi, dword [eax]
call dword [esi + 0x14]
xor ecx, ecx
xor edx, edx
mov eax, ebx
mov esi, dword [eax]
call dword [esi + 0x14]
mov ecx, dword [ebp - 0x304]
mov dl, 1
mov eax, dword [0x8e8cd0]
call fcn.008e888c
mov esi, eax
lea eax, [ebp - 0x598]
mov edx, dword [ebp - 0x304]
add edx, 0x3d9
mov ecx, 0
call fcn.0040993c
mov edx, dword [ebp - 0x598]
mov ecx, dword [0x8e95c8]
mov eax, esi
call fcn.008e81e8
mov eax, dword [ebp - 0x570]
mov edx, dword [eax]
call dword [edx]
push eax
mov ecx, ebx
mov edx, dword [ebp - 0x570]
mov eax, esi
call fcn.008e85d4
mov eax, esi
mov edx, dword [eax]
call dword [edx + 0x54]
mov eax, esi
call fcn.00407470
xor ecx, ecx
xor edx, edx
mov eax, ebx
mov esi, dword [eax]
call dword [esi + 0x14]
mov edx, ebx
mov eax, dword [ebp - 0x2e0]
mov ecx, dword [eax]
call dword [ecx + 0x70]
mov eax, dword [ebp - 0x570]
call fcn.00407470
mov eax, ebx
call fcn.00407470
jmp 0x979cf2
cmp byte [ebp + 0x1c], 0
je 0x979c67
mov edx, dword [ebp - 0x55c]
mov eax, dword [ebp - 0x2e0]
mov ecx, dword [eax]
call dword [ecx + 0x2c]
jmp 0x979cf2
xor eax, eax
push ebp
push 0x979c90
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, dword [ebp - 0x55c]
mov eax, dword [ebp - 0x2e0]
mov ecx, dword [eax]
call dword [ecx + 0x68]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x979cf2
mov eax, dword [ebp + 0x58]
cmp dword [eax], 0
jne 0x979d13
cmp byte [ebp + 0x1c], 0
jne 0x979d13
cmp byte [ebp + 0xc], 1
jne 0x979d13
mov eax, dword [ebp - 0x304]
mov byte [eax + 0x47e], 1
movzx ebx, byte [ebp + 0x1c]
xor bl, 1
test bl, bl
je 0x979d25
mov byte [0xa4a778], 0
mov eax, dword [ebp - 0x304]
mov byte [eax + 0x47c], 0
mov eax, dword [ebp - 0x304]
mov byte [eax + 0x47d], 0
mov eax, dword [ebp + 0x2c]
mov eax, dword [eax]
mov eax, dword [eax + 0x1c]
call fcn.0040b884
xor eax, eax
mov dword [ebp - 0x2e8], eax
mov eax, dword [ebp + 0x2c]
mov eax, dword [eax]
mov eax, dword [eax + 0x14]
call fcn.0040b884
mov dword [ebp - 0x574], eax
mov eax, dword [ebp + 0x2c]
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
call fcn.0040b884
mov esi, eax
test bl, bl
je 0x979e24
mov eax, dword [ebp + 0x5c]
push eax
mov eax, dword [ebp - 0x55c]
push eax
movzx eax, byte [ebp + 0x34]
push eax
mov ecx, dword [ebp + 0x30]
mov edx, dword [ebp + 0x2c]
mov eax, dword [ebp - 0x304]
call fcn.00976bd0
mov eax, dword [ebp + 0x30]
push eax
push 1
push 0
lea eax, [ebp - 0x5a4]
push eax
mov ecx, dword [ebp + 0x2c]
mov edx, 0x97b21c
mov eax, dword [ebp - 0x304]
call fcn.0097f92c
mov eax, dword [ebp - 0x5a4]
mov edx, 0x97b21c
call fcn.0040a67c
je 0x979e24
mov eax, dword [ebp + 0x30]
push eax
push 1
push 0
lea eax, [ebp + 0x60]
push eax
mov ecx, dword [ebp + 0x2c]
mov edx, 0x97b21c
mov eax, dword [ebp - 0x304]
call fcn.0097f92c
lea edx, [ebp - 0x5a8]
mov eax, dword [ebp + 0x60]
call fcn.00422c98
mov eax, dword [ebp - 0x5a8]
mov edx, 0x97b23c
call fcn.0040a67c
je 0x979e24
mov word [ebp - 0x404], 0x3001
mov word [ebp - 0x504], 0x3301
lea eax, [ebp - 0x404]
mov edx, 0x97b148
movzx ecx, byte [eax]
inc ecx
call fcn.00409798
jne 0x979e42
mov eax, dword [ebp + 0x60]
call fcn.00424b08
cmp byte [ebp + 0x34], 0
je 0x979eaa
lea eax, [ebp - 0x504]
mov edx, 0x97b250
movzx ecx, byte [eax]
inc ecx
call fcn.00409798
je 0x979f4b
lea eax, [ebp - 0x2dc]
push eax
lea edx, [ebp - 0x5b0]
mov eax, dword [0xa403fc]
mov eax, dword [eax]
call fcn.00549288
mov ecx, dword [ebp - 0x5b0]
lea eax, [ebp - 0x5ac]
mov edx, 0x97b260
call fcn.0040a4e4
mov edx, dword [ebp - 0x5ac]
mov ecx, dword [ebp + 0x60]
mov eax, dword [ebp - 0x304]
call fcn.0097ccf0
jmp 0x979f4b
lea eax, [ebp - 0x504]
mov edx, 0x97b250
movzx ecx, byte [eax]
inc ecx
call fcn.00409798
je 0x979f4b
mov eax, dword [ebp + 0x30]
push eax
push 1
push 0
lea eax, [ebp - 0x5b4]
push eax
mov ecx, dword [ebp + 0x2c]
mov edx, 0x97b290
mov eax, dword [ebp - 0x304]
call fcn.0097f92c
mov eax, dword [ebp - 0x5b4]
mov edx, 0x97b124
call fcn.0040a67c
je 0x979f4b
cmp byte [ebp + 0x1c], 0
je 0x979f1a
lea eax, [ebp - 0x2dc]
push eax
mov ecx, dword [ebp + 0x60]
mov edx, 0x97b2c0
mov eax, dword [ebp - 0x304]
call fcn.0097ccf0
jmp 0x979f4b
lea eax, [ebp - 0x2dc]
push eax
lea eax, [ebp - 0x5b8]
mov ecx, dword [ebp - 0x508]
mov edx, 0x97b260
call fcn.0040a4e4
mov edx, dword [ebp - 0x5b8]
mov ecx, dword [ebp + 0x60]
mov eax, dword [ebp - 0x304]
call fcn.0097ccf0
call sub.user32.dll_GetForegroundWindow
mov edx, dword [ebp - 0x304]
mov dword [edx + 0x48c], eax
mov byte [ebp - 0x2ed], 0
cmp byte [0xa4a7a4], 0
je 0x979f74
xor eax, eax
mov dword [ebp - 0x510], eax
cmp byte [ebp + 0x1c], 0
jne 0x97a075
mov dl, 1
mov eax, dword [0x9444a8]
call fcn.0045d050
mov dword [ebp - 0x56c], eax
mov eax, dword [ebp + 0x24]
mov edx, dword [ebp - 0x56c]
mov dword [edx + 0x4c], eax
mov eax, dword [ebp + 0x20]
mov edx, dword [ebp - 0x56c]
mov dword [edx + 0x50], eax
lea eax, [ebp - 0x2e0]
mov edx, dword [ebp - 0x56c]
mov dword [edx + 0x54], eax
mov eax, dword [ebp + 0x2c]
mov edx, dword [ebp - 0x56c]
mov dword [edx + 0x5c], eax
mov eax, dword [ebp + 0x30]
mov edx, dword [ebp - 0x56c]
mov dword [edx + 0x60], eax
mov eax, dword [ebp + 0x58]
mov edx, dword [ebp - 0x56c]
mov dword [edx + 0x64], eax
lea eax, [ebp + 0x54]
mov edx, dword [ebp - 0x56c]
mov dword [edx + 0x68], eax
mov eax, dword [ebp + 0x50]
mov edx, dword [ebp - 0x56c]
mov dword [edx + 0x6c], eax
mov eax, dword [ebp + 0x4c]
mov edx, dword [ebp - 0x56c]
mov dword [edx + 0x70], eax
mov eax, dword [ebp + 0x48]
mov edx, dword [ebp - 0x56c]
mov dword [edx + 0x74], eax
mov eax, dword [ebp - 0x56c]
mov edx, dword [ebp + 0x40]
mov dword [eax + 0x78], edx
mov edx, dword [ebp + 0x44]
mov dword [eax + 0x7c], edx
mov eax, dword [ebp - 0x56c]
mov edx, dword [ebp + 0x38]
mov dword [eax + 0x80], edx
mov edx, dword [ebp + 0x3c]
mov dword [eax + 0x84], edx
mov eax, dword [ebp - 0x56c]
add eax, 0x88
mov edx, dword [ebp + 0x60]
call fcn.00409504
mov eax, dword [ebp - 0x56c]
mov edx, dword [ebp + 0x10]
mov dword [eax + 0x90], edx
mov eax, dword [ebp + 0x28]
mov edx, dword [ebp - 0x56c]
mov dword [edx + 0x94], eax
lea eax, [ebp + 0x18]
mov edx, dword [ebp - 0x56c]
mov dword [edx + 0x98], eax
cmp dword [ebp + 0x14], 0
je 0x97a0c4
lea eax, [ebp - 0x2ec]
push eax
mov eax, dword [ebp + 0x2c]
push eax
mov eax, dword [ebp + 0x30]
push eax
lea eax, [ebp - 0x2ed]
push eax
lea eax, [ebp - 0x2f4]
push eax
lea eax, [ebp - 0x2f8]
push eax
mov eax, dword [ebp + 0x58]
mov eax, dword [eax]
push eax
mov eax, dword [ebp + 0x4c]
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x2e0]
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp - 0x304]
call fcn.00975888
jmp 0x97aa45
xor eax, eax
mov dword [ebp - 0x2ec], eax
jmp 0x97aa45
push 0
call sub.KERNEL32.DLL_Sleep
lea edx, [ebp + 0x60]
mov eax, dword [ebp - 0x304]
call fcn.0096aed8
mov eax, dword [ebp + 0x58]
cmp dword [eax], 0
jle 0x97a0f5
mov eax, dword [ebp + 0x4c]
xor edx, edx
mov dword [eax], edx
mov eax, dword [0xa403fc]
mov eax, dword [eax]
call fcn.00548840
mov eax, dword [ebp - 0x2e0]
mov edx, dword [eax]
call dword [edx + 0x14]
cmp eax, dword [ebp - 0x2ec]
jle 0x97a161
jmp 0x97a11c
inc dword [ebp - 0x2ec]
lea ecx, [ebp - 0x5c0]
mov edx, dword [ebp - 0x2ec]
mov eax, dword [ebp - 0x2e0]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov eax, dword [ebp - 0x5c0]
lea edx, [ebp - 0x5bc]
call fcn.00423184
cmp dword [ebp - 0x5bc], 0
jne 0x97a161
mov eax, dword [ebp - 0x2e0]
mov edx, dword [eax]
call dword [edx + 0x14]
dec eax
cmp eax, dword [ebp - 0x2ec]
jg 0x97a116
lea ecx, [ebp - 0x518]
mov edx, dword [ebp - 0x2ec]
mov eax, dword [ebp - 0x2e0]
mov ebx, dword [eax]
call dword [ebx + 0xc]
inc dword [ebp - 0x2ec]
mov eax, dword [ebp + 0x2c]
mov eax, dword [eax]
mov eax, dword [eax]
mov edx, dword [ebp - 0x2ec]
mov dword [eax + 0x10], edx
mov eax, dword [ebp + 0x2c]
mov eax, dword [eax]
mov eax, dword [eax]
mov eax, dword [eax + 0x28]
call fcn.0040b87c
test eax, eax
jle 0x97a273
mov eax, dword [ebp + 0x2c]
mov eax, dword [eax]
mov eax, dword [eax]
mov eax, dword [eax + 0x30]
call fcn.0040b884
mov edx, dword [ebp + 0x2c]
mov edx, dword [edx]
mov edx, dword [edx]
mov edx, dword [edx + 0x30]
mov ebx, dword [ebp - 0x2ec]
sub ebx, dword [edx + eax*4]
mov eax, dword [ebp + 0x2c]
mov eax, dword [eax]
mov eax, dword [eax]
mov eax, dword [eax + 0x2c]
call fcn.0040b884
mov edx, dword [ebp + 0x2c]
mov edx, dword [edx]
mov edx, dword [edx]
mov edx, dword [edx + 0x2c]
cmp ebx, dword [edx + eax*4]
jle 0x97a273
mov eax, dword [ebp + 0x2c]
mov eax, dword [eax]
mov eax, dword [eax]
mov eax, dword [eax + 0x28]
call fcn.0040b87c
dec eax
push eax
mov eax, dword [ebp + 0x2c]
mov eax, dword [eax]
mov eax, dword [eax]
add eax, 0x28
mov ecx, 1
mov edx, dword [0x943c90]
call fcn.0040ba30
add esp, 4
mov eax, dword [ebp + 0x2c]
mov eax, dword [eax]
mov eax, dword [eax]
mov eax, dword [eax + 0x30]
call fcn.0040b87c
dec eax
push eax
mov eax, dword [ebp + 0x2c]
mov eax, dword [eax]
mov eax, dword [eax]
add eax, 0x30
mov ecx, 1
mov edx, dword [0x943d08]
call fcn.0040ba30
add esp, 4
mov eax, dword [ebp + 0x2c]
mov eax, dword [eax]
mov eax, dword [eax]
mov eax, dword [eax + 0x2c]
call fcn.0040b87c
dec eax
push eax
mov eax, dword [ebp + 0x2c]
mov eax, dword [eax]
mov eax, dword [eax]
add eax, 0x2c
mov ecx, 1
mov edx, dword [0x943ccc]
call fcn.0040ba30
add esp, 4
lea edx, [ebp - 0x5c4]
mov eax, dword [ebp - 0x2ec]
call fcn.00423b58
mov edx, dword [ebp - 0x5c4]
mov eax, dword [ebp + 0x2c]
mov eax, dword [eax]
mov eax, dword [eax]
add eax, 8
call fcn.00409504
lea eax, [ebp - 0x2ec]
push eax
lea eax, [ebp - 0x518]
push eax
lea eax, [ebp - 0x2e0]
push eax
mov eax, dword [ebp + 0x58]
push eax
lea eax, [ebp + 0x54]
push eax
mov eax, dword [ebp + 0x50]
push eax
mov eax, dword [ebp + 0x4c]
push eax
mov eax, dword [ebp + 0x48]
push eax
lea eax, [ebp + 0x40]
push eax
lea eax, [ebp + 0x38]
push eax
lea eax, [ebp + 0x60]
push eax
movzx eax, byte [ebp - 0x2ed]
push eax
lea eax, [ebp + 0x18]
push eax
mov ecx, dword [ebp + 0x30]
mov edx, dword [ebp + 0x2c]
mov eax, dword [ebp - 0x304]
call fcn.0096b08c
cmp byte [0xa4a778], 0
jne 0x97aa45
lea eax, [ebp - 0x504]
mov edx, 0x97b250
movzx ecx, byte [eax]
inc ecx
call fcn.00409798
je 0x97a48d
mov eax, dword [ebp + 0x30]
push eax
push 1
push 0
lea eax, [ebp - 0x5c8]
push eax
mov ecx, dword [ebp + 0x2c]
mov edx, 0x97b290
mov eax, dword [ebp - 0x304]
call fcn.0097f92c
mov eax, dword [ebp - 0x5c8]
mov edx, 0x97b124
call fcn.0040a67c
je 0x97a48d
lea eax, [ebp - 0x504]
mov edx, 0x97b150
movzx ecx, byte [eax]
inc ecx
call fcn.00409798
jne 0x97a3ee
lea eax, [ebp - 0x2dc]
push eax
push 0x97b2e8
lea edx, [ebp - 0x5d0]
mov eax, dword [ebp + 0x2c]
mov eax, dword [eax]
mov eax, dword [eax]
mov eax, dword [eax + 0x10]
call fcn.00423b58
push dword [ebp - 0x5d0]
push 0x97b304
mov eax, dword [ebp + 0x30]
push eax
push 1
push 0
lea eax, [ebp - 0x5d8]
push eax
mov ecx, dword [ebp + 0x2c]
mov edx, dword [ebp - 0x518]
mov eax, dword [ebp - 0x304]
call fcn.0097f92c
mov eax, dword [ebp - 0x5d8]
lea edx, [ebp - 0x5d4]
call fcn.004231f4
push dword [ebp - 0x5d4]
lea eax, [ebp - 0x5cc]
mov edx, 4
call fcn.0040a56c
mov edx, dword [ebp - 0x5cc]
mov ecx, dword [ebp + 0x60]
mov eax, dword [ebp - 0x304]
call fcn.0097ccf0
lea eax, [ebp - 0x504]
mov edx, 0x97b14c
movzx ecx, byte [eax]
inc ecx
call fcn.00409798
jne 0x97a48d
lea eax, [ebp - 0x2dc]
push eax
lea edx, [ebp - 0x5e0]
mov eax, dword [ebp + 0x2c]
mov eax, dword [eax]
mov eax, dword [eax]
mov eax, dword [eax + 0x10]
call fcn.00423b58
push dword [ebp - 0x5e0]
push 0x97b304
mov eax, dword [ebp + 0x30]
push eax
push 1
push 0
lea eax, [ebp - 0x5e8]
push eax
mov ecx, dword [ebp + 0x2c]
mov edx, dword [ebp - 0x518]
mov eax, dword [ebp - 0x304]
call fcn.0097f92c
mov eax, dword [ebp - 0x5e8]
lea edx, [ebp - 0x5e4]
call fcn.004231f4
push dword [ebp - 0x5e4]
lea eax, [ebp - 0x5dc]
mov edx, 3
call fcn.0040a56c
mov edx, dword [ebp - 0x5dc]
mov ecx, dword [ebp + 0x60]
mov eax, dword [ebp - 0x304]
call fcn.0097ccf0
cmp byte [0xa4a7a4], 0
je 0x97a4a2
mov eax, dword [ebp - 0x2ec]
mov dword [ebp - 0x510], eax
mov eax, dword [ebp + 0x30]
push eax
push 1
push 0
lea eax, [ebp - 0x5ec]
push eax
mov ecx, dword [ebp + 0x2c]
mov edx, 0x97b318
mov eax, dword [ebp - 0x304]
call fcn.0097f92c
mov edx, dword [ebp - 0x5ec]
mov eax, dword [ebp - 0x304]
call fcn.0098ff4c
test eax, eax
je 0x97a51c
mov eax, dword [ebp + 0x30]
push eax
push 1
push 0
lea eax, [ebp - 0x5f0]
push eax
mov ecx, dword [ebp + 0x2c]
mov edx, 0x97b318
mov eax, dword [ebp - 0x304]
call fcn.0097f92c
mov edx, dword [ebp - 0x5f0]
mov eax, dword [ebp - 0x304]
call fcn.0098ff4c
mov edx, eax
mov ecx, dword [ebp + 0x2c]
mov eax, dword [ebp - 0x304]
call fcn.0097d35c
lea eax, [ebp - 0x5f4]
push eax
lea edx, [ebp - 0x5f8]
mov eax, dword [ebp - 0x518]
call fcn.004231f4
mov eax, dword [ebp - 0x5f8]
mov ecx, 3
mov edx, 1
call fcn.0040a6b4
mov eax, dword [ebp - 0x5f4]
lea edx, [ebp - 0x50c]
call fcn.00422c98
lea edx, [ebp - 0x5fc]
mov eax, dword [ebp - 0x518]
call fcn.0096aa5c
mov edx, dword [ebp - 0x5fc]
lea eax, [ebp - 0x518]
call fcn.0040954c
lea ecx, [ebp - 0x2ec]
lea eax, [ebp - 0x2e0]
mov edx, dword [ebp - 0x518]
call fcn.0096abec
lea eax, [ebp - 0x600]
push eax
mov ecx, 2
mov edx, 1
mov eax, dword [ebp - 0x50c]
call fcn.0040a6b4
mov eax, dword [ebp - 0x600]
mov edx, 0x97b33c
call fcn.0040a67c
jne 0x97a661
mov eax, dword [ebp - 0x2e0]
mov edx, dword [eax]
call dword [edx + 0x14]
cmp eax, dword [ebp - 0x2ec]
jle 0x97a661
mov eax, dword [ebp - 0x2e0]
mov edx, dword [eax]
call dword [edx + 0x14]
cmp eax, dword [ebp - 0x2ec]
jle 0x97a661
jmp 0x97a5f7
inc dword [ebp - 0x2ec]
lea eax, [ebp - 0x604]
push eax
lea ecx, [ebp - 0x60c]
mov edx, dword [ebp - 0x2ec]
mov eax, dword [ebp - 0x2e0]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov eax, dword [ebp - 0x60c]
lea edx, [ebp - 0x608]
call fcn.004231f4
mov eax, dword [ebp - 0x608]
mov ecx, 2
mov edx, 1
call fcn.0040a6b4
mov eax, dword [ebp - 0x604]
mov edx, 0x97b33c
call fcn.0040a67c
jne 0x97a661
mov eax, dword [ebp - 0x2e0]
mov edx, dword [eax]
call dword [edx + 0x14]
dec eax
cmp eax, dword [ebp - 0x2ec]
jg 0x97a5f1
push ebp
mov eax, dword [ebp - 0x518]
call fcn.00979220
pop ecx
mov eax, dword [ebp - 0x50c]
mov edx, 0x97b350
call fcn.0040a67c
jne 0x97a710
movzx eax, byte [ebp - 0x2ed]
push eax
mov eax, dword [ebp + 0x2c]
push eax
mov eax, dword [ebp + 0x30]
push eax
lea eax, [ebp - 0x2e0]
push eax
lea eax, [ebp - 0x2ec]
push eax
lea eax, [ebp + 0x40]
push eax
mov eax, dword [ebp + 0x48]
push eax
lea eax, [ebp - 0x614]
push eax
lea edx, [ebp - 0x618]
mov eax, dword [ebp - 0x518]
call fcn.004231f4
mov eax, dword [ebp - 0x618]
mov ecx, 0xf
mov edx, 1
call fcn.0040a6b4
mov eax, dword [ebp - 0x614]
lea edx, [ebp - 0x610]
call fcn.00422c98
mov eax, dword [ebp - 0x610]
mov edx, 0x97b364
call fcn.0040a67c
sete al
push eax
mov ecx, dword [ebp + 0x58]
lea edx, [ebp - 0x518]
mov eax, dword [ebp - 0x304]
call fcn.0096b22c
lea eax, [ebp - 0x50c]
mov edx, dword [ebp - 0x518]
call fcn.009602e4
mov eax, dword [ebp - 0x50c]
mov edx, 0x97b390
call fcn.0040a67c
jne 0x97a81f
lea edx, [ebp - 0x53c]
mov eax, dword [ebp - 0x518]
call fcn.004231f4
lea edx, [ebp - 0x61c]
mov eax, dword [ebp - 0x518]
call fcn.004231f4
mov eax, dword [ebp - 0x61c]
mov dword [ebp - 0x580], eax
mov ebx, dword [ebp - 0x580]
test ebx, ebx
je 0x97a774
sub ebx, 4
mov ebx, dword [ebx]
lea eax, [ebp - 0x300]
push eax
lea edx, [ebp - 0x620]
mov eax, dword [ebp - 0x518]
call fcn.004231f4
mov edx, dword [ebp - 0x620]
mov eax, 0x97b3a4
call fcn.0040a860
mov edx, eax
inc edx
mov ecx, ebx
mov eax, dword [ebp - 0x53c]
call fcn.0040a6b4
mov eax, dword [ebp + 0x30]
push eax
push 1
push 0
lea eax, [ebp - 0x624]
push eax
mov ecx, dword [ebp + 0x2c]
mov edx, dword [ebp - 0x300]
mov eax, dword [ebp - 0x304]
call fcn.0097f92c
mov edx, dword [ebp - 0x624]
mov eax, dword [ebp - 0x304]
call fcn.0098ff4c
mov edx, dword [0xa3f6a8]
mov dword [edx], eax
mov eax, dword [ebp + 0x2c]
mov eax, dword [eax]
mov byte [eax + 0x230], 1
mov eax, dword [ebp + 0x2c]
mov eax, dword [eax]
mov eax, dword [eax + 0x248]
mov byte [eax + 0x2c], 1
mov eax, dword [ebp + 0x2c]
mov eax, dword [eax]
cmp dword [eax + 0x228], 0
jne 0x97a81f
mov edx, dword [ebp + 0x2c]
mov eax, dword [ebp - 0x304]
call fcn.009ab8dc
mov eax, dword [ebp + 0x2c]
mov eax, dword [eax]
cmp byte [eax + 0x230], 0
jne 0x97aa65
push ebp
lea edx, [ebp - 0x300]
lea eax, [ebp - 0x50c]
mov ecx, dword [ebp - 0x518]
call fcn.00977d1c
pop ecx
lea eax, [ebp - 0x504]
mov edx, 0x97b250
movzx ecx, byte [eax]
inc ecx
call fcn.00409798
je 0x97a9df
mov eax, dword [ebp + 0x30]
push eax
push 1
push 0
lea eax, [ebp - 0x628]
push eax
mov ecx, dword [ebp + 0x2c]
mov edx, 0x97b290
mov eax, dword [ebp - 0x304]
call fcn.0097f92c
mov eax, dword [ebp - 0x628]
mov edx, 0x97b124
call fcn.0040a67c
je 0x97a9df
lea eax, [ebp - 0x504]
mov edx, 0x97b148
movzx ecx, byte [eax]
inc ecx
call fcn.00409798
jne 0x97a93b
lea eax, [ebp - 0x2dc]
push eax
lea edx, [ebp - 0x630]
mov eax, dword [ebp + 0x2c]
mov eax, dword [eax]
mov eax, dword [eax]
mov eax, dword [eax + 0x10]
call fcn.00423b58
push dword [ebp - 0x630]
push 0x97b304
mov eax, dword [ebp + 0x30]
push eax
push 1
push 0
lea eax, [ebp - 0x638]
push eax
mov ecx, dword [ebp + 0x2c]
mov edx, dword [ebp - 0x518]
mov eax, dword [ebp - 0x304]
call fcn.0097f92c
mov eax, dword [ebp - 0x638]
lea edx, [ebp - 0x634]
call fcn.004231f4
push dword [ebp - 0x634]
lea eax, [ebp - 0x62c]
mov edx, 3
call fcn.0040a56c
mov edx, dword [ebp - 0x62c]
mov ecx, dword [ebp + 0x60]
mov eax, dword [ebp - 0x304]
call fcn.0097ccf0
lea eax, [ebp - 0x504]
mov edx, 0x97b150
movzx ecx, byte [eax]
inc ecx
call fcn.00409798
jne 0x97a9df
lea eax, [ebp - 0x2dc]
push eax
push 0x97b3b4
lea edx, [ebp - 0x640]
mov eax, dword [ebp + 0x2c]
mov eax, dword [eax]
mov eax, dword [eax]
mov eax, dword [eax + 0x10]
call fcn.00423b58
push dword [ebp - 0x640]
push 0x97b304
mov eax, dword [ebp + 0x30]
push eax
push 1
push 0
lea eax, [ebp - 0x648]
push eax
mov ecx, dword [ebp + 0x2c]
mov edx, dword [ebp - 0x518]
mov eax, dword [ebp - 0x304]
call fcn.0097f92c
mov eax, dword [ebp - 0x648]
lea edx, [ebp - 0x644]
call fcn.004231f4
push dword [ebp - 0x644]
lea eax, [ebp - 0x63c]
mov edx, 4
call fcn.0040a56c
mov edx, dword [ebp - 0x63c]
mov ecx, dword [ebp + 0x60]
mov eax, dword [ebp - 0x304]
call fcn.0097ccf0
lea eax, [ebp - 0x504]
mov edx, 0x97b250
movzx ecx, byte [eax]
inc ecx
call fcn.00409798
je 0x97aa45
mov eax, dword [ebp + 0x30]
push eax
push 1
push 0
lea eax, [ebp - 0x64c]
push eax
mov ecx, dword [ebp + 0x2c]
mov edx, 0x97b3d0
mov eax, dword [ebp - 0x304]
call fcn.0097f92c
mov eax, dword [ebp - 0x64c]
mov edx, 0x97b3f8
call fcn.0040a67c
jne 0x97aa45
mov eax, dword [ebp + 0x30]
push eax
lea eax, [ebp - 0x2dc]
push eax
mov ecx, dword [ebp + 0x2c]
mov edx, dword [ebp + 0x60]
mov eax, dword [ebp - 0x304]
call fcn.00969408
mov eax, dword [ebp - 0x2e0]
mov edx, dword [eax]
call dword [edx + 0x14]
cmp eax, dword [ebp - 0x2ec]
jle 0x97aa65
cmp byte [0xa4a778], 0
je 0x97a0d1
mov eax, dword [ebp + 0x58]
cmp dword [eax], 0
jle 0x97aa80
cmp word [ebp + 0x3a], 0
je 0x97aa80
mov edx, dword [ebp - 0x304]
mov eax, dword [ebp + 0x3c]
call dword [ebp + 0x38]
cmp byte [ebp + 0x1c], 0
jne 0x97aab1
mov eax, dword [ebp - 0x56c]
call fcn.0045d7dc
jmp 0x97aa9a
push 1
call sub.KERNEL32.DLL_Sleep
mov eax, dword [ebp - 0x56c]
cmp byte [eax + 0xd], 0
je 0x97aa93
mov eax, dword [ebp - 0x56c]
call fcn.00407470
cmp byte [ebp + 0x1c], 0
jne 0x97aaf9
mov eax, dword [ebp - 0x304]
mov eax, dword [eax + 0x390]
mov edx, 0x97b408
call fcn.0067525c
mov eax, dword [ebp - 0x304]
mov eax, dword [eax + 0x390]
mov edx, 0x97b418
call fcn.0067525c
mov eax, dword [ebp - 0x304]
mov eax, dword [eax + 0x390]
mov edx, 0x97b428
call fcn.0067525c
cmp dword [ebp - 0x2e8], 0
jle 0x97ab38
mov ebx, dword [ebp - 0x2e8]
test ebx, ebx
jl 0x97ab38
inc ebx
mov dword [ebp - 0x2ec], 0
mov eax, dword [ebp - 0x2e4]
mov edx, dword [ebp - 0x2ec]
mov eax, dword [eax + edx*4]
test eax, eax
je 0x97ab2f
call fcn.00407470
inc dword [ebp - 0x2ec]
dec ebx
jne 0x97ab17
xor eax, eax
mov dword [ebp - 0x2e8], eax
cmp byte [ebp + 0x1c], 0
jne 0x97ac94
mov ebx, dword [ebp - 0x578]
dec ebx
test ebx, ebx
jl 0x97ab7f
inc ebx
mov dword [ebp - 0x2ec], 0
mov eax, dword [ebp + 0x2c]
mov eax, dword [eax]
mov eax, dword [eax + 0x10]
mov edx, dword [ebp - 0x2ec]
mov eax, dword [eax + edx*4]
call fcn.00407470
inc dword [ebp - 0x2ec]
dec ebx
jne 0x97ab60
mov ebx, esi
dec ebx
test ebx, ebx
jl 0x97abb4
inc ebx
mov dword [ebp - 0x2ec], 0
mov eax, dword [ebp + 0x2c]
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 0x2ec]
mov eax, dword [eax + edx*4]
test eax, eax
je 0x97abab
call fcn.00407470
inc dword [ebp - 0x2ec]
dec ebx
jne 0x97ab91
push 0
mov eax, dword [ebp + 0x2c]
mov eax, dword [eax]
add eax, 0xc
mov ecx, 1
mov edx, dword [0x94407c]
call fcn.0040ba30
add esp, 4
mov ebx, dword [ebp - 0x574]
dec ebx
test ebx, ebx
jl 0x97ac19
inc ebx
mov dword [ebp - 0x2ec], 0
lea eax, [ebp - 0x558]
call fcn.00431ba8
mov eax, dword [ebp - 0x2ec]
add eax, eax
mov edx, dword [ebp + 0x2c]
mov edx, dword [edx]
mov edx, dword [edx + 0x14]
lea eax, [edx + eax*8]
lea edx, [ebp - 0x558]
call fcn.00437b08
inc dword [ebp - 0x2ec]
dec ebx
jne 0x97abe7
push 0
mov eax, dword [ebp + 0x2c]
mov eax, dword [eax]
add eax, 0x14
mov ecx, 1
mov edx, dword [0x9440ec]
call fcn.0040ba30
add esp, 4
mov eax, dword [ebp + 0x2c]
mov eax, dword [eax]
mov eax, dword [eax + 0x18]
call fcn.0040b884
mov ebx, eax
test ebx, ebx
jl 0x97ac77
inc ebx
mov dword [ebp - 0x2ec], 0
mov eax, dword [ebp + 0x2c]
mov eax, dword [eax]
mov eax, dword [eax + 0x18]
mov edx, dword [ebp - 0x2ec]
mov eax, dword [eax + edx*4]
test eax, eax
je 0x97ac6e
call fcn.00407470
inc dword [ebp - 0x2ec]
dec ebx
jne 0x97ac54
push 0
mov eax, dword [ebp + 0x2c]
mov eax, dword [eax]
add eax, 0x18
mov ecx, 1
mov edx, dword [0x944124]
call fcn.0040ba30
add esp, 4
cmp byte [ebp + 0x34], 0
je 0x97acfc
lea eax, [ebp - 0x504]
mov edx, 0x97b250
movzx ecx, byte [eax]
inc ecx
call fcn.00409798
je 0x97ad9d
lea eax, [ebp - 0x2dc]
push eax
lea edx, [ebp - 0x654]
mov eax, dword [0xa403fc]
mov eax, dword [eax]
call fcn.00549288
mov ecx, dword [ebp - 0x654]
lea eax, [ebp - 0x650]
mov edx, 0x97b438
call fcn.0040a4e4
mov edx, dword [ebp - 0x650]
mov ecx, dword [ebp + 0x60]
mov eax, dword [ebp - 0x304]
call fcn.0097ccf0
jmp 0x97ad9d
lea eax, [ebp - 0x504]
mov edx, 0x97b250
movzx ecx, byte [eax]
inc ecx
call fcn.00409798
je 0x97ad9d
mov eax, dword [ebp + 0x30]
push eax
push 1
push 0
lea eax, [ebp - 0x658]
push eax
mov ecx, dword [ebp + 0x2c]
mov edx, 0x97b290
mov eax, dword [ebp - 0x304]
call fcn.0097f92c
mov eax, dword [ebp - 0x658]
mov edx, 0x97b124
call fcn.0040a67c
je 0x97ad9d
cmp byte [ebp + 0x1c], 0
je 0x97ad6c
lea eax, [ebp - 0x2dc]
push eax
mov ecx, dword [ebp + 0x60]
mov edx, 0x97b468
mov eax, dword [ebp - 0x304]
call fcn.0097ccf0
jmp 0x97ad9d
lea eax, [ebp - 0x2dc]
push eax
lea eax, [ebp - 0x65c]
mov ecx, dword [ebp - 0x508]
mov edx, 0x97b438
call fcn.0040a4e4
mov edx, dword [ebp - 0x65c]
mov ecx, dword [ebp + 0x60]
mov eax, dword [ebp - 0x304]
call fcn.0097ccf0
cmp word [ebp - 0x2d8], 0xd7b2
jne 0x97adb8
lea eax, [ebp - 0x2dc]
call fcn.00405718
call fcn.00404a78
mov eax, dword [ebp - 0x2e0]
call fcn.00407470
mov eax, dword [ebp - 0x304]
cmp byte [eax + 0x3ec], 0
je 0x97adee
cmp byte [ebp + 0x1c], 0
jne 0x97adee
cmp dword [ebp - 0x560], 0
je 0x97adee
push 0
push 0
push 1
push 0x11
call sub.user32.dll_SystemParametersInfoW
mov eax, dword [ebp + 0x64]
mov edx, 0x97b148
movzx ecx, byte [eax]
inc ecx
call fcn.00409798
je 0x97ae3e
mov eax, dword [ebp + 0x64]
mov edx, 0x97b14c
movzx ecx, byte [eax]
inc ecx
call fcn.00409798
je 0x97ae3e
mov eax, dword [ebp + 0x64]
mov edx, 0x97b150
movzx ecx, byte [eax]
inc ecx
call fcn.00409798
je 0x97ae3e
mov eax, dword [ebp + 0x64]
mov edx, 0x97b154
movzx ecx, byte [eax]
inc ecx
call fcn.00409798
jne 0x97af1f
lea eax, [ebp - 0x660]
mov edx, dword [ebp - 0x304]
add edx, 0x3d9
call fcn.0040a400
mov edx, dword [ebp - 0x660]
mov eax, dword [ebp - 0x304]
mov ecx, dword [eax + 0x480]
mov eax, dword [ebp - 0x304]
mov eax, dword [eax + 0x484]
add eax, 8
call fcn.0040a4e4
lea edx, [ebp - 0x664]
mov eax, dword [ebp - 0x55c]
call fcn.00424d78
lea eax, [ebp - 0x664]
mov edx, 0x97b494
call fcn.0040a48c
mov ecx, dword [ebp - 0x664]
mov eax, dword [ebp - 0x304]
mov eax, dword [eax + 0x484]
mov edx, dword [ebp - 0x55c]
call fcn.006850e8
mov eax, dword [ebp - 0x55c]
call fcn.00424b08
lea edx, [ebp - 0x668]
mov eax, dword [ebp - 0x55c]
call fcn.00424d78
mov edx, dword [ebp - 0x668]
lea eax, [ebp - 0x540]
mov ecx, 0x97b494
call fcn.0040a4e4
lea eax, [ebp - 0x544]
mov edx, dword [ebp - 0x55c]
call fcn.0040954c
mov eax, dword [ebp - 0x544]
call fcn.0040a278
push eax
mov eax, dword [ebp - 0x540]
call fcn.0040a278
push eax
call sub.KERNEL32.DLL_MoveFileW
cmp eax, 1
sbb eax, eax
inc eax
cmp byte [0xa4a7a4], 0
je 0x97af44
cmp byte [ebp + 0x1c], 0
jne 0x97af44
cmp byte [ebp - 0x579], 0
jne 0x97af44
mov eax, dword [ebp + 0x10]
call fcn.00407470
call sub.ole32.dll_CoUninitialize
mov eax, dword [ebp + 0x30]
push eax
push 1
push 0
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [ebp + 0x2c]
mov edx, 0x97b4b4
mov eax, dword [ebp - 0x304]
call fcn.0097f92c
mov eax, dword [ebp - 0x304]
mov byte [eax + 0x47d], 1
cmp byte [ebp + 0x1c], 0
jne 0x97af89
push 0
mov eax, dword [ebp - 0x304]
call fcn.004ad7c0
push eax
call sub.user32.dll_ShowWindow
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x97b06a
lea eax, [ebp - 0x668]
mov edx, 0x34
call fcn.00409184
lea eax, [ebp - 0x598]
call fcn.00409148
lea eax, [ebp - 0x594]
mov edx, 3
call fcn.00409184
lea eax, [ebp - 0x588]
call fcn.0040d1b4
lea eax, [ebp - 0x584]
call fcn.00409124
lea eax, [ebp - 0x558]
call fcn.00431bbc
lea eax, [ebp - 0x544]
mov edx, 5
call fcn.00409184
lea eax, [ebp - 0x530]
mov edx, 2
call fcn.004091b4
lea eax, [ebp - 0x528]
mov edx, 6
call fcn.00409184
lea eax, [ebp - 0x50c]
call fcn.00409124
lea eax, [ebp - 0x300]
call fcn.00409124
lea eax, [ebp - 0x2f4]
mov edx, dword [0x9442d8]
call fcn.0040bb54
lea eax, [ebp - 0x2e4]
mov edx, dword [0x944430]
call fcn.0040bb54
lea eax, [ebp + 0x14]
call fcn.00409124
lea eax, [ebp + 0x5c]
mov edx, 2
call fcn.00409184
ret