Function at 0x48618e
Capabilities:
Check if file exists
Contain obfuscated stackstrings
Copy file
Get file attributes
Move file
Set thread local storage value

Disassembly:
push 0x78
mov eax, 0x5215c9
call fcn.004d8abf
mov edi, ecx
mov dword [ebp - 0x24], edi
xor ebx, ebx
lea ecx, [ebp - 0x18]
mov dword [ebp - 0x3c], ebx
call fcn.0040687a
lea ecx, [ebp - 0x1c]
mov dword [ebp - 4], ebx
call fcn.0040687a
lea ecx, [ebp - 0x10]
call fcn.0040687a
mov dword [ebp - 0x14], ebx
push 4
mov byte [ebp - 4], 3
mov ecx, dword [0x57d3ec]
mov eax, dword [edi]
add ecx, 8
pop ebx
push ecx
add eax, ebx
lea ecx, [ebp - 0x14]
push eax
lea eax, [ebp - 0x6c]
push eax
call fcn.00485f03
mov byte [ebp - 4], bl
cmp dword [ebp - 0x6c], 0
jge 0x486242
cmp dword [ebp - 0x68], 0
mov eax, 0x2e5c
cmovne eax, dword [ebp - 0x68]
push eax
push dword [ebp - 0x6c]
push ecx
mov esi, esp
mov dword [ebp + 0xc], esi
mov ecx, dword [ebp - 0x64]
lea ecx, [ecx - 0x10]
call fcn.004070e7
add eax, 0x10
lea ecx, [ebp - 0x78]
mov dword [esi], eax
call fcn.00406620
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x78]
push eax
mov byte [ebp - 4], 5
call fcn.0040121b
mov ecx, dword [ebp - 0x70]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x64]
lea ecx, [ecx - 0x10]
jmp 0x4864f9
mov ecx, dword [ebp - 0x64]
lea ecx, [ecx - 0x10]
call fcn.00407189
lea ecx, [ebp - 0x20]
call fcn.0040687a
lea eax, [ebp - 0x20]
mov byte [ebp - 4], 6
push eax
push ecx
mov ecx, esp
push 0x548bb0
call fcn.00406fea
mov esi, dword [ebp + 0xc]
mov ecx, esi
call fcn.0044df9d
test al, al
jne 0x4862b2
push 0x2e5f
push 0x80004005
push ecx
mov ecx, esp
call fcn.0040687a
lea ecx, [ebp - 0x78]
call fcn.00406620
mov byte [ebp - 4], 7
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x78]
push eax
call fcn.0040121b
mov ecx, dword [ebp - 0x70]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x20]
jmp 0x48623a
lea eax, [ebp - 0x1c]
push eax
push ecx
mov ecx, esp
push str.locale
call fcn.00406fea
mov ecx, esi
call fcn.0044df9d
test al, al
jne 0x4862ee
push 0x2e61
push 0x80004005
push ecx
mov ecx, esp
call fcn.0040687a
lea ecx, [ebp - 0x78]
call fcn.00406620
mov byte [ebp - 4], 8
jmp 0x486296
lea eax, [ebp - 0x10]
push eax
push ecx
mov ecx, esp
push str.target
call fcn.00406fea
mov ecx, esi
call fcn.0044df9d
test al, al
jne 0x48632d
push 0x2e63
push 0x80004005
push ecx
mov ecx, esp
call fcn.0040687a
lea ecx, [ebp - 0x78]
call fcn.00406620
mov byte [ebp - 4], 9
jmp 0x486296
lea ecx, [ebp + 0xc]
call fcn.0040687a
lea eax, [ebp + 0xc]
mov byte [ebp - 4], 0xa
push eax
push ecx
mov ecx, esp
push str.config
call fcn.00406fea
mov ecx, esi
call fcn.0044df9d
test al, al
jne 0x486392
push 0x2e66
push 0x80004005
push ecx
mov ecx, esp
call fcn.0040687a
lea ecx, [ebp - 0x78]
call fcn.00406620
mov byte [ebp - 4], 0xb
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x78]
push eax
call fcn.0040121b
mov ecx, dword [ebp - 0x70]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp + 0xc]
jmp 0x4862a5
push dword [ebp + 0xc]
call fcn.004e4b85
pop ecx
mov dword [ebp - 0x44], eax
lea eax, [ebp + 0xc]
push eax
push ecx
mov ecx, esp
push str.file
call fcn.00406fea
mov ecx, esi
call fcn.0044df9d
test al, al
jne 0x4863da
push 0x2e69
push 0x80004005
push ecx
mov ecx, esp
call fcn.0040687a
lea ecx, [ebp - 0x78]
call fcn.00406620
mov byte [ebp - 4], 0xc
jmp 0x486373
mov esi, dword [ebp + 0xc]
push esi
call fcn.004e4b85
pop ecx
mov ecx, dword [edi]
add ecx, 0x28
mov dword [ebp - 0x34], eax
push ecx
lea ecx, [ebp - 0x68]
call fcn.004044ab
mov byte [ebp - 4], 0xd
mov eax, dword [ebp - 0x20]
add eax, 0xfffffff0
mov ecx, eax
mov dword [ebp - 0x28], eax
call fcn.004070e7
mov ecx, dword [ebp - 0x68]
mov ebx, eax
mov ecx, dword [ecx]
lea eax, [ebx + 0x10]
mov dword [ebp - 0x30], eax
mov edi, dword [ecx]
cmp edi, ecx
je 0x48643e
mov eax, dword [edi + 8]
lea edx, [ebp - 0x30]
mov ecx, eax
mov dword [ebp - 0x38], eax
call fcn.00405d14
test al, al
jne 0x48647e
mov ecx, dword [ebp - 0x68]
mov eax, dword [edi]
mov edi, eax
cmp eax, dword [ecx]
jne 0x48641c
mov eax, dword [ebp - 0x30]
xor ebx, ebx
lea ecx, [eax - 0x10]
mov dword [ebp - 0x38], ebx
call fcn.00407189
test ebx, ebx
jne 0x486485
push 0x2e6e
push 0x80004005
push ecx
mov ecx, esp
call fcn.0040687a
lea ecx, [ebp - 0x78]
call fcn.00406620
mov byte [ebp - 4], 0xe
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x78]
push eax
call fcn.0040121b
mov ecx, dword [ebp - 0x70]
jmp 0x4864da
mov ecx, ebx
mov ebx, dword [ebp - 0x38]
jmp 0x486446
mov eax, dword [ebp - 0x68]
xor edi, edi
mov edx, dword [eax]
mov eax, dword [edx]
cmp eax, edx
jmp 0x4864a2
cmp dword [eax + 8], ebx
je 0x486556
mov ecx, dword [eax]
inc edi
mov eax, ecx
cmp ecx, edx
mov dword [ebp - 0x40], edi
jne 0x486492
push 0x2e70
push 0x80004005
push ecx
mov ecx, esp
call fcn.0040687a
lea ecx, [ebp - 0x84]
call fcn.00406620
mov byte [ebp - 4], 0xf
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x84]
push eax
call fcn.0040121b
mov ecx, dword [ebp - 0x7c]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x64]
test ecx, ecx
je 0x4864ee
call fcn.00405adf
lea ecx, [esi - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x28]
call fcn.00407189
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x48652a
push 0
push 1
push dword [eax]
call dword [sym.imp.KERNEL32.dll_ReleaseSemaphore]
mov eax, dword [0x57d3ec]
mov eax, dword [eax + 0xf8]
cmp eax, 0xffffffff
je 0x48652a
push 0
push eax
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
mov ecx, dword [ebp - 0x10]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x1c]
add ecx, 0xfffffff0
call fcn.00407189
mov ecx, dword [ebp - 0x18]
add ecx, 0xfffffff0
call fcn.00407189
mov eax, dword [ebp + 8]
call fcn.004d8a8d
ret 0xc
mov edi, dword [ebx + 0x44]
xor edx, edx
mov eax, dword [edi]
cmp eax, edi
je 0x486571
mov ebx, dword [ebp - 0x44]
cmp edx, ebx
je 0x486597
mov ecx, dword [eax]
inc edx
mov eax, ecx
cmp ecx, edi
jne 0x486564
push 0x2e73
push 0x80004005
push ecx
mov ecx, esp
call fcn.0040687a
lea ecx, [ebp - 0x84]
call fcn.00406620
mov byte [ebp - 4], 0x10
jmp 0x4864c8
mov eax, dword [eax + 8]
mov dword [ebp - 0x60], eax
test eax, eax
je 0x486571
push dword [ebp - 0x34]
mov ecx, eax
call fcn.00438b4d
mov edi, eax
mov dword [ebp - 0x44], edi
test edi, edi
jne 0x4865d7
push 0x2e76
push 0x80004005
push ecx
mov ecx, esp
call fcn.0040687a
lea ecx, [ebp - 0x78]
call fcn.00406620
mov byte [ebp - 4], 0x11
jmp 0x48646d
push dword [ebp - 0x34]
lea eax, [ebp - 0x5c]
push ebx
push str._d:_d
push eax
call fcn.004011e0
add esp, 0x10
mov dword [ebp - 0x48], eax
mov byte [ebp - 4], 0x12
cmp byte [edi + 0x30], 0
mov edi, dword [ebp - 0x1c]
je 0x486615
lea ecx, [edi - 0x10]
call fcn.004070e7
add eax, 0x10
mov dword [ebp - 0x30], eax
lea eax, [ebp - 0x30]
mov byte [ebp - 4], 0x13
push 2
jmp 0x486626
lea ecx, [ebp - 0x58]
call fcn.0040687a
mov dword [ebp - 4], 0x14
push 4
pop ebx
push 0x53d0c0
mov edx, eax
mov dword [ebp - 0x3c], ebx
lea ecx, [ebp - 0x54]
call fcn.00409442
mov dword [ebp - 4], 0x15
lea ecx, [ebp - 0x50]
push dword [ebp - 0x48]
mov edx, eax
call fcn.0040a037
push 0x53d0c0
mov edx, eax
mov byte [ebp - 4], 0x16
lea ecx, [ebp - 0x4c]
call fcn.00409442
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 0x17
push ecx
mov edx, eax
lea ecx, [ebp - 0x2c]
call fcn.0040a037
add esp, 0x10
mov ecx, dword [ebp - 0x4c]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x50]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x54]
lea ecx, [ecx - 0x10]
call fcn.00407189
test bl, 4
je 0x4866a9
mov ecx, dword [ebp - 0x58]
and ebx, 0xfffffffb
lea ecx, [ecx - 0x10]
call fcn.00407189
test bl, 2
je 0x4866b9
mov ecx, dword [ebp - 0x30]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov byte [ebp - 4], 0x1e
mov ecx, dword [ebp - 0x5c]
add ecx, 0xfffffff0
call fcn.00407189
push ecx
mov ebx, esp
mov dword [ebp - 0x48], ebx
mov ecx, dword [ebp - 0x2c]
lea ecx, [ecx - 0x10]
call fcn.004070e7
add eax, 0x10
lea edx, [ebp - 0x2c]
lea ecx, [ebp - 0x78]
mov dword [ebx], eax
call fcn.0042e12b
pop ecx
mov byte [ebp - 4], 0x1f
cmp dword [ebp - 0x78], 0
jge 0x4867b9
cmp dword [ebp - 0x74], 0
mov eax, 0x2e7c
cmovne eax, dword [ebp - 0x74]
push eax
push dword [ebp - 0x78]
push ecx
mov ecx, dword [ebp - 0x70]
mov ebx, esp
mov dword [ebp - 0x60], ebx
lea ecx, [ecx - 0x10]
call fcn.004070e7
add eax, 0x10
lea ecx, [ebp - 0x84]
mov dword [ebx], eax
call fcn.00406620
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x84]
push eax
mov byte [ebp - 4], 0x20
call fcn.0040121b
mov ecx, dword [ebp - 0x7c]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x70]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x2c]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x64]
test ecx, ecx
je 0x48676a
call fcn.00405adf
lea ecx, [esi - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x28]
call fcn.00407189
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x4867a6
push 0
push 1
push dword [eax]
call dword [sym.imp.KERNEL32.dll_ReleaseSemaphore]
mov eax, dword [0x57d3ec]
mov eax, dword [eax + 0xf8]
cmp eax, 0xffffffff
je 0x4867a6
push 0
push eax
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
mov ecx, dword [ebp - 0x10]
lea ecx, [ecx - 0x10]
call fcn.00407189
lea ecx, [edi - 0x10]
jmp 0x48653b
mov byte [ebp - 4], 0x1e
mov ecx, dword [ebp - 0x70]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov edx, dword [ebp - 0x24]
lea ecx, [ebp - 0x30]
push 0x53d64c
mov edx, dword [edx]
add edx, 0x48
call fcn.00409442
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0x21
push ecx
mov edx, eax
lea ecx, [ebp - 0x48]
call fcn.0040a037
pop ecx
pop ecx
push eax
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 0x22
call fcn.00405d6e
mov ecx, dword [ebp - 0x48]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x30]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x2c]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x64]
test ecx, ecx
je 0x48682b
call fcn.00405adf
lea ecx, [esi - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x28]
call fcn.00407189
mov eax, dword [ebp - 0x14]
mov ebx, dword [sym.imp.KERNEL32.dll_TlsSetValue]
test eax, eax
je 0x486869
push 0
push 1
push dword [eax]
call dword [sym.imp.KERNEL32.dll_ReleaseSemaphore]
mov eax, dword [0x57d3ec]
mov eax, dword [eax + 0xf8]
cmp eax, 0xffffffff
je 0x486869
push 0
push eax
call ebx
mov esi, dword [ebp - 0x18]
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x486d34
and dword [ebp - 0x14], 0
mov eax, dword [ebp - 0x24]
mov byte [ebp - 4], 0x23
mov ecx, dword [0x57d3ec]
add ecx, 8
mov eax, dword [eax]
push ecx
add eax, 0xc
lea ecx, [ebp - 0x14]
push eax
lea eax, [ebp - 0x78]
push eax
call fcn.00485f03
mov byte [ebp - 4], 0x24
cmp dword [ebp - 0x78], 0
jge 0x486953
cmp dword [ebp - 0x74], 0
mov eax, 0x2e89
cmovne eax, dword [ebp - 0x74]
push eax
push dword [ebp - 0x78]
push ecx
mov ebx, esp
mov dword [ebp + 0xc], ebx
mov ecx, dword [ebp - 0x70]
lea ecx, [ecx - 0x10]
call fcn.004070e7
add eax, 0x10
lea ecx, [ebp - 0x84]
mov dword [ebx], eax
call fcn.00406620
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x84]
push eax
mov byte [ebp - 4], 0x25
call fcn.0040121b
mov ecx, dword [ebp - 0x7c]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x70]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x486938
push 0
push 1
push dword [eax]
call dword [sym.imp.KERNEL32.dll_ReleaseSemaphore]
mov eax, dword [0x57d3ec]
mov eax, dword [eax + 0xf8]
cmp eax, 0xffffffff
je 0x486938
push 0
push eax
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
mov ecx, dword [ebp - 0x10]
add ecx, 0xfffffff0
call fcn.00407189
lea ecx, [edi - 0x10]
call fcn.00407189
lea ecx, [esi - 0x10]
jmp 0x486546
mov byte [ebp - 4], 0x23
mov ecx, dword [ebp - 0x70]
lea ecx, [ecx - 0x10]
call fcn.00407189
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x486d0c
lea ecx, [ebp - 0x5c]
call fcn.004282f6
push 0x5444e8
mov edx, eax
mov byte [ebp - 4], 0x26
lea ecx, [ebp + 0xc]
call fcn.00409442
push dword [ebp - 0x44]
mov edx, eax
mov byte [ebp - 4], 0x27
lea ecx, [ebp - 0x20]
call fcn.0040a037
pop ecx
pop ecx
mov ecx, dword [ebp + 0xc]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov byte [ebp - 4], 0x2a
mov ecx, dword [ebp - 0x5c]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov eax, dword [ebp - 0x24]
lea ecx, [ebp - 0x58]
push 0x53d64c
mov edx, dword [eax]
add edx, 0x48
call fcn.00409442
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 0x2b
push ecx
mov edx, eax
lea ecx, [ebp - 0x28]
call fcn.0040a037
pop ecx
pop ecx
mov byte [ebp - 4], 0x2d
mov ecx, dword [ebp - 0x58]
add ecx, 0xfffffff0
call fcn.00407189
push ecx
mov ebx, esp
mov dword [ebp + 0xc], ebx
mov ecx, dword [ebp - 0x28]
lea ecx, [ecx - 0x10]
call fcn.004070e7
add eax, 0x10
lea ecx, [ebp - 0x30]
mov dword [ebx], eax
call fcn.0042bab1
mov eax, dword [ebp - 0x24]
mov byte [ebp - 4], 0x2e
mov eax, dword [eax]
mov cl, byte [eax + 0x60]
mov eax, dword [eax + 0x5c]
push ecx
mov dword [ebp - 0x58], eax
mov ebx, esp
lea eax, [edi - 0x10]
mov dword [ebp - 0x5c], ecx
mov dword [ebp + 0xc], ebx
mov ecx, eax
mov dword [ebp - 0x54], esp
mov dword [ebp + 0xc], eax
call fcn.004070e7
add eax, 0x10
mov dword [ebx], eax
mov eax, dword [ebp - 0x24]
push 0
mov byte [ebp - 4], 0x2f
push 0
mov ecx, dword [eax]
add ecx, 0x64
push ecx
mov ebx, esp
mov dword [ebp - 0x50], esp
mov dword [ebp - 0x4c], ebx
mov ecx, dword [ecx]
sub ecx, 0x10
call fcn.004070e7
add eax, 0x10
mov dword [ebx], eax
mov byte [ebp - 4], 0x30
push dword [ebp - 0x5c]
push dword [ebp - 0x34]
push dword [ebp - 0x40]
push dword [ebp - 0x58]
push ecx
mov ebx, esp
mov dword [ebp - 0x5c], esp
mov dword [ebp - 0x58], ebx
mov ecx, dword [ebp - 0x20]
lea ecx, [ecx - 0x10]
call fcn.004070e7
add eax, 0x10
mov dword [ebx], eax
mov eax, dword [ebp - 0x24]
mov byte [ebp - 4], 0x31
mov ecx, dword [eax]
add ecx, 0x48
push ecx
mov ebx, esp
mov dword [ebp - 0x58], ebx
mov ecx, dword [ecx]
sub ecx, 0x10
call fcn.004070e7
push dword [ebp - 0x44]
add eax, 0x10
push dword [ebp - 0x60]
mov dword [ebx], eax
push ecx
mov ecx, esp
call fcn.0040687a
push ecx
mov ecx, esp
call fcn.0040687a
push ecx
mov ecx, esp
call fcn.0040687a
mov edx, dword [ebp - 0x38]
lea ecx, [ebp - 0x6c]
mov byte [ebp - 4], 0x2e
call fcn.00458a73
add esp, 0x3c
lea eax, [ebp - 0x6c]
mov byte [ebp - 4], 0x32
push eax
lea ecx, [ebp - 0x78]
call fcn.0040121b
mov byte [ebp - 4], 0x33
cmp dword [ebp - 0x78], 0
jge 0x486bc0
cmp dword [ebp - 0x74], 0
mov eax, 0x2ea8
mov ebx, dword [ebp - 0x70]
cmovne eax, dword [ebp - 0x74]
push eax
push dword [ebp - 0x78]
push ecx
mov edi, esp
lea ecx, [ebx - 0x10]
mov dword [ebp - 0x60], edi
call fcn.004070e7
add eax, 0x10
lea ecx, [ebp - 0x84]
mov dword [edi], eax
call fcn.00406620
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x84]
push eax
mov byte [ebp - 4], 0x34
call fcn.0040121b
mov ecx, dword [ebp - 0x7c]
lea ecx, [ecx - 0x10]
call fcn.00407189
lea ecx, [ebx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x64]
lea ecx, [ecx - 0x10]
call fcn.00407189
lea ecx, [ebp - 0x30]
call fcn.0042bae8
mov ecx, dword [ebp - 0x28]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x20]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x486bad
push 0
push 1
push dword [eax]
call dword [sym.imp.KERNEL32.dll_ReleaseSemaphore]
mov eax, dword [0x57d3ec]
mov eax, dword [eax + 0xf8]
cmp eax, 0xffffffff
je 0x486bad
push 0
push eax
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
mov ecx, dword [ebp - 0x10]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp + 0xc]
jmp 0x486946
mov ecx, dword [ebp - 0x70]
lea ecx, [ecx - 0x10]
call fcn.00407189
push esi
push dword [ebp - 0x28]
call dword [sym.imp.KERNEL32.dll_MoveFileW]
test eax, eax
jne 0x486c92
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
push 0x2eab
cmovle ecx, eax
mov eax, 0x80004005
test ecx, ecx
cmovs eax, ecx
push eax
push ecx
mov ecx, esp
call fcn.0040687a
lea ecx, [ebp - 0x84]
call fcn.00406620
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x84]
push eax
mov byte [ebp - 4], 0x35
call fcn.0040121b
mov ecx, dword [ebp - 0x7c]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x64]
lea ecx, [ecx - 0x10]
call fcn.00407189
lea ecx, [ebp - 0x30]
call fcn.0042bae8
mov ecx, dword [ebp - 0x28]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x20]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x486c87
push 0
push 1
push dword [eax]
call dword [sym.imp.KERNEL32.dll_ReleaseSemaphore]
mov eax, dword [0x57d3ec]
mov eax, dword [eax + 0xf8]
cmp eax, 0xffffffff
je 0x486c87
push 0
push eax
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
mov ecx, dword [ebp - 0x10]
add ecx, 0xfffffff0
jmp 0x486bb3
mov eax, dword [0x57d3ec]
add eax, 0x54
mov byte [ebp + 0xf], 1
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov byte [ebp - 4], 0x36
call fcn.0044f24f
push str.Waiting...
mov ebx, eax
call fcn.004ddaa2
pop ecx
push eax
push str.Waiting...
lea ecx, [ebx + 0x44]
call fcn.00406efb
call fcn.0044f24f
lea ecx, [ebp + 0xf]
mov byte [eax + 0x1a9], 1
call fcn.0044f694
mov ecx, dword [ebp - 0x64]
lea ecx, [ecx - 0x10]
call fcn.00407189
lea ecx, [ebp - 0x30]
call fcn.0042bae8
mov ecx, dword [ebp - 0x28]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x20]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ebx, dword [sym.imp.KERNEL32.dll_TlsSetValue]
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x486d34
push 0
push 1
push dword [eax]
call dword [sym.imp.KERNEL32.dll_ReleaseSemaphore]
mov eax, dword [0x57d3ec]
mov eax, dword [eax + 0xf8]
cmp eax, 0xffffffff
je 0x486d34
push 0
push eax
call ebx
and dword [ebp + 0xc], 0
mov eax, dword [ebp - 0x24]
mov byte [ebp - 4], 0x37
mov ecx, dword [0x57d3ec]
add ecx, 8
mov eax, dword [eax]
push ecx
add eax, 8
lea ecx, [ebp + 0xc]
push eax
lea eax, [ebp - 0x78]
push eax
call fcn.00485f03
mov byte [ebp - 4], 0x38
cmp dword [ebp - 0x78], 0
jge 0x486dc8
cmp dword [ebp - 0x74], 0
mov eax, 0x2ebf
cmovne eax, dword [ebp - 0x74]
push eax
push dword [ebp - 0x78]
push ecx
mov ecx, dword [ebp - 0x70]
mov ebx, esp
mov dword [ebp - 0x60], ebx
lea ecx, [ecx - 0x10]
call fcn.004070e7
add eax, 0x10
lea ecx, [ebp - 0x84]
mov dword [ebx], eax
call fcn.00406620
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x84]
push eax
mov byte [ebp - 4], 0x39
call fcn.0040121b
mov ecx, dword [ebp - 0x7c]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x70]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov eax, dword [ebp + 0xc]
jmp 0x48690f
mov byte [ebp - 4], 0x37
mov ecx, dword [ebp - 0x70]
add ecx, 0xfffffff0
call fcn.00407189
mov eax, dword [ebp - 0x24]
push dword [ebp - 0x10]
push dword [eax + 0x4c]
lea eax, [ebp - 0x2c]
push str._wsADMIN__ws
push eax
call fcn.004011e0
add esp, 0x10
xor eax, eax
mov byte [ebp - 4], 0x3a
push eax
push eax
push eax
push 0x48617c
push dword [ebp - 0x2c]
push esi
call dword [sym.imp.KERNEL32.dll_CopyFileExW]
test eax, eax
jne 0x486ea3
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x4d3
jne 0x486e7b
push 0x2ec6
push 0x80004004
push ecx
mov ecx, esp
push str.User_abort
call fcn.00406fea
mov ecx, dword [ebp + 8]
call fcn.00406620
mov ecx, dword [ebp - 0x2c]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x486e70
push 0
push 1
push dword [eax]
call dword [sym.imp.KERNEL32.dll_ReleaseSemaphore]
mov eax, dword [0x57d3ec]
mov eax, dword [eax + 0xf8]
cmp eax, 0xffffffff
je 0x486e70
push 0
push eax
call ebx
mov ecx, dword [ebp - 0x10]
lea ecx, [ecx - 0x10]
jmp 0x48693e
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
push 0x2ec8
cmovle ecx, eax
mov eax, 0x80004005
test ecx, ecx
cmovs eax, ecx
push eax
push ecx
mov ecx, esp
call fcn.0040687a
jmp 0x486e35
mov ecx, dword [ebp - 0x2c]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x486ed6
push 0
push 1
push dword [eax]
call dword [sym.imp.KERNEL32.dll_ReleaseSemaphore]
mov eax, dword [0x57d3ec]
mov eax, dword [eax + 0xf8]
cmp eax, 0xffffffff
je 0x486ed6
push 0
push eax
call ebx
mov ebx, dword [ebp + 8]
and dword [ebx], 0
lea ecx, [ebx + 8]
and dword [ebx + 4], 0
call fcn.0040687a
mov ecx, dword [ebp - 0x10]
lea ecx, [ecx - 0x10]
call fcn.00407189
lea ecx, [edi - 0x10]
call fcn.00407189
lea ecx, [esi - 0x10]
call fcn.00407189
mov eax, ebx
jmp 0x48654e