Function at 0x466830
Capabilities:
Check for time delay via gettickcount
Copy file
Delete file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5116d0
mov eax, dword fs:[0]
push eax
sub esp, 0x6b0
mov eax, dword [0x58fa2c]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov ebx, ecx
mov dword [ebp - 0x6a4], ebx
push 0
call fcn.004c60d9
add esp, 4
mov esi, eax
mov edx, 2
mov ecx, dword [ebx + 0x158]
mov eax, edx
lock cmpxchg dword [ecx], edx
test eax, eax
je 0x46689f
mov eax, dword [ebx]
push str.PushData:_will_not_push_as_data_files_are_in_copy_process
push 3
push ebx
call dword [eax + 8]
add esp, 0xc
jmp 0x467172
mov eax, dword [ebx + 0x10]
mov eax, dword [eax + 0x60]
cmp dword [eax + 0xa35c], 0
jne 0x4668c3
mov eax, dword [ebx]
push str.PushData:_will_not_push_due_to_permissions
push 3
push ebx
call dword [eax + 8]
add esp, 0xc
jmp 0x467172
cmp dword [eax + 0x3108], 0
je 0x4668e8
push dword [eax + 0x3104]
mov ecx, ebx
call fcn.00465520
test eax, eax
jne 0x4668e8
mov dword [ebx + 0x148], eax
jmp 0x467172
mov eax, dword [ebx + 0x148]
test eax, eax
je 0x466900
cmp esi, eax
jge 0x466900
mov dword [ebx + 0x148], 0
mov ecx, dword [ebx + 0x148]
test ecx, ecx
je 0x466920
mov eax, dword [ebx + 0x10]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + 0x8158]
add eax, ecx
cmp esi, eax
jl 0x467172
mov dword [ebx + 0x144], esi
mov dword [ebx + 0x148], esi
mov dword [ebx + 0x150], 0
mov dword [ebx + 0x14c], 0
mov dword [ebp - 4], 0
mov eax, dword [ebx]
push dword [ebp + 8]
push str.PushData:_Pushing__maximum__d_seconds.
push 3
push ebx
call dword [eax + 8]
add esp, 0x10
mov eax, dword [ebx + 0x10]
mov ecx, dword [eax + 0x60]
add ecx, 0x1d4c
lea edx, [ebp - 0x320]
nop dword [eax]
mov al, byte [ecx]
mov byte [edx], al
lea ecx, [ecx + 1]
lea edx, [edx + 1]
test al, al
jne 0x466970
lea eax, [ebp - 0x320]
push eax
call fcn.00488700
add esp, 4
lea ecx, [ebp - 0x320]
dec ecx
mov al, byte [ecx + 1]
lea ecx, [ecx + 1]
test al, al
jne 0x466994
mov ax, word [0x51ba28]
mov word [ecx], ax
mov al, byte [0x51ba2a]
mov byte [ecx + 2], al
mov eax, dword [ebx + 0x10]
mov edx, dword [eax + 0x60]
add edx, 0x2058
mov esi, edx
nop dword [eax]
mov al, byte [edx]
inc edx
test al, al
jne 0x4669c0
sub edx, esi
lea edi, [ebp - 0x320]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x4669d0
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea eax, [ebp - 0x668]
push eax
lea eax, [ebp - 0x320]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
cmp eax, 0xffffffff
je 0x46713d
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
mov ecx, ebx
call fcn.004650c0
test eax, eax
je 0x467111
mov ecx, ebx
call fcn.004647a0
test eax, eax
je 0x4670d5
push 0x104
push 0
lea eax, [ebx + 0x3c]
push eax
call fcn.004b8570
add esp, 0xc
mov ecx, dword [ebx + 0x10]
mov eax, dword [ecx]
push 0x40000
call dword [eax + 0xc]
push 0x1308
call fcn.00472260
add esp, 4
mov dword [ebp - 0x684], eax
mov byte [ebp - 4], 1
test eax, eax
je 0x466a70
push 0
mov ecx, eax
call fcn.00448790
mov esi, eax
jmp 0x466a72
xor esi, esi
mov dword [ebp - 0x674], esi
mov byte [ebp - 4], 0
mov eax, dword [ebx + 0x10]
mov ecx, dword [eax + 0x60]
push 0
push 0x71
push 0
push 1
lea eax, [ecx + 0x2058]
push eax
lea eax, [ecx + 0x1d4c]
push eax
mov ecx, esi
call fcn.0044cff0
push 0x14
mov eax, dword [ebx + 0x10]
mov eax, dword [eax + 0x60]
add eax, 0x7dd4
push eax
push 0
lea ecx, [ebp - 0x6bc]
call fcn.004489d0
mov byte [ebp - 4], 2
lea eax, [ebp - 0x6bc]
push eax
mov ecx, esi
call fcn.0044b0f0
mov dword [esi + 0x12d8], 1
mov dword [ebp - 0x670], 0
push 0
push 0
push 0
push 2
mov ecx, esi
call fcn.004491b0
mov dword [ebp - 0x670], eax
push eax
push esi
mov ecx, ebx
call fcn.00467370
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push eax
call fcn.004c7471
add esp, 4
mov ecx, dword [ebp - 0x670]
lea ecx, [ecx + 0x114]
call fcn.004812d0
mov dword [ebp - 0x66c], eax
test eax, eax
je 0x466bed
xor edi, edi
mov dword [ebp - 0x694], edi
mov ecx, dword [ebp - 0x670]
add ecx, 0x114
call fcn.00481230
mov esi, eax
call fcn.004c7450
xor edx, edx
div esi
mov eax, edx
mov dword [ebp - 0x678], eax
xor esi, esi
mov dword [ebp - 0x698], esi
cmp esi, eax
jae 0x466b9c
mov ecx, dword [ebp - 0x670]
lea ecx, [ecx + 0x114]
test edi, edi
je 0x466b7c
push edi
call fcn.00481380
jmp 0x466b81
call fcn.004812d0
mov edi, eax
mov dword [ebp - 0x694], edi
test edi, edi
je 0x466bd0
inc esi
mov dword [ebp - 0x698], esi
mov eax, dword [ebp - 0x678]
jmp 0x466b60
mov esi, dword [ebp - 0x66c]
test edi, edi
je 0x466bd6
push edi
push esi
mov ecx, dword [ebp - 0x670]
lea ecx, [ecx + 0x114]
call fcn.00481770
push esi
mov ecx, dword [ebp - 0x670]
lea ecx, [ecx + 0x114]
call fcn.00481380
jmp 0x466b1e
mov esi, dword [ebp - 0x66c]
push esi
mov ecx, dword [ebp - 0x670]
lea ecx, [ecx + 0x114]
call fcn.00481380
jmp 0x466b1e
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x69c], eax
mov dword [ebp - 0x680], 1
mov ecx, dword [ebp - 0x670]
add ecx, 0x114
call fcn.004812d0
mov esi, dword [ebp - 0x674]
mov edi, eax
mov dword [ebp - 0x678], edi
test edi, edi
je 0x4670a3
cmp dword [ebp - 0x680], 0
je 0x4670a3
cmp dword [ebx + 0x14], 0
je 0x4670a3
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [ebp - 0x69c]
imul ecx, dword [ebp + 8], 0x3e8
cmp eax, ecx
jae 0x4670a3
mov ecx, edi
call fcn.0042e490
mov edi, eax
mov dword [ebp - 0x6a0], edi
push 0x104
push 0
lea eax, [ebp - 0x118]
push eax
call fcn.004b8570
push 0x104
push edi
lea eax, [ebp - 0x118]
push eax
call fcn.00488a00
add esp, 0x18
call fcn.00472480
test eax, eax
je 0x466da1
push 0x5c
lea eax, [ebp - 0x118]
push eax
call fcn.004b8c50
add esp, 8
mov edi, eax
test edi, edi
je 0x466da1
push 0x104
push 0
lea eax, [ebp - 0x424]
push eax
call fcn.004b8570
add esp, 0xc
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push eax
call fcn.00472480
push eax
push str._03d__x.sdf
push 0x104
lea eax, [ebp - 0x424]
push eax
call fcn.00445f20
movq xmm0, qword [str.StressTest]
movq qword [edi + 1], xmm0
mov ax, word [0x51e228]
mov word [edi + 9], ax
mov al, byte [0x51e22a]
mov byte [edi + 0xb], al
lea eax, [ebp - 0x118]
push eax
call fcn.0048b3d0
add esp, 0x18
test eax, eax
jne 0x466d35
lea eax, [ebp - 0x118]
push eax
call fcn.0048b000
add esp, 4
lea edi, [ebp - 0x118]
dec edi
nop dword [eax]
mov al, byte [edi + 1]
lea edi, [edi + 1]
test al, al
jne 0x466d40
mov ax, word [0x568af8]
mov word [edi], ax
lea edx, [ebp - 0x424]
mov esi, edx
nop dword [eax + eax]
mov al, byte [edx]
inc edx
test al, al
jne 0x466d60
sub edx, esi
lea edi, [ebp - 0x118]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x466d70
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push 0
lea eax, [ebp - 0x118]
push eax
push dword [ebp - 0x6a0]
call dword [sym.imp.KERNEL32.dll_CopyFileA]
mov esi, dword [ebp - 0x674]
mov eax, dword [esi]
push 0
push 0
lea ecx, [ebp - 0x684]
push ecx
push 1
lea ecx, [ebp - 0x118]
push ecx
push 0
mov ecx, esi
call dword [eax + 0x14]
mov dword [ebp - 0x66c], eax
test eax, eax
jne 0x466f6e
cmp dword [ebp - 0x684], 4
jne 0x467071
mov eax, dword [esi]
push 0
push 0
push 0
push 0
lea ecx, [ebp - 0x118]
push ecx
push 0
mov ecx, esi
call dword [eax + 0x14]
mov edi, eax
mov dword [ebp - 0x66c], edi
test edi, edi
je 0x467071
push 0x104
push 0
lea eax, [ebp - 0x21c]
push eax
call fcn.004b8570
push 0x104
push 0
lea eax, [ebp - 0x528]
push eax
call fcn.004b8570
add esp, 0x18
lea eax, [ebp - 0x6b0]
push eax
mov ecx, edi
call fcn.0044b230
push 0
call fcn.004c60d9
add esp, 4
mov esi, eax
mov ecx, dword [ebx + 0x10]
mov ecx, dword [ecx + 0x60]
add ecx, 0x2058
push ecx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push eax
push esi
push str._Id_d._s
lea eax, [ebp - 0x528]
push eax
call fcn.004482a0
add esp, 0x14
mov eax, dword [ebx + 0x10]
mov ecx, dword [eax + 0x60]
add ecx, 0x1d4c
lea edx, [ebp - 0x21c]
nop
mov al, byte [ecx]
mov byte [edx], al
lea ecx, [ecx + 1]
lea edx, [edx + 1]
test al, al
jne 0x466e80
lea eax, [ebp - 0x21c]
push eax
call fcn.00488700
add esp, 4
lea edx, [ebp - 0x528]
mov esi, edx
mov al, byte [edx]
inc edx
test al, al
jne 0x466ea5
sub edx, esi
lea edi, [ebp - 0x21c]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x466eb5
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push 0
mov eax, dword [ebx + 0x10]
mov eax, dword [eax + 0x60]
add eax, 0x7dd4
push eax
lea eax, [ebp - 0x21c]
push eax
lea eax, [ebp - 0x6b0]
push eax
push dword [ebp - 0x66c]
call fcn.00449d40
mov esi, eax
lea eax, [ebp - 0x6b0]
push eax
call fcn.0044b4c0
add esp, 0x18
push 0
mov ecx, dword [ebp - 0x66c]
call fcn.0044b2e0
mov ecx, dword [ebp - 0x66c]
add ecx, 0x2c
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov ecx, dword [ebp - 0x66c]
test ecx, ecx
je 0x466f30
mov eax, dword [ecx]
push 1
call dword [eax]
mov dword [ebp - 0x66c], 0
test esi, esi
mov esi, dword [ebp - 0x674]
je 0x467071
mov eax, dword [esi]
push 0
push 0
push 0
push 1
lea ecx, [ebp - 0x21c]
push ecx
push 0
mov ecx, esi
call dword [eax + 0x14]
mov dword [ebp - 0x66c], eax
test eax, eax
je 0x467071
mov ecx, dword [ebx + 0x10]
mov eax, dword [ecx]
mov eax, dword [eax + 0xe8]
call eax
test al, al
je 0x467061
lea eax, [ebp - 0x690]
push eax
mov ecx, dword [ebp - 0x66c]
call fcn.0044b230
mov ecx, dword [ebp - 0x66c]
mov eax, dword [ecx + 0x164]
add eax, 0xfffffffe
cmp eax, 0xe
ja case.0x466fb4.9
movzx eax, byte [eax + 0x4671a4]
jmp dword [eax*4 + 0x467194]
cmp dword [ebp - 0x688], 0
je 0x466fde
mov eax, dword [ebp - 0x690]
push dword [eax + 0xc]
mov ecx, ebx
call fcn.00464590
test eax, eax
je case.0x466fb4.9
mov ecx, dword [ebp - 0x66c]
mov dword [ebp - 0x67c], 0
lea eax, [ebp - 0x67c]
push eax
lea eax, [ebp - 0x690]
push eax
push ecx
push esi
mov ecx, ebx
call fcn.00466000
test eax, eax
jne case.0x466fb4.9
cmp dword [ebp - 0x67c], eax
je case.0x466fb4.9
mov eax, dword [ebx]
push str.Unable_to_transmit_snapshot_file__terminating_current_session.
push 0
push ebx
call dword [eax + 8]
add esp, 0xc
mov dword [ebp - 0x680], 0
jmp case.0x466fb4.9
lea eax, [ebp - 0x690]
cmp dword [ebx + 0x140], 0
je 0x467047
push eax
push ecx
mov ecx, ebx
call fcn.00466400
jmp case.0x466fb4.9
lea eax, [ebp - 0x690]
push 1
push eax
push ecx
mov ecx, ebx
call fcn.00465d80
lea eax, [ebp - 0x690]
push eax
call fcn.0044b4c0
add esp, 4
mov eax, dword [esi]
push 0
lea ecx, [ebp - 0x66c]
push ecx
mov ecx, esi
call dword [eax + 0x18]
call fcn.00472480
test eax, eax
je 0x467087
lea eax, [ebp - 0x118]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
push dword [ebp - 0x678]
mov ecx, dword [ebp - 0x670]
lea ecx, [ecx + 0x114]
call fcn.00481380
jmp 0x466c1a
lea eax, [ebp - 0x670]
push eax
mov ecx, esi
call fcn.0044e550
mov ecx, esi
call fcn.0044e780
test esi, esi
je 0x4670c4
mov eax, dword [esi]
push 1
mov ecx, esi
call dword [eax]
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x6bc]
call fcn.00448c40
jmp 0x4670e5
mov eax, dword [ebx]
push str.Data_Vault_not_currently_accepting_data__skipping.
push 1
push ebx
call dword [eax + 8]
add esp, 0xc
mov ecx, ebx
call fcn.004686d0
mov eax, dword [ebx]
push dword [ebx + 0x150]
push dword [ebx + 0x14c]
push str.PushData:_Session_complete._Sent__d_data_transactions___d_snapshot_files.
push 2
push ebx
call dword [eax + 8]
add esp, 0x14
mov dword [ebp - 4], 0xffffffff
jmp 0x467168
mov eax, dword [ebx + 0x10]
mov ecx, dword [eax + 0x60]
mov edx, dword [ebx]
lea eax, [ecx + 0xa8c0]
push eax
push dword [ecx + 0xa9c4]
push str.PushData:_Failed_to_initialize_client_communications__Port__d_on__s_.
push 0
push ebx
call dword [edx + 8]
add esp, 0x14
mov dword [ebp - 4], 0xffffffff
jmp 0x467168
mov eax, 1
jmp 0x467174
mov dword [ebx + 0x144], 0
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.004a4566
mov esp, ebp
pop ebp
ret 4