Function at 0x425aa8
Capabilities:
Check for time delay via gettickcount
Check if file exists
Create directory
Delete directory
Delete file
Enumerate files on windows
Get disk information
Get disk size
Get file attributes
Move file
Receive data
Receive data on socket
Send data
Send data on socket
Set file attributes

Disassembly:
push ebp
lea ebp, [esp - 0x54]
sub esp, 0x8c
mov eax, dword [ebp + 0x78]
mov eax, dword [eax + 4]
or dword [ebp + 0x48], 0xffffffff
or dword [ebp + 0x38], 0xffffffff
or dword [ebp + 0x10], 0xffffffff
push esi
xor esi, esi
push 0x1180
mov dword [ebp + 0x14], 2
mov dword [ebp + 0x30], esi
mov dword [ebp + 0x34], esi
mov dword [ebp + 0x3c], esi
mov dword [ebp + 0x40], esi
mov byte [eax], 0
call fcn.00401000
mov dword [ebp + 0x4c], eax
cmp eax, esi
je 0x426b79
mov esi, dword [ebp + 0x5c]
push ebx
push edi
add eax, 0x410
lea edi, [eax + 0x410]
mov eax, dword [esi + 0x10]
push 0x10
mov dword [ebp], eax
lea eax, [ebp + 0x18]
push eax
push str.Action
push dword [ebp + 0x64]
mov dword [ebp + 0x44], edi
lea ebx, [edi + 0x820]
call fcn.004020a8
push 0x30c
push dword [ebp + 0x4c]
push str.Path
push dword [ebp + 0x64]
call fcn.004020a8
lea eax, [esi + 0x57]
mov esi, dword [ebp + 0x4c]
push eax
mov dword [ebp + 0x50], eax
call fcn.00425a2e
mov eax, dword [ebp + 0x50]
mov al, byte [eax]
mov edi, dword [ebp + 0x5c]
test al, al
je 0x425b65
cmp byte [edi + 0x58], 0x3a
jne 0x425b65
test byte [ebp + 0x7c], 4
je 0x4262ef
mov dword [ebp + 8], 1
test al, al
je 0x425ba0
cmp byte [edi + 0x58], 0x3a
je 0x425ba0
cmp al, 0x2a
je 0x425ba0
cmp al, 0x3f
je 0x425ba0
lea eax, [ebp + 0x48]
push eax
push esi
push dword [ebp + 0x50]
lea eax, [edi + 0x37]
push eax
call fcn.00424ef9
mov dword [ebp + 8], eax
test eax, eax
je 0x425ba0
push esi
push dword [ebp + 0x50]
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov esi, dword [sym.imp.KERNEL32.dll_lstrcmpA]
push str.GetList
lea eax, [ebp + 0x18]
push eax
call esi
test eax, eax
jne 0x425d5f
cmp dword [ebp + 8], eax
je 0x426311
test byte [ebp + 0x48], 8
je 0x426311
push 0x43865c
push dword [ebp + 0x50]
call esi
test eax, eax
mov eax, dword [ebp + 0x50]
jne 0x425be0
mov byte [eax], 0
cmp byte [eax], 0
push ebx
jne 0x425c0a
push 0
lea eax, [edi + 0x37]
push eax
call fcn.00424fd3
mov esi, eax
xor eax, eax
test esi, esi
setne al
push eax
mov eax, dword [ebp + 0x78]
push dword [eax + 4]
call fcn.00425a0a
test esi, esi
jmp 0x425c2d
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov dword [ebp + 0x10], eax
xor eax, eax
cmp dword [ebp + 0x10], 0xffffffff
setne al
push eax
mov eax, dword [ebp + 0x78]
push dword [eax + 4]
call fcn.00425a0a
cmp dword [ebp + 0x10], 0xffffffff
je 0x426b77
mov esi, dword [ebp + 0x78]
and dword [ebp + 0x64], 0
push 0x438f60
push dword [esi + 4]
call dword [sym.imp.KERNEL32.dll_lstrcatA]
push 0x410
push esi
jmp 0x425d36
push dword [ebx]
push esi
call fcn.004040f7
push 0x20
push esi
call fcn.00401255
push esi
call fcn.004019bf
push eax
lea eax, [ebx + 4]
push eax
call fcn.00405552
push 0x20
push esi
call fcn.00401255
push esi
call fcn.004019bf
push eax
lea eax, [ebx + 0xc]
push eax
call fcn.00405552
push 0x20
push esi
call fcn.00401255
push esi
call fcn.004019bf
push eax
lea eax, [ebx + 0x14]
push eax
call fcn.00405552
push 0x20
push esi
call fcn.00401255
push dword [ebx + 0x20]
push dword [ebx + 0x1c]
push str._u__u__
push esi
call fcn.004019bf
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
push dword [ebp + 0x44]
lea eax, [ebx + 0x2c]
push eax
push esi
call fcn.004019bf
push eax
call fcn.00425a86
push 0x43d090
push esi
call dword [sym.imp.KERNEL32.dll_lstrcatA]
push dword [ebp + 0x44]
lea eax, [ebx + 0x130]
push eax
push esi
call fcn.004019bf
push eax
call fcn.00425a86
push 0x43d08c
push esi
call dword [sym.imp.KERNEL32.dll_lstrcatA]
mov eax, dword [ebp + 0x50]
cmp byte [eax], 0
push ebx
jne 0x425d21
inc dword [ebp + 0x64]
push dword [ebp + 0x64]
lea eax, [edi + 0x37]
push eax
call fcn.00424fd3
jmp 0x425d2a
push dword [ebp + 0x10]
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
je 0x425d45
push 0x410
push dword [ebp + 0x78]
call fcn.00405d63
mov esi, eax
test esi, esi
jne 0x425c53
mov eax, dword [ebp + 0x50]
cmp byte [eax], 0
je 0x426b77
push dword [ebp + 0x10]
call dword [sym.imp.KERNEL32.dll_FindClose]
jmp 0x426b77
push str.UploadTest
lea eax, [ebp + 0x18]
push eax
call esi
test eax, eax
jne 0x425e29
test byte [ebp + 0x48], 2
mov dword [ebp + 0x7c], 5
je 0x425e0d
push 0x28
push dword [ebp + 0x44]
xor ebx, ebx
push 0x43d074
push dword [ebp + 0x64]
mov dword [ebp + 0x7c], ebx
call fcn.004020a8
push ebx
push dword [ebp + 0x44]
call fcn.004015eb
push ebx
push dword [ebp + 0x50]
mov dword [ebp + 0x30], eax
mov dword [ebp + 0x34], edx
mov dword [ebp + 8], ebx
call dword [sym.imp.KERNEL32.dll__lopen]
mov esi, eax
mov dword [ebp + 0x38], esi
cmp esi, 0xffffffff
je 0x425dd2
push esi
call fcn.00404008
push esi
mov ebx, eax
mov dword [ebp + 8], edx
call dword [sym.imp.KERNEL32.dll__lclose]
lea eax, [ebp + 0x68]
push eax
lea eax, [ebp + 0xc]
push eax
lea eax, [ebp - 4]
push eax
push dword [ebp + 0x50]
mov byte [edi + 0x5a], 0
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExA]
test eax, eax
je 0x425e0d
mov ecx, dword [ebp + 0x68]
mov eax, dword [ebp + 0x6c]
add ecx, ebx
adc eax, dword [ebp + 8]
cmp eax, dword [ebp + 0x34]
jg 0x425e0d
jl 0x425e06
cmp ecx, dword [ebp + 0x30]
jae 0x425e0d
mov dword [ebp + 0x7c], 0x70
push dword [ebp + 0x7c]
mov eax, dword [ebp + 0x78]
push str.Result_d
push dword [eax + 4]
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
jmp 0x426b68
push str.Upload
lea eax, [ebp + 0x18]
push eax
call esi
test eax, eax
jne 0x4260b3
or dword [ebp + 0x7c], 0xffffffff
test byte [ebp + 0x48], 2
jne 0x425e52
mov dword [edi + 4], 5
jmp 0x42606f
push 0x186a0
call fcn.00401000
mov esi, eax
xor ebx, ebx
mov dword [ebp + 0x3c], esi
cmp esi, ebx
jne 0x425e73
mov dword [edi + 4], 0x12
jmp 0x42606f
push 0x28
push esi
push str.Time
push dword [ebp + 0x64]
call fcn.004020a8
movsx eax, byte [esi]
mov dword [ebp + 8], eax
lea eax, [ebp + 0xc]
push eax
push esi
call fcn.00405575
push 0x28
push esi
push str.Attr
push dword [ebp + 0x64]
call fcn.004020a8
cmp byte [esi], bl
je 0x425eb0
push esi
call fcn.00404190
mov dword [ebp + 0x7c], eax
call dword [sym.imp.WS2_32.dll_WSACreateEvent]
push 1
push eax
push dword [ebp]
mov dword [ebp + 0x40], eax
call dword [sym.imp.WS2_32.dll_WSAEventSelect]
push ebx
push dword [ebp + 0x50]
call dword [sym.imp.KERNEL32.dll__lcreat]
mov dword [ebp + 0x38], eax
cmp eax, 0xffffffff
jne 0x425ee3
mov dword [edi + 4], 0xb
jmp 0x42606f
mov dword [ebp + 0x30], ebx
mov dword [ebp + 0x34], ebx
mov ebx, dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [edi + 4], 0xd
call ebx
mov dword [ebp + 0x64], eax
mov dword [ebp + 0x60], eax
mov eax, dword [ebp + 0x68]
or eax, dword [ebp + 0x6c]
je 0x426018
mov esi, dword [ebp + 0x74]
test esi, esi
jle 0x425f1f
push esi
push dword [ebp + 0x70]
push dword [ebp + 0x3c]
call fcn.00402c5c
jmp 0x425f53
cmp byte [0x44616c], 0
jne 0x426068
cmp byte [edi + 0x21], 0
jne 0x426068
push 0
push 0x186a0
push dword [ebp + 0x3c]
push dword [ebp]
call dword [sym.imp.WS2_32.dll_recv]
mov esi, eax
test esi, esi
jle 0x425fd4
call ebx
push esi
push dword [ebp + 0x3c]
mov dword [ebp + 0x64], eax
push dword [ebp + 0x38]
call dword [sym.imp.KERNEL32.dll__lwrite]
mov dword [ebp + 0x5c], eax
test eax, eax
jl 0x426006
mov eax, esi
cdq
add dword [ebp + 0x30], eax
adc dword [ebp + 0x34], edx
cmp dword [ebp + 0x5c], esi
jl 0x42600f
push dword [ebp + 0x6c]
mov esi, edi
push dword [ebp + 0x68]
push dword [ebp + 0x34]
push dword [ebp + 0x30]
push dword [ebp + 0x34]
push dword [ebp + 0x30]
push dword [ebp + 0x60]
call fcn.0042596c
mov eax, dword [ebp + 0x68]
cmp dword [ebp + 0x30], eax
jne 0x425fae
mov eax, dword [ebp + 0x6c]
cmp dword [ebp + 0x34], eax
je 0x426018
mov eax, dword [ebp + 0x6c]
cmp dword [ebp + 0x34], eax
jg 0x425fc8
jl 0x425f1f
mov eax, dword [ebp + 0x68]
cmp dword [ebp + 0x30], eax
jbe 0x425f1f
mov dword [edi + 4], 0x13
jmp 0x42606f
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2733
jne 0x426056
call ebx
sub eax, dword [ebp + 0x64]
cmp eax, 0x7530
ja 0x42605f
push 0x64
push dword [ebp + 0x40]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push dword [ebp + 0x40]
call dword [sym.imp.KERNEL32.dll_ResetEvent]
jmp 0x425f1f
mov dword [edi + 4], 0xc
jmp 0x42606f
mov dword [edi + 4], 0xf
jmp 0x42606f
cmp dword [ebp + 8], 0
je 0x42602d
lea eax, [ebp + 0xc]
push eax
push eax
push eax
push dword [ebp + 0x38]
call dword [sym.imp.KERNEL32.dll_SetFileTime]
push dword [ebp + 0x38]
call dword [sym.imp.KERNEL32.dll__lclose]
or dword [ebp + 0x38], 0xffffffff
cmp dword [ebp + 0x7c], 0
jl 0x42604d
push dword [ebp + 0x7c]
lea eax, [edi + 0x57]
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
mov dword [edi + 4], 0x10
jmp 0x42606f
mov dword [edi + 4], 0xa
jmp 0x42606f
mov dword [edi + 4], 0xe
jmp 0x42606f
mov dword [edi + 4], 0x11
cmp dword [edi + 4], 0x10
jne 0x426090
push dword [ebp + 0x34]
mov eax, dword [ebp + 0x78]
push dword [ebp + 0x30]
push str.Result1__lld
push dword [eax + 4]
call fcn.004061e5
jmp 0x4268ce
push dword [ebp + 0x38]
call dword [sym.imp.KERNEL32.dll__lclose]
or dword [ebp + 0x38], 0xffffffff
add edi, 0x57
push edi
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov dword [ebp + 0x14], 4
jmp 0x426b59
push str.Download
lea eax, [ebp + 0x18]
push eax
call esi
test eax, eax
jne 0x4260d8
test byte [ebp + 0x48], 1
je 0x4262ef
mov dword [ebp + 0x14], 1
jmp 0x426b77
push str.GetAttr
lea eax, [ebp + 0x18]
push eax
call esi
test eax, eax
jne 0x42610d
push dword [ebp + 0x50]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
mov esi, eax
cmp esi, 0xffffffff
je 0x4260fb
xor eax, eax
jmp 0x426101
call dword [sym.imp.KERNEL32.dll_GetLastError]
push esi
push eax
push str.Result_d__u
jmp 0x426407
push str.GetCrc
lea eax, [ebp + 0x18]
push eax
call esi
test eax, eax
jne 0x42614e
lea eax, [ebp + 0x28]
push eax
push dword [ebp + 0x50]
call fcn.00418828
push dword [ebp + 0x34]
push dword [ebp + 0x30]
push dword [ebp + 0x2c]
push dword [ebp + 0x28]
push eax
mov eax, dword [ebp + 0x78]
push str.Result_d__u__u__u__u
push dword [eax + 4]
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x1c
jmp 0x426b77
push str.SetAttr
lea eax, [ebp + 0x18]
push eax
call esi
test eax, eax
jne 0x426186
push 0x28
push dword [ebp + 0x44]
push str.Attr
push dword [ebp + 0x64]
call fcn.004020a8
push dword [ebp + 0x44]
call fcn.00404190
push eax
push dword [ebp + 0x50]
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
jmp 0x42636c
push str.Delete
lea eax, [ebp + 0x18]
push eax
call esi
test eax, eax
jne 0x4261ad
test byte [ebp + 0x48], 4
je 0x426a93
push dword [ebp + 0x50]
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
jmp 0x42636c
push str.CreateDir
lea eax, [ebp + 0x18]
push eax
call esi
test eax, eax
jne 0x426215
test byte [ebp + 0x48], 0x10
je 0x426a93
push eax
push dword [ebp + 0x50]
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
mov esi, eax
test esi, esi
je 0x426ae4
mov edi, dword [ebp + 0x44]
push 0x28
push edi
push str.LastWriteTime
push dword [ebp + 0x64]
call fcn.004020a8
cmp byte [edi], 0
je 0x426ae4
lea eax, [ebp + 0x68]
push eax
push edi
call fcn.00405575
lea eax, [ebp + 0x68]
push eax
push 0
push 0
push dword [ebp + 0x50]
call fcn.00404074
jmp 0x426ae4
push str.SetDirTime
lea eax, [ebp + 0x18]
push eax
call esi
test eax, eax
jne 0x426269
test byte [ebp + 0x48], 0x10
je 0x426a93
mov edi, dword [ebp + 0x44]
push 0x28
push edi
push str.LastWriteTime
push dword [ebp + 0x64]
xor esi, esi
call fcn.004020a8
cmp byte [edi], 0
je 0x426ae4
lea eax, [ebp + 0x68]
push eax
push edi
call fcn.00405575
lea eax, [ebp + 0x68]
push eax
push esi
push esi
push dword [ebp + 0x50]
call fcn.00404074
jmp 0x42636c
push str.RemoveDir
lea eax, [ebp + 0x18]
push eax
call esi
test eax, eax
jne 0x426290
test byte [ebp + 0x48], 0x20
je 0x426a93
push dword [ebp + 0x50]
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
jmp 0x42636c
push str.Move
lea eax, [ebp + 0x18]
push eax
call esi
test eax, eax
jne 0x426373
mov eax, dword [ebp + 0x48]
and eax, 0x24
cmp al, 0x24
jne 0x426a93
mov esi, dword [ebp + 0x4c]
push 0x410
push esi
push str.Path2
push dword [ebp + 0x64]
call fcn.004020a8
mov edi, dword [ebp + 0x44]
lea ebx, [esi + 0x410]
push ebx
call fcn.00425a2e
cmp byte [ebx], 0
je 0x426311
mov ecx, esi
lea eax, [ecx + 0x410]
cmp byte [eax + 1], 0x3a
jne 0x4262fb
test byte [ebp + 0x7c], 4
jne 0x426336
mov dword [ebp + 0x14], 3
jmp 0x426b77
lea edx, [ebp + 0x7c]
push edx
push ecx
push eax
mov eax, dword [ebp + 0x5c]
add eax, 0x37
push eax
call fcn.00424ef9
test eax, eax
jne 0x426318
push 3
jmp 0x426a95
mov eax, dword [ebp + 0x7c]
and eax, 0x12
cmp al, 0x12
jne 0x426a93
push esi
lea eax, [esi + 0x410]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
jmp 0x426338
mov esi, ecx
push str.Flags
push dword [ebp + 0x64]
call fcn.0040213a
test eax, eax
jne 0x42635b
lea eax, [esi + 0x410]
push eax
push dword [ebp + 0x50]
call dword [sym.imp.KERNEL32.dll_MoveFileA]
jmp 0x42636c
push eax
lea eax, [esi + 0x410]
push eax
push dword [ebp + 0x50]
call dword [sym.imp.KERNEL32.dll_MoveFileExA]
mov esi, eax
jmp 0x426ae4
push str.CreateFile
lea eax, [ebp + 0x18]
push eax
call esi
test eax, eax
jne 0x42641b
mov esi, dword [ebp + 0x64]
push str.AccessMode
push esi
call fcn.0040213a
push str.ShareMode
push esi
mov edi, eax
call fcn.0040213a
push str.Distribute
push esi
mov ebx, eax
call fcn.0040213a
push str.FlagAttr
push esi
mov dword [ebp + 0x64], eax
call fcn.0040213a
test edi, edi
jns 0x4263c6
test byte [ebp + 0x48], 1
je 0x4263d4
test edi, 0x40000000
je 0x4263da
test byte [ebp + 0x48], 2
jne 0x4263da
push 5
push 0xffffffffffffffff
jmp 0x426402
mov ecx, dword [ebp + 0x50]
cmp byte [ecx], 0
jne 0x4263e7
mov ecx, 0x43a760
push 0
push eax
push dword [ebp + 0x64]
push 0
push ebx
push edi
push ecx
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push esi
push str.Result_u__u
mov eax, dword [ebp + 0x78]
push dword [eax + 4]
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
jmp 0x426b77
push str.Seek
lea eax, [ebp + 0x18]
push eax
call esi
test eax, eax
jne 0x4264b6
mov edi, dword [ebp + 0x64]
push str.Handle
push edi
call fcn.0040213a
push str.PosLow
push edi
mov dword [ebp + 0x7c], eax
call fcn.0040213a
mov esi, dword [ebp + 0x44]
push 0x28
push esi
push str.PosHigh
push edi
mov ebx, eax
call fcn.004020a8
push 0
push esi
call fcn.00401547
cmp byte [esi], 0
mov dword [ebp + 0x64], eax
jne 0x426478
xor eax, eax
test ebx, ebx
setge al
dec eax
mov dword [ebp + 0x64], eax
push str.Mode
push edi
call fcn.0040213a
push eax
lea eax, [ebp + 0x64]
push eax
push ebx
push dword [ebp + 0x7c]
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push dword [ebp + 0x64]
push eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov eax, dword [ebp + 0x78]
push str.Result_d__u__d
push dword [eax + 4]
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x14
jmp 0x426b77
push str.SetTime
lea eax, [ebp + 0x18]
push eax
call esi
test eax, eax
jne 0x426538
mov edi, dword [ebp + 0x64]
push str.Handle
push edi
call fcn.0040213a
mov esi, dword [ebp + 0x4c]
push 0x28
push esi
push str.Create
push edi
mov ebx, eax
call fcn.004020a8
lea eax, [ebp + 4]
push eax
push esi
call fcn.00405575
push 0x28
push esi
push str.Access
push edi
call fcn.004020a8
lea eax, [ebp + 0x30]
push eax
push esi
call fcn.00405575
push 0x28
push esi
push str.Write
push edi
call fcn.004020a8
lea eax, [ebp + 0x68]
push eax
push esi
call fcn.00405575
lea eax, [ebp + 0x68]
push eax
lea eax, [ebp + 0x30]
push eax
lea eax, [ebp + 4]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_SetFileTime]
jmp 0x42636c
push str.GetHandleInfo
lea eax, [ebp + 0x18]
push eax
call esi
test eax, eax
jne 0x42660a
lea eax, [ebp - 0x38]
push eax
push str.Handle
push dword [ebp + 0x64]
call fcn.0040213a
push eax
call dword [sym.imp.KERNEL32.dll_GetFileInformationByHandle]
mov esi, eax
test esi, esi
je 0x426ae4
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, dword [ebp + 0x78]
mov edi, dword [sym.imp.USER32.dll_wsprintfA]
push eax
push 0x43cef4
push dword [esi + 4]
call edi
add esp, 0xc
push dword [esi + 4]
call fcn.004019bf
push dword [ebp - 0x38]
mov esi, eax
push esi
call fcn.004040f7
push 0x20
push esi
call fcn.00401255
push esi
call fcn.004019bf
push eax
lea eax, [ebp - 0x34]
push eax
call fcn.00405552
push 0x20
push esi
call fcn.00401255
push esi
call fcn.004019bf
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.00405552
push 0x20
push esi
call fcn.00401255
push esi
call fcn.004019bf
push eax
lea eax, [ebp - 0x24]
push eax
call fcn.00405552
push dword [ebp - 8]
push dword [ebp - 0xc]
push dword [ebp - 0x10]
push dword [ebp - 0x14]
push dword [ebp - 0x18]
push dword [ebp - 0x1c]
push str.__d__d__d__d__d__d
push esi
call fcn.004019bf
push eax
call edi
jmp 0x426b3b
push str.Lock
lea eax, [ebp + 0x18]
push eax
call esi
test eax, eax
jne 0x426690
mov esi, dword [ebp + 0x64]
push str.Handle
push esi
call fcn.0040213a
push str.PosLow
push esi
mov edi, eax
call fcn.0040213a
push str.PosHigh
push esi
mov ebx, eax
call fcn.0040213a
push str.SizeLow
push esi
mov dword [ebp + 0x5c], eax
call fcn.0040213a
push str.SizeHigh
push esi
mov dword [ebp + 0x7c], eax
call fcn.0040213a
push str.Mode
push esi
mov dword [ebp + 0x64], eax
call fcn.0040213a
push dword [ebp + 0x64]
push dword [ebp + 0x7c]
push dword [ebp + 0x5c]
push ebx
push edi
test eax, eax
jne 0x426685
call dword [sym.imp.KERNEL32.dll_UnlockFile]
jmp 0x42636c
call dword [sym.imp.KERNEL32.dll_LockFile]
jmp 0x42636c
push str.Close
lea eax, [ebp + 0x18]
push eax
call esi
test eax, eax
jne 0x4266b8
push str.Handle
push dword [ebp + 0x64]
call fcn.0040213a
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x42636c
push str.FlushBuffer
lea eax, [ebp + 0x18]
push eax
call esi
test eax, eax
jne 0x4266e0
push str.Handle
push dword [ebp + 0x64]
call fcn.0040213a
push eax
call dword [sym.imp.KERNEL32.dll_FlushFileBuffers]
jmp 0x42636c
push str.SetEOF
lea eax, [ebp + 0x18]
push eax
call esi
test eax, eax
jne 0x426708
push str.Handle
push dword [ebp + 0x64]
call fcn.0040213a
push eax
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
jmp 0x42636c
push str.Write
lea eax, [ebp + 0x18]
push eax
call esi
test eax, eax
jne 0x4268d6
push str.Handle
push dword [ebp + 0x64]
call fcn.0040213a
push 0x186a0
mov dword [ebp + 0x7c], eax
call fcn.00401000
mov dword [ebp + 0x3c], eax
test eax, eax
jne 0x426748
mov dword [edi + 4], 0x12
jmp 0x4268a6
call dword [sym.imp.WS2_32.dll_WSACreateEvent]
push 1
push eax
push dword [ebp]
mov dword [ebp + 0x40], eax
call dword [sym.imp.WS2_32.dll_WSAEventSelect]
mov ebx, dword [sym.imp.KERNEL32.dll_GetTickCount]
and dword [ebp + 0x30], 0
and dword [ebp + 0x34], 0
mov dword [edi + 4], 0xd
call ebx
mov dword [ebp + 0x64], eax
mov dword [ebp + 0x60], eax
mov eax, dword [ebp + 0x68]
or eax, dword [ebp + 0x6c]
je 0x426884
mov esi, dword [ebp + 0x74]
test esi, esi
jle 0x42679b
push esi
push dword [ebp + 0x70]
push dword [ebp + 0x3c]
call fcn.00402c5c
jmp 0x4267cb
cmp byte [0x44616c], 0
jne 0x42689f
cmp byte [edi + 0x21], 0
jne 0x42689f
push 0
push 0x186a0
push dword [ebp + 0x3c]
push dword [ebp]
call dword [sym.imp.WS2_32.dll_recv]
mov esi, eax
test esi, esi
jle 0x426849
call ebx
push esi
push dword [ebp + 0x3c]
mov dword [ebp + 0x64], eax
push dword [ebp + 0x7c]
call dword [sym.imp.KERNEL32.dll__lwrite]
mov dword [ebp + 0x5c], eax
test eax, eax
jl 0x42687b
mov eax, esi
cdq
add dword [ebp + 0x30], eax
adc dword [ebp + 0x34], edx
cmp dword [ebp + 0x5c], esi
jl 0x426884
push dword [ebp + 0x6c]
mov esi, edi
push dword [ebp + 0x68]
push dword [ebp + 0x34]
push dword [ebp + 0x30]
push dword [ebp + 0x34]
push dword [ebp + 0x30]
push dword [ebp + 0x60]
call fcn.0042596c
mov eax, dword [ebp + 0x68]
cmp dword [ebp + 0x30], eax
jne 0x426826
mov eax, dword [ebp + 0x6c]
cmp dword [ebp + 0x34], eax
je 0x426884
mov eax, dword [ebp + 0x6c]
cmp dword [ebp + 0x34], eax
jg 0x426840
jl 0x42679b
mov eax, dword [ebp + 0x68]
cmp dword [ebp + 0x30], eax
jbe 0x42679b
mov dword [edi + 4], 0x13
jmp 0x4268a6
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2733
jne 0x42688d
call ebx
sub eax, dword [ebp + 0x64]
cmp eax, 0x7530
ja 0x426896
push 0x64
push dword [ebp + 0x40]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push dword [ebp + 0x40]
call dword [sym.imp.KERNEL32.dll_ResetEvent]
jmp 0x42679b
mov dword [edi + 4], 0xc
jmp 0x4268a6
mov dword [edi + 4], 0x10
jmp 0x4268a6
mov dword [edi + 4], 0xa
jmp 0x4268a6
mov dword [edi + 4], 0xe
jmp 0x4268a6
mov dword [edi + 4], 0x11
mov edi, dword [edi + 4]
mov eax, dword [ebp + 0x30]
cmp edi, 0x10
je 0x4268b3
mov eax, edi
push eax
xor eax, eax
cmp edi, 0x10
sete al
push eax
mov eax, dword [ebp + 0x78]
push str.Result_d__u
push dword [eax + 4]
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
jmp 0x426b59
push str.Read
lea eax, [ebp + 0x18]
push eax
call esi
test eax, eax
jne 0x426a38
push str.Handle
push dword [ebp + 0x64]
xor ebx, ebx
mov dword [ebp + 0x78], ebx
call fcn.0040213a
push str.ReqBytes
push dword [ebp + 0x64]
mov dword [ebp + 0x7c], eax
call fcn.0040213a
mov esi, eax
mov dword [edi + 4], 5
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp + 0x5c], eax
test esi, esi
jle 0x42695a
push esi
call fcn.00401000
mov dword [ebp + 0x3c], eax
test eax, eax
jne 0x42693a
mov dword [edi + 4], 0x12
jmp 0x426a1d
push esi
push eax
push dword [ebp + 0x7c]
mov dword [ebp + 0x78], eax
call dword [sym.imp.KERNEL32.dll__lread]
mov ebx, eax
test ebx, ebx
jge 0x42695a
mov dword [edi + 4], 8
jmp 0x426a1d
xor esi, esi
push esi
push esi
push 0xffffffffffffffff
push esi
push esi
mov eax, ebx
cdq
push edx
push eax
push 0x445f80
push 0x4444c0
push 0xc8
push dword [ebp + 0x60]
mov dword [ebp + 0x68], eax
push dword [ebp]
mov dword [ebp + 0x6c], edx
call fcn.004250a1
cmp ebx, esi
je 0x426a26
call dword [sym.imp.WS2_32.dll_WSACreateEvent]
push 2
push eax
push dword [ebp]
mov dword [ebp + 0x40], eax
call dword [sym.imp.WS2_32.dll_WSAEventSelect]
mov dword [ebp + 0x64], ebx
jmp 0x426a0d
cmp byte [edi + 0x21], 0
jne 0x426a16
cmp dword [ebp + 0x64], 0
je 0x426a26
push 0
push dword [ebp + 0x64]
push dword [ebp + 0x78]
push dword [ebp]
call dword [sym.imp.WS2_32.dll_send]
test eax, eax
jle 0x4269ec
add dword [ebp + 0x78], eax
sub dword [ebp + 0x64], eax
push dword [ebp + 0x6c]
mov eax, ebx
push dword [ebp + 0x68]
sub eax, dword [ebp + 0x64]
mov esi, edi
cdq
push edx
push eax
push edx
push eax
push dword [ebp + 0x5c]
call fcn.0042596c
jmp 0x426a0d
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2733
jne 0x426a2f
push 0x64
push dword [ebp + 0x40]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push dword [ebp + 0x40]
call dword [sym.imp.KERNEL32.dll_ResetEvent]
cmp byte [0x44616c], 0
je 0x4269a9
mov dword [edi + 4], 7
and dword [ebp + 0x14], 0
jmp 0x426b59
mov dword [edi + 4], 9
jmp 0x426a1d
mov dword [edi + 4], 0xa
jmp 0x426a1d
push str.GetLogicalDrvs
lea eax, [ebp + 0x18]
push eax
call esi
test eax, eax
jne 0x426a55
test byte [ebp + 0x7c], 4
je 0x426a6a
call dword [sym.imp.KERNEL32.dll_GetLogicalDrives]
jmp 0x426a77
push str.GetDrvType
lea eax, [ebp + 0x18]
push eax
call esi
test eax, eax
jne 0x426a7a
test byte [ebp + 0x7c], 4
jne 0x426a6e
xor eax, eax
jmp 0x426a77
push dword [ebp + 0x50]
call dword [sym.imp.KERNEL32.dll_GetDriveTypeA]
push eax
jmp 0x426a95
push str.GetVolInfo
lea eax, [ebp + 0x18]
push eax
call esi
test eax, eax
jne 0x426b40
test byte [ebp + 0x7c], 4
jne 0x426aae
push 5
mov eax, dword [ebp + 0x78]
push str.Result_d
push dword [eax + 4]
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
jmp 0x426b77
push dword [ebp + 0x50]
mov edi, dword [ebp + 0x44]
lea esi, [edi + 0x410]
push esi
call fcn.00401e2e
mov eax, 0x104
push eax
push edi
lea ecx, [ebp + 0x64]
push ecx
lea ecx, [ebp + 0x7c]
push ecx
lea ecx, [ebp + 0x5c]
push ecx
push eax
push dword [ebp + 0x4c]
push esi
call dword [sym.imp.KERNEL32.dll_GetVolumeInformationW]
mov esi, eax
test esi, esi
jne 0x426af5
mov eax, dword [ebp + 0x78]
push esi
push dword [eax + 4]
call fcn.00425a0a
jmp 0x426b77
push dword [ebp + 0x4c]
lea ebx, [edi + 0x410]
push ebx
call fcn.00401ee9
mov esi, dword [sym.imp.KERNEL32.dll_lstrcpyA]
push ebx
push dword [ebp + 0x4c]
call esi
push edi
push ebx
call fcn.00401ee9
push ebx
push edi
call esi
mov eax, dword [ebp + 0x78]
push edi
push dword [ebp + 0x64]
push dword [ebp + 0x7c]
push dword [ebp + 0x5c]
push dword [ebp + 0x4c]
push 0
push str.Result_d___s___d__d__d___s_
push dword [eax + 4]
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x20
jmp 0x426b77
mov eax, dword [ebp + 0x78]
push 0x7767
push str.Result_d
push dword [eax + 4]
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
cmp dword [ebp + 0x40], 0
je 0x426b68
push dword [ebp + 0x40]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp + 0x38], 0xffffffff
je 0x426b77
push dword [ebp + 0x38]
call dword [sym.imp.KERNEL32.dll__lclose]
pop edi
pop ebx
push dword [ebp + 0x3c]
call fcn.00401019
push dword [ebp + 0x4c]
call fcn.00401019
mov eax, dword [ebp + 0x14]
pop esi
add ebp, 0x54
leave
ret 0x24