Function at 0x496aa0
Capabilities:
Get common file path
Resume thread
Terminate process
Terminate thread

Disassembly:
sub esp, 0x114
mov eax, dword [0x52e144]
xor eax, esp
mov dword [esp + 0x110], eax
cmp byte [0x548d6d], 0
jne 0x4970dc
push 0x520b88
mov byte [0x548d6e], 1
mov byte [0x548d6d], 1
call fcn.00404690
push eax
push 0x527e20
call fcn.00401350
add esp, 0xc
cmp byte [0x54a134], 0
je 0x496b16
cmp dword [0x5378e0], 0
je 0x496b16
push 0x520b6c
call fcn.00404690
push eax
push 0x527e20
call fcn.00401350
add esp, 0xc
call fcn.00496690
mov ecx, dword [0x53970c]
call fcn.004052f0
cmp byte [eax], 0
je 0x496b33
mov ecx, dword [0x53970c]
call fcn.004052f0
jmp 0x496b38
mov eax, 0x50d147
push eax
push 0
push 0x520b54
call fcn.00404690
add esp, 4
push eax
push 0x527e20
call fcn.00401350
push 0x520b48
call fcn.00404690
mov ecx, dword [0x53970c]
add esp, 0x14
push eax
call fcn.004052f0
push eax
call fcn.004bab59
mov eax, dword [0x548d5c]
add esp, 8
test eax, eax
je 0x496b85
push eax
call dword [sym.imp.KERNEL32.dll_SetEvent]
mov eax, dword [0x548d60]
test eax, eax
je 0x496b95
push eax
call dword [sym.imp.KERNEL32.dll_SetEvent]
cmp dword [0x548d4c], 0
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_CloseHandle]
push ebp
push esi
mov esi, dword [sym.imp.KERNEL32.dll_ResumeThread]
push edi
je 0x496c1c
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp eax, dword [0x5378b0]
je 0x496c1c
mov eax, dword [0x548d4c]
push eax
call esi
mov ecx, dword [0x548d4c]
mov edi, dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push 0x4e20
push ecx
call edi
mov ebp, dword [sym.imp.KERNEL32.dll_TerminateThread]
cmp eax, 0x102
jne 0x496c08
mov edx, dword [0x548d4c]
push 0
push edx
call ebp
push 0x520b2c
call fcn.00404690
push eax
push 0x527e20
call fcn.00401350
add esp, 0xc
mov eax, dword [0x548d4c]
push eax
call ebx
mov dword [0x548d4c], 0
jmp 0x496c28
mov ebp, dword [sym.imp.KERNEL32.dll_TerminateThread]
mov edi, dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp dword [0x548ef4], 0
je 0x496c92
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp eax, dword [0x5378b8]
je 0x496c92
mov ecx, dword [0x548ef4]
push ecx
call esi
mov edx, dword [0x548ef4]
push 0x4e20
push edx
call edi
cmp eax, 0x102
jne 0x496c7f
mov eax, dword [0x548ef4]
push 0
push eax
call ebp
push 0x520b10
call fcn.00404690
push eax
push 0x527e20
call fcn.00401350
add esp, 0xc
mov ecx, dword [0x548ef4]
push ecx
call ebx
mov dword [0x548ef4], 0
cmp dword [0x548d54], 0
je 0x496d4e
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp eax, dword [0x5378a4]
je 0x496d4e
mov edx, dword [0x548d54]
push edx
call esi
mov eax, dword [0x548d54]
push 0x4e20
push eax
call edi
cmp eax, 0x102
jne 0x496cf1
mov ecx, dword [0x548d54]
push 0
push ecx
call ebp
push 0x520af8
call fcn.00404690
push eax
push 0x527e20
call fcn.00401350
add esp, 0xc
mov edx, dword [0x548d54]
push edx
call ebx
mov eax, dword [0x548d58]
push 0x4e20
push eax
mov dword [0x548d54], 0
call edi
cmp eax, 0x102
jne 0x496d3b
mov ecx, dword [0x548d58]
push 0
push ecx
call ebp
push 0x520ad4
call fcn.00404690
push eax
push 0x527e20
call fcn.00401350
add esp, 0xc
mov edx, dword [0x548d58]
push edx
call ebx
mov dword [0x548d58], 0
cmp dword [0x548d50], 0
je 0x496db7
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp eax, dword [0x538388]
je 0x496db7
mov eax, dword [0x548d50]
push eax
call esi
mov ecx, dword [0x548d50]
push 0x4e20
push ecx
call edi
cmp eax, 0x102
jne 0x496da5
mov edx, dword [0x548d50]
push 0
push edx
call ebp
push 0x520ab8
call fcn.00404690
push eax
push 0x527e20
call fcn.00401350
add esp, 0xc
mov eax, dword [0x548d50]
push eax
call ebx
mov dword [0x548d50], 0
mov eax, dword [0x548f14]
mov ebp, dword [sym.imp.KERNEL32.dll_Sleep]
test eax, eax
je 0x496e6b
push eax
call fcn.0043d1a0
mov esi, eax
add esp, 4
test esi, esi
je 0x496e6b
push 0
push esi
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
push esi
call ebx
push 1
call ebp
push 0x103
lea ecx, [esp + 0x21]
push 0
push ecx
mov byte [esp + 0x28], 0
call fcn.004b6dc0
add esp, 0xc
push 0
push 0x1c
lea edx, [esp + 0x24]
push edx
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathA]
test eax, eax
je 0x496e6b
push 0x520114
call fcn.00404690
add esp, 4
mov edx, eax
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x496e30
lea edi, [esp + 0x1c]
sub eax, edx
dec edi
mov edi, edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x496e40
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
lea eax, [esp + 0x1c]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
call fcn.004113c0
mov edi, dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
add esp, 4
cmp byte [0x527d8d], 0
je 0x496f3e
cmp dword [0x537f30], 0
je 0x496f30
cmp dword [0x537cf8], 0
je 0x496f30
cmp byte [0x548d83], 0
jne 0x496f30
lea ecx, [esp + 0x10]
push 0xc
push ecx
mov dword [esp + 0x18], 0xc
mov dword [esp + 0x1c], 0xc09
mov dword [esp + 0x20], 1
call fcn.004138e0
add esp, 8
cmp dword [0x548ef0], 0
je 0x496f1f
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp eax, dword [0x5378ac]
je 0x496f1f
mov eax, dword [0x549b10]
inc eax
cmp eax, 0x64
mov dword [0x549b10], eax
jge 0x496f10
lea ecx, [ecx]
cmp byte [0x548d83], 0
jne 0x496f1f
push 0x3e8
call ebp
mov eax, dword [0x549b10]
inc eax
cmp eax, 0x64
mov dword [0x549b10], eax
jl 0x496ef0
mov edx, dword [0x53d190]
push 0
push edx
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
mov eax, dword [0x53d194]
push eax
call ebx
mov ecx, dword [0x53d190]
push ecx
call ebx
cmp byte [0x53788d], 0
jne 0x496f3e
call fcn.004910b0
cmp dword [0x548ef0], 0
je 0x496fb0
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp eax, dword [0x5378ac]
je 0x496fb0
mov edx, dword [0x548efc]
push edx
call dword [sym.imp.KERNEL32.dll_SetEvent]
mov eax, dword [0x548ef0]
push 0x7d0
push eax
call edi
cmp eax, 0x102
jne 0x496f9d
mov ecx, dword [0x548ef0]
push 0
push ecx
call dword [sym.imp.KERNEL32.dll_TerminateThread]
push 0x520aa0
call fcn.00404690
push eax
push 0x527e20
call fcn.00401350
add esp, 0xc
mov edx, dword [0x548ef0]
push edx
call ebx
mov dword [0x548ef0], 0
mov eax, dword [0x53ce98]
push eax
call ebx
mov ecx, dword [0x548ee4]
push ecx
call ebx
mov edx, dword [0x548eec]
mov esi, dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
push edx
call esi
mov eax, dword [0x548ee8]
push eax
call ebx
cmp dword [0x537f30], 0
je 0x497004
cmp dword [0x537cf8], 0
je 0x497004
mov ecx, dword [0x5385a8]
push ecx
call ebx
mov edx, dword [0x5385a4]
push edx
call esi
mov eax, dword [0x5385a0]
push eax
call ebx
cmp byte [0x527d8e], 0
pop edi
pop esi
pop ebp
pop ebx
jne 0x49701f
cmp dword [0x5379f4], 0
je 0x49701f
call fcn.00491b60
call fcn.00495fa0
push 0x520a88
call fcn.00404690
push eax
push 0x527e20
call fcn.00401350
push 0
call fcn.004920d0
push 0x520a70
call fcn.00404690
push eax
push 0x527e20
call fcn.00401350
mov ecx, dword [0x537cc0]
push ecx
call fcn.004920d0
mov ecx, dword [0x548f00]
add esp, 0x20
test ecx, ecx
je 0x497076
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
call eax
call fcn.00440f20
cmp byte [0x548d6a], 0
je 0x4970a8
push 0x520a54
call fcn.00404690
push eax
push 0x527e20
call fcn.00401350
add esp, 0xc
call fcn.004b0c10
mov byte [0x548d6a], 0
cmp byte [0x53bc84], 0
je 0x4970b6
call fcn.0042bb30
cmp dword [0x537c1c], 0
jne 0x4970c4
call fcn.00492ee0
push 0x520a40
call fcn.00404690
push eax
push 0x527e20
call fcn.00401350
add esp, 0xc
mov ecx, dword [esp + 0x110]
xor ecx, esp
mov al, 1
call fcn.004b6da3
add esp, 0x114
ret