Function at 0x4a03d0
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4fa9ab
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x40c
mov eax, dword [ebp + 0x10]
push ebx
push esi
push edi
mov edi, dword [ebp + 0xc]
mov dword [ebp - 0x10], esp
mov ebx, ecx
push edi
push eax
lea ecx, [ebp - 0x4c]
mov dword [ebp - 0x14], ebx
call fcn.004644b0
mov esi, dword [ebp + 8]
mov dword [ebp - 4], 0
mov byte [ebp - 4], 1
lea eax, [esi - 0x500]
cmp eax, 0x14
ja case.0x4a0426.1282
jmp dword [eax*4 + 0x4a2358]
push esi
mov ecx, ebx
call fcn.004a02d0
mov eax, dword [ebx + 0x50]
test eax, eax
jne 0x4a079a
mov cl, byte [ebp + 0xb]
push 0
mov byte [ebp - 0x34], cl
lea ecx, [ebp - 0x34]
mov dword [ebx + 0x50], 0x500
call fcn.00403b70
mov eax, dword [ebp - 0x40]
mov byte [ebp - 4], 2
test eax, eax
je 0x4a04b9
lea edx, [ebp + 0xc]
lea ecx, [ebp - 0x4c]
push edx
call fcn.00464810
mov esi, dword [eax]
or ecx, 0xffffffff
mov edi, esi
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 1
mov ebx, ecx
lea ecx, [ebp - 0x34]
push ebx
mov byte [ebp - 4], 3
call fcn.00403be0
test al, al
je 0x4a04ad
mov edi, dword [ebp - 0x30]
mov ecx, ebx
mov eax, ecx
push ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [ebp - 0x34]
call fcn.00403bc0
lea ecx, [ebp + 0xc]
mov byte [ebp - 4], 2
call fcn.004da87c
mov esi, dword [ebp - 0x14]
xor edi, edi
mov ecx, esi
call fcn.004a8020
mov ecx, eax
call fcn.0049aca0
cmp eax, edi
jne 0x4a04f8
push str.You_have_no_access_to_the_file_system.
push 0xfffffffffffffffb
mov ecx, esi
call fcn.0049d450
mov ecx, esi
call fcn.0049cb50
push 1
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 1
call fcn.00403b70
jmp 0x4a134a
mov ecx, esi
call fcn.004a8020
lea ecx, [ebp - 0x6c]
push ecx
mov ecx, eax
call fcn.004a23b0
mov eax, dword [ebp - 0x64]
mov byte [ebp - 4], 4
cmp eax, edi
je 0x4a052e
cmp dword [ebp - 0x2c], edi
jne 0x4a052e
mov edx, dword [0x4fdbfc]
lea eax, [ebp - 0x6c]
push edx
push edi
push eax
lea ecx, [ebp - 0x34]
call fcn.004051a0
mov cl, byte [ebp + 0xb]
mov dword [ebp - 0x20], edi
mov byte [ebp - 0x24], cl
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x18], edi
mov eax, dword [ebp - 0x2c]
mov byte [ebp - 4], 5
cmp eax, edi
je 0x4a0567
cmp dword [ebp - 0x30], edi
je 0x4a055d
lea ecx, [ebp - 0x34]
call fcn.0041eae0
mov eax, dword [ebp - 0x30]
movsx eax, byte [eax]
jmp 0x4a0569
mov eax, 0x4fdc00
movsx eax, byte [eax]
jmp 0x4a0569
xor eax, eax
lea edx, [ebp - 0x24]
push eax
push edx
call fcn.004633a0
mov eax, dword [ebp - 0x64]
add esp, 8
cmp eax, edi
je 0x4a0604
mov edi, dword [ebp - 0x20]
mov bl, 6
mov eax, dword [ebp - 0x1c]
cmp edi, eax
je 0x4a0607
mov eax, dword [ebp - 0x68]
test eax, eax
je 0x4a05a1
lea ecx, [ebp - 0x6c]
call fcn.0041eae0
mov eax, dword [ebp - 0x68]
jmp 0x4a05a6
mov eax, 0x4fdc00
movsx eax, byte [eax]
push eax
call fcn.004c3915
movsx ecx, byte [edi]
push ecx
mov esi, eax
call fcn.004c3915
add esp, 8
cmp eax, esi
mov esi, dword [ebp - 0x14]
jne 0x4a05ff
mov ecx, esi
call fcn.004a8020
lea edx, [ebp - 0x218]
mov ecx, eax
push edx
call fcn.0049aed0
mov ecx, dword [0x4fdbfc]
mov byte [ebp - 4], bl
push ecx
push 0
push eax
lea ecx, [edi + 0x18]
call fcn.004051a0
push 1
lea ecx, [ebp - 0x218]
mov byte [ebp - 4], 5
call fcn.00403b70
add edi, 0x38
jmp 0x4a0586
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x20]
test ecx, ecx
je 0x4a0656
sub eax, ecx
mov ecx, eax
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
je 0x4a0656
lea ebx, [esi + 0x54]
push 0
mov ecx, ebx
call fcn.00464590
mov edi, dword [ebp - 0x20]
cmp edi, dword [ebp - 0x1c]
je 0x4a064a
push edi
push ebx
call fcn.00463170
add esp, 8
add edi, 0x38
jmp 0x4a0636
mov dword [esi + 0x64], 0
jmp 0x4a0749
mov cl, byte [ebp + 0xb]
push 0
mov byte [ebp - 0x5c], cl
lea ecx, [ebp - 0x5c]
call fcn.00403b70
mov edi, str.Unable_to_get_the_remote_PC_drives.
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov byte [ebp - 4], 7
mov ebx, ecx
lea ecx, [ebp - 0x5c]
push ebx
call fcn.00403be0
test al, al
je 0x4a06ae
mov edi, dword [ebp - 0x58]
mov ecx, ebx
mov edx, ecx
mov esi, str.Unable_to_get_the_remote_PC_drives.
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [ebp - 0x5c]
call fcn.00403bc0
mov esi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x4a071e
lea eax, [ebp - 0x34]
lea ecx, [ebp - 0x1a8]
push eax
push str._Disk_
push ecx
call fcn.00410310
add esp, 0xc
push str._does_not_exist.
lea edx, [ebp - 0x1e8]
mov bl, 8
push eax
push edx
mov byte [ebp - 4], bl
call fcn.00405660
add esp, 0xc
mov ecx, dword [0x4fdbfc]
mov byte [ebp - 4], 9
push ecx
push 0
push eax
lea ecx, [ebp - 0x5c]
call fcn.0040a7e0
push 1
lea ecx, [ebp - 0x1e8]
mov byte [ebp - 4], bl
call fcn.00403b70
push 1
lea ecx, [ebp - 0x1a8]
mov byte [ebp - 4], 7
call fcn.00403b70
mov eax, dword [ebp - 0x58]
test eax, eax
jne 0x4a072a
mov eax, 0x4fdc00
push eax
push 0xffffffffffffffff
mov ecx, esi
call fcn.0049d450
mov ecx, esi
call fcn.0049cb50
push 1
lea ecx, [ebp - 0x5c]
mov byte [ebp - 4], 5
call fcn.00403b70
mov edi, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x20]
mov byte [ebp - 4], 4
xor ebx, ebx
cmp esi, edi
je 0x4a0766
push ebx
mov ecx, esi
call fcn.004138b0
add esi, 0x38
jmp 0x4a0755
mov edx, dword [ebp - 0x20]
push edx
call fcn.004dae3e
add esp, 4
lea ecx, [ebp - 0x6c]
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x1c], ebx
push 1
mov dword [ebp - 0x18], ebx
mov byte [ebp - 4], 2
call fcn.00403b70
push 1
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 1
call fcn.00403b70
mov ebx, dword [ebp - 0x14]
mov ecx, ebx
call fcn.004a0030
jmp 0x4a134a
push esi
mov ecx, ebx
call fcn.004a02d0
mov eax, dword [ebx + 0x50]
xor edi, edi
cmp eax, edi
jne 0x4a0af6
mov al, byte [ebp + 0xb]
mov dword [ebp - 0x30], edi
mov byte [ebp - 0x34], al
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x28], edi
lea ecx, [ebp - 0xc8]
mov byte [ebp - 4], 0xa
push ecx
lea ecx, [ebp - 0x4c]
call fcn.00464810
mov dl, byte [ebp + 0xb]
mov esi, dword [eax]
push edi
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 0xb
mov byte [ebp - 0x24], dl
call fcn.00403b70
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [ebp + 0x10], ecx
push ecx
lea ecx, [ebp - 0x24]
call fcn.00403be0
test al, al
je 0x4a082f
mov eax, dword [ebp + 0x10]
mov edi, dword [ebp - 0x20]
mov ecx, eax
push eax
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [ebp - 0x24]
call fcn.00403bc0
lea ecx, [ebp - 0xc8]
mov byte [ebp - 4], 0xd
call fcn.004da87c
mov edx, dword [ebp - 0x1c]
xor esi, esi
xor eax, eax
cmp edx, esi
sete al
cmp eax, esi
mov dword [ebx + 0x50], 0x501
je 0x4a08e0
mov ecx, ebx
call fcn.004a8020
lea ecx, [ebp - 0x1b8]
push ecx
mov ecx, eax
call fcn.0049aed0
mov edx, dword [0x4fdbfc]
lea ecx, [ebp - 0x24]
push edx
push esi
push eax
mov byte [ebp - 4], 0xe
call fcn.004051a0
push 1
lea ecx, [ebp - 0x1b8]
mov byte [ebp - 4], 0xd
call fcn.00403b70
cmp dword [ebp - 0x1c], esi
jne 0x4a08e0
mov edi, 0x526058
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [ebp + 0x10], ecx
push ecx
lea ecx, [ebp - 0x24]
call fcn.00403be0
test al, al
je 0x4a08e0
mov eax, dword [ebp + 0x10]
mov edi, dword [ebp - 0x20]
mov ecx, eax
mov esi, 0x526058
mov edx, ecx
push eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [ebp - 0x24]
call fcn.00403bc0
xor esi, esi
mov al, byte [ebp - 0x24]
push esi
lea ecx, [ebp - 0x6c]
mov byte [ebp - 0x6c], al
call fcn.00403b70
mov ecx, dword [0x4fdbfc]
lea edx, [ebp - 0x24]
push ecx
push esi
push edx
lea ecx, [ebp - 0x6c]
call fcn.004051a0
lea eax, [ebp - 0x6c]
mov byte [ebp - 4], 0xf
push eax
call fcn.00460890
add esp, 4
mov ecx, ebx
call fcn.004a2550
mov edx, dword [0x4fdbfc]
mov ecx, dword [ebx + 0x15c]
push edx
lea eax, [ebp - 0x24]
push esi
add ecx, 0x30
push eax
call fcn.004051a0
mov edi, dword [ebp - 0x20]
cmp edi, esi
jne 0x4a0940
mov edi, 0x4fdc00
mov ecx, ebx
call fcn.004a8020
push edi
mov ecx, eax
call fcn.0049acb0
cmp eax, esi
jne 0x4a0970
mov ecx, dword [ebx + 0x15c]
mov dword [ecx + 0x2c], 5
mov edx, dword [ebx + 0x50]
push edx
mov ecx, ebx
call fcn.0049d110
jmp 0x4a0aab
mov ecx, dword [ebp - 0x68]
mov dword [ebp + 0x10], esi
cmp ecx, esi
mov dword [ebp - 0x54], esi
mov dword [ebp - 0x50], esi
jne 0x4a0985
mov ecx, 0x4fdc00
mov eax, dword [ebp - 0x20]
cmp eax, esi
jne 0x4a0991
mov eax, 0x4fdc00
push ecx
lea ecx, [ebp - 0x54]
push esi
push ecx
lea edx, [ebp + 0x10]
lea ecx, [ebp - 0x34]
push edx
push ecx
push eax
mov ecx, ebx
call fcn.004a8030
mov edi, eax
cmp edi, esi
je 0x4a0a75
mov edx, dword [ebx + 0x15c]
mov ecx, ebx
mov dword [edx + 0x2c], edi
call fcn.004a2740
lea eax, [ebp - 0x1d8]
push edi
push eax
call fcn.00461090
mov eax, dword [eax + 4]
add esp, 8
cmp eax, esi
jne 0x4a09dd
mov eax, 0x4fdc00
mov ecx, dword [ebp - 0x20]
cmp ecx, esi
jne 0x4a09e9
mov ecx, 0x4fdc00
push eax
push ecx
lea ecx, [ebp - 0x318]
push str.Cannot_browse_directory__s._n_s
push ecx
call fcn.004c335e
add esp, 0x10
lea ecx, [ebp - 0x1d8]
push 1
call fcn.00403b70
lea edx, [ebp - 0x318]
mov ecx, ebx
push edx
push edi
call fcn.0049d450
mov ecx, ebx
call fcn.0049cb50
push 1
lea ecx, [ebp - 0x6c]
mov byte [ebp - 4], 0xd
call fcn.00403b70
push 1
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 0xa
call fcn.00403b70
mov edi, dword [ebp - 0x2c]
mov esi, dword [ebp - 0x30]
mov byte [ebp - 4], 1
xor ebx, ebx
cmp esi, edi
je 0x4a0a5b
push ebx
mov ecx, esi
call fcn.00406a10
add esi, 0x24
jmp 0x4a0a4a
mov eax, dword [ebp - 0x30]
push eax
call fcn.004dae3e
add esp, 4
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x28], ebx
jmp 0x4a134a
lea esi, [ebx + 0x54]
push 0
mov ecx, esi
call fcn.00464590
mov edi, dword [ebp - 0x30]
cmp edi, dword [ebp - 0x2c]
je 0x4a0a98
push edi
push esi
call fcn.00461c50
add esp, 8
add edi, 0x24
jmp 0x4a0a84
mov dword [ebx + 0x64], 0
mov ecx, dword [ebx + 0x15c]
mov eax, dword [ebx + 0x60]
mov dword [ecx + 0x28], eax
mov ecx, ebx
call fcn.004a2740
push 1
lea ecx, [ebp - 0x6c]
mov byte [ebp - 4], 0xd
call fcn.00403b70
push 1
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 0xa
call fcn.00403b70
mov edi, dword [ebp - 0x2c]
mov esi, dword [ebp - 0x30]
mov byte [ebp - 4], 1
cmp esi, edi
je 0x4a0aea
push 0
mov ecx, esi
call fcn.00406a10
add esi, 0x24
jmp 0x4a0ad8
mov edx, dword [ebp - 0x30]
push edx
call fcn.004dae3e
add esp, 4
mov ecx, ebx
call fcn.004a0030
jmp 0x4a134a
push 0
mov ecx, ebx
call fcn.004a02d0
lea eax, [ebp - 0xd0]
lea ecx, [ebp - 0x4c]
push eax
call fcn.00464810
mov cl, byte [ebp + 0xb]
mov esi, dword [eax]
mov byte [ebp - 0x6c], cl
push 0
lea ecx, [ebp - 0x6c]
mov byte [ebp - 4], 0x10
call fcn.00403b70
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [ebp + 0x10], ecx
push ecx
lea ecx, [ebp - 0x6c]
call fcn.00403be0
test al, al
je 0x4a0b6d
mov eax, dword [ebp + 0x10]
mov edi, dword [ebp - 0x68]
mov ecx, eax
push eax
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [ebp - 0x6c]
call fcn.00403bc0
lea ecx, [ebp - 0xd0]
mov byte [ebp - 4], 0x12
call fcn.004da87c
mov al, byte [ebp + 0xb]
xor esi, esi
push esi
lea ecx, [ebp - 0x94]
mov dword [ebx + 0x50], 0x513
mov byte [ebp - 0x94], al
call fcn.00403b70
mov edi, 0x536ec0
or ecx, 0xffffffff
xor eax, eax
mov byte [ebp - 4], 0x13
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x536ec0
lea ecx, [ebp - 0x94]
call fcn.004053a0
mov dword [ebp - 0x84], esi
mov dword [ebp - 0x80], esi
mov dword [ebp - 0x78], esi
mov dword [ebp - 0x7c], esi
mov eax, dword [ebp - 0x68]
mov byte [ebp - 4], 0x14
cmp eax, esi
jne 0x4a0bdd
mov eax, 0x4fdc00
lea ecx, [ebp - 0x98]
push ecx
push eax
call fcn.00460f60
mov eax, dword [ebp - 0x90]
add esp, 8
cmp eax, esi
jne 0x4a0bfc
mov eax, 0x4fdc00
lea edx, [ebp - 0x1f8]
push eax
push edx
call fcn.004612d0
add esp, 8
mov ecx, dword [0x4fdbfc]
mov byte [ebp - 4], 0x15
push ecx
push esi
push eax
lea ecx, [ebp - 0x94]
call fcn.004051a0
push 1
lea ecx, [ebp - 0x1f8]
mov byte [ebp - 4], 0x14
call fcn.00403b70
mov edx, dword [0x4fdbfc]
lea edi, [ebx + 0xe8]
push edx
lea eax, [ebp - 0x6c]
push esi
push eax
mov ecx, edi
call fcn.004051a0
mov ecx, dword [ebp - 0x14]
mov eax, dword [edi + 8]
mov ebx, dword [0x4fdbfc]
mov esi, dword [ecx + 0xf0]
mov ecx, dword [ebp - 0x8c]
sub esi, ecx
cmp eax, esi
jae 0x4a0c71
call fcn.004d1a52
mov ecx, edi
call fcn.00405570
mov eax, dword [edi + 8]
sub eax, esi
cmp eax, ebx
jae 0x4a0c83
mov ebx, eax
test ebx, ebx
jbe 0x4a0cbb
mov edx, dword [edi + 4]
sub eax, ebx
push eax
lea ecx, [esi + edx]
lea edx, [ebx + ecx]
push edx
push ecx
call fcn.004c3020
mov esi, dword [edi + 8]
add esp, 0xc
sub esi, ebx
mov ecx, edi
push 0
push esi
call fcn.00403be0
test al, al
je 0x4a0cbb
mov eax, dword [edi + 4]
mov dword [edi + 8], esi
add esi, eax
mov byte [esi], 0
mov esi, dword [ebp - 0x14]
lea edx, [ebp - 0x98]
push edx
push 1
mov eax, dword [esi + 0x110]
lea ecx, [esi + 0x108]
push eax
call fcn.004065c0
mov ecx, esi
call fcn.0049d5d0
push 1
lea ecx, [ebp - 0x94]
mov byte [ebp - 4], 0x12
call fcn.00403b70
push 1
lea ecx, [ebp - 0x6c]
mov byte [ebp - 4], 1
call fcn.00403b70
jmp 0x4a134a
push 0
mov ecx, ebx
call fcn.004a02d0
lea eax, [ebp - 0xe0]
lea ecx, [ebp - 0x4c]
push eax
call fcn.00464810
mov cl, byte [ebp + 0xb]
mov esi, dword [eax]
mov byte [ebp - 0x34], cl
push 0
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 0x16
call fcn.00403b70
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [ebp + 0x10], ecx
push ecx
lea ecx, [ebp - 0x34]
call fcn.00403be0
test al, al
je 0x4a0d6f
mov eax, dword [ebp + 0x10]
mov edi, dword [ebp - 0x30]
mov ecx, eax
push eax
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [ebp - 0x34]
call fcn.00403bc0
lea ecx, [ebp - 0xe0]
mov byte [ebp - 4], 0x18
call fcn.004da87c
mov ecx, ebx
mov dword [ebx + 0x50], 0x506
call fcn.004a2550
mov eax, dword [0x4fdbfc]
mov ecx, dword [ebx + 0x15c]
push eax
lea edx, [ebp - 0x34]
push 0
add ecx, 0x30
push edx
call fcn.004051a0
mov esi, dword [ebp - 0x30]
test esi, esi
jne 0x4a0db2
mov esi, 0x4fdc00
mov ecx, ebx
call fcn.004a8020
push esi
mov ecx, eax
call fcn.0049ace0
test eax, eax
jne 0x4a0de2
mov eax, dword [ebx + 0x15c]
mov dword [eax + 0x2c], 5
mov ecx, dword [ebx + 0x50]
push ecx
mov ecx, ebx
call fcn.0049d110
jmp 0x4a0e86
mov eax, dword [ebp - 0x30]
test eax, eax
jne 0x4a0dee
mov eax, 0x4fdc00
push 0
push eax
mov ecx, ebx
call fcn.004a81f0
test eax, eax
jne 0x4a0e74
mov esi, dword [sym.imp.kernel32.dll_GetLastError]
call esi
cmp eax, 0xb7
je 0x4a0e74
call esi
mov edx, dword [ebx + 0x15c]
mov esi, eax
lea eax, [ebp - 0x198]
push esi
push eax
mov dword [edx + 0x2c], esi
call fcn.00461090
mov eax, dword [eax + 4]
add esp, 8
test eax, eax
jne 0x4a0e34
mov eax, 0x4fdc00
mov ecx, dword [ebp - 0x30]
test ecx, ecx
jne 0x4a0e40
mov ecx, 0x4fdc00
push eax
push ecx
lea ecx, [ebp - 0x318]
push str.Cannot_create_directory__s._n_s
push ecx
call fcn.004c335e
add esp, 0x10
lea ecx, [ebp - 0x198]
push 1
call fcn.00403b70
lea edx, [ebp - 0x318]
mov ecx, ebx
push edx
push esi
call fcn.0049d450
jmp 0x4a0e86
mov ecx, dword [ebx + 0x10]
push 0
push 0
push 0x50a
push ebx
call fcn.004971d0
mov ecx, ebx
call fcn.004a2740
mov ecx, ebx
call fcn.0049cb50
push 1
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 1
call fcn.00403b70
jmp 0x4a134a
push 0
mov ecx, ebx
call fcn.004a02d0
lea eax, [ebp - 0xe8]
lea ecx, [ebp - 0x4c]
push eax
call fcn.00464810
mov cl, byte [ebp + 0xb]
mov esi, dword [eax]
mov byte [ebp - 0x24], cl
push 0
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 0x19
call fcn.00403b70
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [ebp + 0x10], ecx
push ecx
lea ecx, [ebp - 0x24]
call fcn.00403be0
test al, al
je 0x4a0f12
mov eax, dword [ebp + 0x10]
mov edi, dword [ebp - 0x20]
mov ecx, eax
push eax
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [ebp - 0x24]
call fcn.00403bc0
lea ecx, [ebp - 0xe8]
mov byte [ebp - 4], 0x1b
call fcn.004da87c
lea eax, [ebp - 0xcc]
lea ecx, [ebp - 0x4c]
push eax
call fcn.00464810
mov cl, byte [ebp + 0xb]
mov esi, dword [eax]
mov byte [ebp - 0x34], cl
push 0
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 0x1c
call fcn.00403b70
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [ebp + 0x10], ecx
push ecx
lea ecx, [ebp - 0x34]
call fcn.00403be0
test al, al
je 0x4a0f83
mov eax, dword [ebp + 0x10]
mov edi, dword [ebp - 0x30]
mov ecx, eax
push eax
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [ebp - 0x34]
call fcn.00403bc0
lea ecx, [ebp - 0xcc]
mov byte [ebp - 4], 0x1e
call fcn.004da87c
mov ecx, ebx
mov dword [ebx + 0x50], 0x505
call fcn.004a2550
mov eax, dword [0x4fdbfc]
mov ecx, dword [ebx + 0x15c]
push eax
lea edx, [ebp - 0x24]
push 0
add ecx, 0x30
push edx
call fcn.004051a0
mov eax, dword [0x4fdbfc]
mov ecx, dword [ebx + 0x15c]
push eax
lea edx, [ebp - 0x34]
push 0
add ecx, 0x40
push edx
call fcn.004051a0
mov esi, dword [ebp - 0x20]
test esi, esi
jne 0x4a0fe0
mov esi, 0x4fdc00
mov ecx, ebx
call fcn.004a8020
push esi
mov ecx, eax
call fcn.0049acf0
test eax, eax
je 0x4a113b
mov esi, dword [ebp - 0x30]
test esi, esi
jne 0x4a1003
mov esi, 0x4fdc00
mov ecx, ebx
call fcn.004a8020
push esi
mov ecx, eax
call fcn.0049acf0
test eax, eax
je 0x4a113b
mov ecx, dword [ebp - 0x30]
test ecx, ecx
jne 0x4a1026
mov ecx, 0x4fdc00
mov eax, dword [ebp - 0x20]
test eax, eax
jne 0x4a1032
mov eax, 0x4fdc00
push ecx
push eax
mov ecx, ebx
call fcn.004a8230
test eax, eax
jne 0x4a1127
call dword [sym.imp.kernel32.dll_GetLastError]
mov ecx, dword [ebx + 0x15c]
lea edx, [ebp - 0xac]
push eax
push edx
mov dword [ebp + 0x10], eax
mov dword [ecx + 0x2c], eax
call fcn.00461090
add esp, 8
mov eax, dword [eax + 4]
mov byte [ebp - 4], 0x1f
test eax, eax
mov edi, 0x4fdc00
je 0x4a1077
mov edi, eax
mov eax, dword [ebp - 0x30]
test eax, eax
jne 0x4a1083
mov eax, 0x4fdc00
push eax
lea eax, [ebp - 0x208]
push eax
call fcn.004612d0
add esp, 8
mov eax, dword [eax + 4]
mov byte [ebp - 4], 0x20
test eax, eax
mov esi, 0x4fdc00
je 0x4a10a5
mov esi, eax
mov eax, dword [ebp - 0x20]
test eax, eax
jne 0x4a10b1
mov eax, 0x4fdc00
lea ecx, [ebp - 0x1c8]
push eax
push ecx
call fcn.004612d0
mov eax, dword [eax + 4]
add esp, 8
test eax, eax
jne 0x4a10cd
mov eax, 0x4fdc00
push edi
push esi
push eax
lea edx, [ebp - 0x318]
push str.Failed_to_rename__s_to__s._n_s
push edx
call fcn.004c335e
add esp, 0x14
lea ecx, [ebp - 0x1c8]
push 1
call fcn.00403b70
push 1
lea ecx, [ebp - 0x208]
mov byte [ebp - 4], 0x1f
call fcn.00403b70
push 1
lea ecx, [ebp - 0xac]
mov byte [ebp - 4], 0x1e
call fcn.00403b70
mov ecx, dword [ebp + 0x10]
lea eax, [ebp - 0x318]
push eax
push ecx
mov ecx, ebx
call fcn.0049d450
jmp 0x4a1153
mov ecx, dword [ebx + 0x10]
push 0
push 0
push 0x50a
push ebx
call fcn.004971d0
jmp 0x4a1153
mov edx, dword [ebx + 0x15c]
mov ecx, ebx
mov dword [edx + 0x2c], 5
mov eax, dword [ebx + 0x50]
push eax
call fcn.0049d110
mov ecx, ebx
call fcn.004a2740
mov ecx, ebx
call fcn.0049cb50
push 1
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 0x1b
call fcn.00403b70
push 1
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 1
call fcn.00403b70
jmp 0x4a134a
push esi
mov ecx, ebx
call fcn.004a02d0
lea ecx, [ebp - 0x54]
push 8
push ecx
lea ecx, [ebp - 0x4c]
call fcn.004647d0
mov eax, dword [ebx + 0xdc]
test eax, eax
mov eax, dword [ebp - 0x54]
je 0x4a11c7
cmp eax, 7
je 0x4a11c7
cmp eax, 2
jne 0x4a123e
mov ecx, ebx
mov dword [ebx + 0xdc], 0
call fcn.0049cb50
mov eax, dword [ebp - 0x54]
cmp eax, 2
je 0x4a13ff
cmp eax, 7
je 0x4a13ff
cmp eax, 3
jne 0x4a134a
cmp dword [ebx + 0x50], 0x503
jne 0x4a134a
mov eax, dword [ebx + 0x7c]
lea esi, [ebx + 0x7c]
mov ecx, esi
call dword [eax + 4]
test eax, eax
je 0x4a134a
lea ecx, [ebp - 0x4c]
call fcn.004647b0
mov edi, dword [ebp - 0x40]
mov ecx, eax
mov eax, dword [ebp - 0x3c]
mov dword [ebp + 0x10], ecx
sub edi, eax
mov eax, dword [ebx + 0x134]
test eax, eax
je 0x4a1264
cmp eax, ecx
jb 0x4a1254
lea edx, [edi + ecx]
cmp eax, edx
ja 0x4a1254
sub eax, ecx
mov ecx, dword [ebp - 0x3c]
add eax, ecx
lea ecx, [ebp - 0x4c]
push eax
call fcn.00464640
jmp 0x4a1264
mov edx, dword [ebp + 0x10]
lea ecx, [ebx + 0x148]
push edx
push edi
push esi
call fcn.0048b870
jmp 0x4a134a
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x20]
cmp eax, dword [ebp + 0x10]
jne 0x4a134a
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x3c]
cmp ecx, eax
je 0x4a136c
lea ecx, [ebp - 0x4c]
call fcn.00464560
push edi
push eax
push esi
mov ecx, ebx
call fcn.004a8370
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x20]
mov ecx, dword [ebx + 0x15c]
mov dword [ecx + 0x28], eax
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x18]
test eax, eax
je 0x4a136c
call dword [sym.imp.kernel32.dll_GetLastError]
mov edi, eax
mov eax, dword [ebx + 0x15c]
mov ecx, ebx
mov dword [eax + 0x2c], edi
call fcn.004a2740
lea ecx, [ebp - 0x100]
push edi
push ecx
call fcn.00461090
mov eax, dword [eax + 4]
xor esi, esi
add esp, 8
cmp eax, esi
jne 0x4a12d9
mov eax, 0x4fdc00
mov ecx, dword [ebx + 0x70]
cmp ecx, esi
jne 0x4a12e5
mov ecx, 0x4fdc00
push eax
push ecx
lea edx, [ebp - 0x318]
push str.Failed_to_write_to__s._n_s
push edx
call fcn.004c335e
mov eax, dword [ebp - 0xfc]
add esp, 0x10
cmp eax, esi
je 0x4a1322
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x4a1319
cmp al, 0xff
je 0x4a1319
dec al
mov byte [ecx], al
jmp 0x4a1322
push ecx
call fcn.004dae3e
add esp, 4
lea eax, [ebp - 0x318]
mov dword [ebp - 0xfc], esi
mov dword [ebp - 0xf8], esi
mov dword [ebp - 0xf4], esi
push eax
push edi
mov ecx, ebx
call fcn.0049d450
mov ecx, ebx
call fcn.0049cb50
lea ecx, [ebp - 0x4c]
mov dword [ebp - 4], 0xffffffff
call fcn.004644e0
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov al, byte [ebp - 0x50]
test al, al
je 0x4a134a
mov ecx, dword [ebx + 0x10]
push 0
push 0
push 0x50a
push ebx
call fcn.004971d0
lea ecx, [ebp - 0x6c]
push ecx
mov ecx, esi
call fcn.00415940
mov edx, dword [esi]
mov ecx, esi
mov byte [ebp - 4], 0x28
call dword [edx + 0x20]
mov ecx, dword [ebx + 0x15c]
mov dword [ecx + 0x28], eax
mov ecx, ebx
call fcn.004a2740
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 8]
mov eax, dword [ebp - 0x68]
test eax, eax
jne 0x4a13be
mov eax, 0x4fdc00
mov ecx, dword [ebx + 0x130]
push ecx
push eax
call fcn.00461710
add esp, 8
mov ecx, ebx
call fcn.0049cb50
mov eax, dword [ebp - 0x68]
test eax, eax
je 0x4a134a
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x4a192c
cmp al, 0xff
je 0x4a192c
dec al
mov byte [ecx], al
jmp 0x4a134a
lea edx, [ebp - 0xc0]
lea ecx, [ebp - 0x4c]
push edx
call fcn.00464810
mov esi, dword [eax]
mov al, byte [ebp + 0xb]
push 0
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 0x21
mov byte [ebp - 0x24], al
call fcn.00403b70
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebx, ecx
lea ecx, [ebp - 0x24]
push ebx
call fcn.00403be0
test al, al
je 0x4a145e
mov edi, dword [ebp - 0x20]
mov ecx, ebx
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x1c], ebx
mov byte [ebx + eax], 0
lea ecx, [ebp - 0xc0]
mov byte [ebp - 4], 0x23
call fcn.004da87c
lea ecx, [ebp - 0x4c]
call fcn.004647b0
mov ebx, eax
lea ecx, [ebp - 0x4c]
mov dword [ebp - 0x9c], ebx
call fcn.004647b0
mov esi, dword [ebp - 0x14]
lea ecx, [ebp - 0x4c]
mov dword [esi + 0x134], eax
call fcn.004647b0
lea ecx, [ebp - 0x4c]
mov dword [ebp - 0xd8], eax
call fcn.004647b0
mov dword [esi + 0x130], eax
mov eax, dword [ebp - 0x54]
cmp eax, 2
mov dword [esi + 0x50], 0x503
jne 0x4a14c0
mov ecx, esi
call fcn.004a2550
mov edx, dword [0x4fdbfc]
mov ecx, dword [esi + 0x15c]
push edx
lea eax, [ebp - 0x24]
push 0
add ecx, 0x30
push eax
call fcn.004051a0
mov ecx, dword [esi + 0x15c]
mov edx, dword [esi + 0x134]
mov dword [ecx + 0x24], edx
mov eax, dword [ebp - 0x54]
cmp eax, 7
jne 0x4a1518
mov dword [esi + 0xdc], 0
call dword [sym.imp.kernel32.dll_GetTickCount]
mov edx, dword [esi + 0x13c]
mov ecx, dword [esi + 0x138]
sub eax, edx
add ecx, eax
mov dword [esi + 0x138], ecx
mov edi, dword [ebp - 0x20]
test edi, edi
jne 0x4a1524
mov edi, 0x4fdc00
mov ecx, esi
call fcn.004a8020
push edi
mov ecx, eax
call fcn.0049ac80
test eax, eax
jne 0x4a1569
mov eax, dword [esi + 0x15c]
mov ecx, esi
mov dword [eax + 0x2c], 5
call fcn.004a2740
mov ecx, dword [esi + 0x50]
push ecx
mov ecx, esi
call fcn.0049d110
push 1
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 1
call fcn.00403b70
jmp 0x4a134a
test ebx, ebx
mov dword [ebp + 0x10], 0x22
jne 0x4a157e
mov eax, dword [esi + 0x134]
test eax, eax
je 0x4a1585
mov dword [ebp + 0x10], 0x2a
mov dl, byte [ebp + 0xb]
push 0
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x94], dl
call fcn.00403b70
mov edi, 0x536ec0
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov byte [ebp - 4], 0x24
mov ebx, ecx
lea ecx, [ebp - 0x94]
push ebx
call fcn.00403be0
test al, al
je 0x4a15ec
mov edi, dword [ebp - 0x90]
mov ecx, ebx
mov eax, ecx
mov esi, 0x536ec0
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
push ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [ebp - 0x94]
call fcn.00403bc0
mov esi, dword [ebp - 0x14]
xor edi, edi
mov dword [ebp - 0x84], edi
mov dword [ebp - 0x80], edi
mov dword [ebp - 0x78], edi
mov dword [ebp - 0x7c], edi
mov eax, dword [ebp - 0xd8]
mov byte [ebp - 4], 0x25
cmp eax, edi
jne 0x4a1736
mov eax, dword [ebp - 0x20]
cmp eax, edi
jne 0x4a161b
mov eax, 0x4fdc00
lea ecx, [ebp - 0x98]
push ecx
push eax
call fcn.00460f60
add esp, 8
cmp eax, edi
jne 0x4a1736
lea ecx, [ebp - 0x188]
call fcn.00464020
mov eax, dword [ebp - 0x20]
mov bl, 0x26
cmp eax, edi
mov byte [ebp - 4], bl
jne 0x4a164f
mov eax, 0x4fdc00
push edi
push 0x2a
lea edx, [ebp - 0x188]
push eax
push edx
mov ecx, esi
call fcn.004a8270
lea ecx, [ebp - 0x188]
call fcn.00464210
cmp eax, edi
je 0x4a1727
lea ecx, [ebp - 0x188]
call fcn.00464220
lea ecx, [ebp - 0x74]
call fcn.00464470
lea eax, [ebp - 0x98]
lea ecx, [ebp - 0x74]
push eax
push ecx
mov byte [ebp - 4], 0x27
call fcn.00461c50
add esp, 8
mov dword [esi + 0xdc], 1
call dword [sym.imp.kernel32.dll_GetTickCount]
mov edx, dword [ebp - 0x70]
mov ecx, dword [esi + 0x10]
mov dword [esi + 0x13c], eax
mov eax, dword [ebp - 0x64]
push edx
push eax
push 0x511
push esi
call fcn.004971d0
lea ecx, [ebp - 0x74]
mov byte [ebp - 4], bl
call fcn.004644e0
lea ecx, [ebp - 0x188]
mov byte [ebp - 4], 0x25
call fcn.00464050
push 1
lea ecx, [ebp - 0x94]
mov byte [ebp - 4], 0x23
call fcn.00403b70
mov eax, dword [ebp - 0x20]
cmp eax, edi
je 0x4a1719
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x4a1710
cmp al, 0xff
je 0x4a1710
dec al
mov byte [ecx], al
jmp 0x4a1719
push ecx
call fcn.004dae3e
add esp, 4
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x18], edi
jmp 0x4a134a
lea ecx, [ebp - 0x188]
mov byte [ebp - 4], 0x25
call fcn.00464050
mov eax, dword [ebp - 0x20]
cmp eax, edi
jne 0x4a1742
mov eax, 0x4fdc00
mov ecx, dword [ebp + 0x10]
xor ebx, ebx
push ebx
lea edi, [esi + 0x7c]
push ecx
push eax
push edi
mov ecx, esi
call fcn.004a8270
mov edx, dword [edi]
mov ecx, edi
call dword [edx + 4]
cmp eax, ebx
je 0x4a193a
mov eax, dword [ebp - 0x9c]
xor ecx, ecx
cmp eax, ebx
je 0x4a1779
mov ecx, edi
call fcn.00464420
mov ecx, eax
mov eax, dword [esi + 0x134]
cmp eax, ebx
je 0x4a178d
mov edx, dword [edi]
push eax
mov ecx, edi
call dword [edx + 0x28]
mov ecx, eax
cmp ecx, 0xffffffff
jne 0x4a18a7
call dword [sym.imp.kernel32.dll_GetLastError]
mov edi, eax
mov eax, dword [esi + 0x15c]
mov ecx, esi
mov dword [eax + 0x2c], edi
call fcn.004a2740
lea ecx, [ebp - 0x130]
push edi
push ecx
call fcn.00461090
mov eax, dword [eax + 4]
add esp, 8
cmp eax, ebx
mov ecx, 0x4fdc00
je 0x4a17cc
mov ecx, eax
mov eax, dword [ebp - 0x20]
cmp eax, ebx
jne 0x4a17d8
mov eax, 0x4fdc00
mov edx, dword [esi + 0x134]
push ecx
push edx
push eax
lea eax, [ebp - 0x318]
push str.Failed_to_set_file_pointer_of__s_to__u._n_s
push eax
call fcn.004c335e
mov eax, dword [ebp - 0x12c]
add esp, 0x14
cmp eax, ebx
je 0x4a181c
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x4a1813
cmp al, 0xff
je 0x4a1813
dec al
mov byte [ecx], al
jmp 0x4a181c
push ecx
call fcn.004dae3e
add esp, 4
lea ecx, [ebp - 0x318]
mov dword [ebp - 0x12c], ebx
push ecx
push edi
mov ecx, esi
mov dword [ebp - 0x128], ebx
mov dword [ebp - 0x124], ebx
call fcn.0049d450
mov ecx, esi
call fcn.0049cb50
mov eax, dword [ebp - 0x90]
cmp eax, ebx
je 0x4a186b
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x4a1862
cmp al, 0xff
je 0x4a1862
dec al
mov byte [ecx], al
jmp 0x4a186b
push ecx
call fcn.004dae3e
add esp, 4
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x90], ebx
cmp eax, ebx
mov dword [ebp - 0x8c], ebx
mov dword [ebp - 0x88], ebx
je 0x4a1a3e
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x4a1a35
cmp al, 0xff
je 0x4a1a35
dec al
mov byte [ecx], al
jmp 0x4a1a3e
mov edx, dword [0x4fdbfc]
lea eax, [ebp - 0x24]
push edx
push ebx
push eax
lea ecx, [esi + 0x6c]
call fcn.004051a0
cmp dword [ebp - 0x54], 7
jne 0x4a18d1
mov ecx, dword [esi + 0x10]
push ebx
push ebx
push 0x503
push esi
call fcn.004971d0
mov eax, dword [ebp - 0x90]
cmp eax, ebx
je 0x4a18f8
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x4a18ef
cmp al, 0xff
je 0x4a18ef
dec al
mov byte [ecx], al
jmp 0x4a18f8
push ecx
call fcn.004dae3e
add esp, 4
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x90], ebx
cmp eax, ebx
mov dword [ebp - 0x8c], ebx
mov dword [ebp - 0x88], ebx
je 0x4a134a
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x4a192c
cmp al, 0xff
je 0x4a192c
dec al
mov byte [ecx], al
jmp 0x4a134a
push ecx
call fcn.004dae3e
add esp, 4
jmp 0x4a134a
call dword [sym.imp.kernel32.dll_GetLastError]
mov ecx, dword [esi + 0x15c]
mov edi, eax
mov dword [ecx + 0x2c], edi
mov ecx, esi
call fcn.004a2740
lea edx, [ebp - 0x110]
push edi
push edx
call fcn.00461090
mov eax, dword [eax + 4]
add esp, 8
cmp eax, ebx
mov ecx, 0x4fdc00
je 0x4a1970
mov ecx, eax
mov eax, dword [ebp - 0x20]
cmp eax, ebx
jne 0x4a197c
mov eax, 0x4fdc00
push ecx
push eax
lea eax, [ebp - 0x318]
push str.Cannot_open__s_for_writing._n_s
push eax
call fcn.004c335e
mov eax, dword [ebp - 0x10c]
add esp, 0x10
cmp eax, ebx
je 0x4a19b9
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x4a19b0
cmp al, 0xff
je 0x4a19b0
dec al
mov byte [ecx], al
jmp 0x4a19b9
push ecx
call fcn.004dae3e
add esp, 4
lea ecx, [ebp - 0x318]
mov dword [ebp - 0x10c], ebx
push ecx
push edi
mov ecx, esi
mov dword [ebp - 0x108], ebx
mov dword [ebp - 0x104], ebx
call fcn.0049d450
mov ecx, esi
call fcn.0049cb50
mov eax, dword [ebp - 0x90]
cmp eax, ebx
je 0x4a1a08
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x4a19ff
cmp al, 0xff
je 0x4a19ff
dec al
mov byte [ecx], al
jmp 0x4a1a08
push ecx
call fcn.004dae3e
add esp, 4
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x90], ebx
cmp eax, ebx
mov dword [ebp - 0x8c], ebx
mov dword [ebp - 0x88], ebx
je 0x4a1a3e
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x4a1a35
cmp al, 0xff
je 0x4a1a35
dec al
mov byte [ecx], al
jmp 0x4a1a3e
push ecx
call fcn.004dae3e
add esp, 4
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x18], ebx
jmp 0x4a134a
push esi
mov ecx, ebx
call fcn.004a02d0
lea edx, [ebp - 0x54]
push 8
push edx
lea ecx, [ebp - 0x4c]
call fcn.004647d0
mov eax, dword [ebx + 0x50]
test eax, eax
jne 0x4a1b55
push 0
lea ecx, [ebx + 0x54]
call fcn.00464590
lea eax, [ebp - 0xf0]
lea ecx, [ebp - 0x4c]
push eax
call fcn.00464810
mov edi, dword [eax]
or ecx, 0xffffffff
xor eax, eax
mov dword [ebp + 0x10], edi
repne scasb al, byte es:[edi]
mov esi, dword [ebp - 0x14]
push 1
not ecx
dec ecx
lea edx, [esi + 0xe8]
mov ebx, ecx
mov ecx, edx
push ebx
mov byte [ebp - 4], 0x29
call fcn.00403be0
test al, al
je 0x4a1ae1
mov ecx, esi
mov esi, dword [ebp + 0x10]
mov edi, dword [ecx + 0xec]
lea eax, [ecx + 0xe8]
mov ecx, ebx
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [eax + 4]
mov esi, dword [ebp - 0x14]
mov dword [eax + 8], ebx
add ebx, ecx
mov byte [ebx], 0
lea ecx, [ebp - 0xf0]
mov byte [ebp - 4], 1
call fcn.004da87c
lea ecx, [ebp - 0x4c]
call fcn.004647b0
mov dword [esi + 0xcc], eax
mov eax, dword [esi + 0x110]
mov ebx, dword [esi + 0x10c]
mov dword [ebp + 0x10], eax
mov edi, eax
cmp edi, eax
je 0x4a1b26
push edi
mov ecx, ebx
call fcn.00461940
mov eax, dword [ebp + 0x10]
add ebx, 0x24
add edi, 0x24
jmp 0x4a1b0f
mov eax, dword [esi + 0x110]
mov edi, ebx
mov dword [ebp + 0x10], eax
cmp edi, dword [ebp + 0x10]
je 0x4a1b45
push 1
lea ecx, [edi + 4]
call fcn.00403b70
add edi, 0x24
jmp 0x4a1b31
mov dword [esi + 0x110], ebx
mov ebx, dword [ebp - 0x14]
mov dword [esi + 0x50], 0x50d
mov eax, dword [ebx + 0xf0]
test eax, eax
jne 0x4a1b7a
lea ecx, [ebp - 0xe4]
push 0x51d058
push ecx
mov dword [ebp - 0xe4], str.Bad_params.
call fcn.004c3605
mov eax, dword [ebp - 0x54]
cmp eax, 1
jne 0x4a1bae
mov edx, dword [ebp - 0x50]
lea eax, [ebp - 0x4c]
and edx, 0xff
mov ecx, ebx
push edx
push eax
call fcn.004a0100
mov al, byte [ebp - 0x50]
test al, al
je 0x4a134a
mov ecx, ebx
call fcn.0049d5d0
jmp 0x4a134a
cmp eax, 2
jne 0x4a1c89
mov ecx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x40]
cmp ecx, eax
je 0x4a1c8e
lea ecx, [ebp - 0x4c]
call fcn.004647b0
mov edx, dword [ebx + 0x7c]
lea ecx, [ebx + 0x7c]
mov esi, eax
push esi
call dword [edx + 0x24]
mov ecx, dword [ebx + 0x15c]
cmp eax, 0xffffffff
mov dword [ecx + 0x24], esi
jne 0x4a1c8e
call dword [sym.imp.kernel32.dll_GetLastError]
mov edx, dword [ebx + 0x15c]
mov edi, eax
mov ecx, ebx
mov dword [edx + 0x2c], edi
call fcn.004a2740
lea eax, [ebp - 0x140]
push edi
push eax
call fcn.00461090
mov eax, dword [eax + 4]
add esp, 8
test eax, eax
mov ecx, 0x4fdc00
je 0x4a1c21
mov ecx, eax
mov eax, dword [ebx + 0x70]
test eax, eax
jne 0x4a1c2d
mov eax, 0x4fdc00
push ecx
push esi
push eax
lea ecx, [ebp - 0x318]
push str.Failed_to_set_file_pointer_of__s_to__u._n_s
push ecx
call fcn.004c335e
mov ecx, dword [ebp - 0x13c]
xor esi, esi
add esp, 0x14
cmp ecx, esi
je 0x4a1c6b
mov al, byte [ecx - 1]
dec ecx
test al, al
je 0x4a1c62
cmp al, 0xff
je 0x4a1c62
dec al
mov byte [ecx], al
jmp 0x4a1c6b
push ecx
call fcn.004dae3e
add esp, 4
lea edx, [ebp - 0x318]
mov dword [ebp - 0x13c], esi
mov dword [ebp - 0x138], esi
mov dword [ebp - 0x134], esi
push edx
jmp 0x4a133b
cmp eax, 3
jne 0x4a1c9c
push 3
mov ecx, ebx
call fcn.0049f540
jmp 0x4a134a
lea eax, [ebp - 0xc4]
push 0x51d058
push eax
mov dword [ebp - 0xc4], str.Unexpected_command.
call fcn.004c3605
test edi, edi
je 0x4a1cd1
lea ecx, [ebp - 0x4c]
call fcn.004647b0
xor ecx, ecx
cmp eax, 2
sete cl
mov dword [ebx + 0xd8], ecx
mov eax, dword [ebx + 0x50]
cmp eax, 0x50c
jne 0x4a1ce7
mov ecx, ebx
call fcn.0049df80
jmp 0x4a134a
cmp eax, 0x50d
jne 0x4a1d2f
mov edx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x40]
cmp edx, eax
je 0x4a1d21
lea ecx, [ebp - 0x4c]
call fcn.004647b0
mov ecx, dword [ebx + 0xe0]
cmp eax, ecx
jbe 0x4a134a
sub eax, ecx
cmp eax, 1
je 0x4a1d21
push str.An_unexpected_error_occured.
push 0xffffffffffffffff
jmp 0x4a133c
push 2
mov ecx, ebx
call fcn.0049f540
jmp 0x4a134a
cmp eax, 0x50e
jne 0x4a1d42
mov ecx, ebx
call fcn.0049db30
jmp 0x4a134a
cmp eax, 0x509
jne 0x4a134a
mov ecx, ebx
call fcn.0049e470
jmp 0x4a134a
lea ecx, [ebp - 0x4c]
call fcn.004647b0
lea ecx, [ebp - 0x4c]
mov esi, eax
call fcn.004647b0
mov edi, eax
mov eax, dword [ebx + 0xe0]
cmp eax, esi
jne 0x4a134a
mov eax, dword [ebx + 0x7c]
lea esi, [ebx + 0x7c]
mov ecx, esi
call dword [eax + 4]
test eax, eax
jne 0x4a1d96
push str.An_unexpected_internal_error.
push 0xffffffffffffffff
jmp 0x4a133c
mov ecx, dword [ebx + 0x15c]
mov dword [ecx + 0x24], edi
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x20]
cmp eax, edi
jae 0x4a134a
mov eax, dword [esi]
push edi
mov ecx, esi
call dword [eax + 0x24]
cmp eax, 0xffffffff
jne 0x4a134a
call dword [sym.imp.kernel32.dll_GetLastError]
mov ecx, dword [ebx + 0x15c]
mov esi, eax
mov dword [ebp + 0x10], esi
mov dword [ecx + 0x2c], esi
mov ecx, ebx
call fcn.004a2740
lea edx, [ebp - 0x120]
push esi
push edx
call fcn.00461090
mov eax, dword [eax + 4]
xor esi, esi
add esp, 8
cmp eax, esi
mov ecx, 0x4fdc00
je 0x4a1dfa
mov ecx, eax
mov eax, dword [ebx + 0x70]
cmp eax, esi
jne 0x4a1e06
mov eax, 0x4fdc00
push ecx
push edi
push eax
lea eax, [ebp - 0x318]
push str.Failed_to_set_file_pointer_of__s_to__u._n_s
push eax
call fcn.004c335e
mov ecx, dword [ebp - 0x11c]
add esp, 0x14
cmp ecx, esi
je 0x4a1e42
mov al, byte [ecx - 1]
dec ecx
test al, al
je 0x4a1e39
cmp al, 0xff
je 0x4a1e39
dec al
mov byte [ecx], al
jmp 0x4a1e42
push ecx
call fcn.004dae3e
add esp, 4
mov edx, dword [ebp + 0x10]
lea ecx, [ebp - 0x318]
push ecx
mov dword [ebp - 0x11c], esi
mov dword [ebp - 0x118], esi
mov dword [ebp - 0x114], esi
push edx
jmp 0x4a133c
push esi
mov ecx, ebx
call fcn.004a02d0
lea eax, [ebp - 0x54]
push 8
push eax
lea ecx, [ebp - 0x4c]
call fcn.004647d0
mov eax, dword [ebx + 0x50]
test eax, eax
jne 0x4a2022
push 0
lea ecx, [ebx + 0x54]
call fcn.00464590
lea ecx, [ebp - 0xdc]
push ecx
lea ecx, [ebp - 0x4c]
call fcn.00464810
mov edi, dword [eax]
or ecx, 0xffffffff
xor eax, eax
mov dword [ebp - 0x9c], edi
mov esi, dword [ebp - 0x14]
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea ebx, [esi + 0xe8]
mov dword [ebp + 0x10], ecx
push ecx
mov ecx, ebx
mov byte [ebp - 4], 0x2a
call fcn.00403be0
test al, al
je 0x4a1ef9
mov eax, dword [ebp + 0x10]
mov edi, dword [ebx + 4]
mov esi, dword [ebp - 0x9c]
mov ecx, eax
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [ebp - 0x14]
mov dword [ebx + 8], eax
mov ebx, dword [ebx + 4]
mov byte [ebx + eax], 0
add ebx, eax
lea ecx, [ebp - 0xdc]
mov byte [ebp - 4], 1
call fcn.004da87c
mov eax, dword [esi + 0x110]
mov ebx, dword [esi + 0x10c]
mov dword [ebp + 0x10], eax
mov edi, eax
cmp edi, eax
je 0x4a1f30
push edi
mov ecx, ebx
call fcn.00461940
mov eax, dword [ebp + 0x10]
add ebx, 0x24
add edi, 0x24
jmp 0x4a1f19
mov eax, dword [esi + 0x110]
mov edi, ebx
mov dword [ebp + 0x10], eax
cmp edi, dword [ebp + 0x10]
je 0x4a1f4f
push 1
lea ecx, [edi + 4]
call fcn.00403b70
add edi, 0x24
jmp 0x4a1f3b
xor eax, eax
mov dword [esi + 0x110], ebx
mov dword [esi + 0x120], eax
mov dword [esi + 0x124], eax
mov dword [esi + 0x118], eax
mov eax, dword [ebp + 8]
cmp eax, 0x50e
mov dword [esi + 0x50], eax
jne 0x4a1f97
lea ecx, [ebp - 0x4c]
call fcn.004647b0
lea ecx, [ebp - 0x4c]
mov dword [esi + 0x128], eax
call fcn.004647b0
mov dword [esi + 0x12c], eax
jmp 0x4a2022
cmp eax, 0x509
jne 0x4a2022
lea ecx, [ebp - 0xb8]
push ecx
lea ecx, [ebp - 0x4c]
call fcn.00464810
mov esi, dword [eax]
mov edx, dword [ebp - 0x14]
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
add edx, 0xf8
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 1
mov ebx, ecx
mov ecx, edx
push ebx
mov byte [ebp - 4], 0x2b
call fcn.00403be0
test al, al
je 0x4a2002
mov eax, dword [ebp - 0x14]
mov ecx, ebx
add eax, 0xf8
mov edx, ecx
shr ecx, 2
mov edi, dword [eax + 4]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [eax + 4]
mov dword [eax + 8], ebx
add ebx, ecx
mov byte [ebx], 0
lea ecx, [ebp - 0xb8]
mov byte [ebp - 4], 1
call fcn.004da87c
lea ecx, [ebp - 0x4c]
call fcn.004647b0
mov ecx, dword [ebp - 0x14]
mov dword [ecx + 0xcc], eax
mov eax, dword [ebp - 0x54]
cmp eax, 1
jne 0x4a2058
mov edx, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x14]
and edx, 0xff
lea eax, [ebp - 0x4c]
push edx
push eax
call fcn.004a0100
mov al, byte [ebp - 0x50]
test al, al
je 0x4a134a
mov ecx, dword [ebp - 0x14]
call fcn.0049d5d0
jmp 0x4a134a
cmp eax, 7
jne 0x4a2115
lea ecx, [ebp - 0x4c]
call fcn.00464790
mov ecx, dword [ebp - 0x14]
and eax, 0xffff
lea edx, [ebp - 0xec]
mov dword [ecx + 0xe4], eax
push edx
lea ecx, [ebp - 0x4c]
call fcn.00464810
mov esi, dword [eax]
mov eax, dword [ebp - 0x14]
mov edi, esi
or ecx, 0xffffffff
lea ebx, [eax + 0x6c]
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 1
mov dword [ebp + 0x10], ecx
push ecx
mov ecx, ebx
mov byte [ebp - 4], 0x2c
call fcn.00403be0
test al, al
je 0x4a20d0
mov eax, dword [ebp + 0x10]
mov edi, dword [ebx + 4]
mov ecx, eax
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [ebx + 8], eax
mov ebx, dword [ebx + 4]
add ebx, eax
mov byte [ebx], 0
lea ecx, [ebp - 0xec]
mov byte [ebp - 4], 1
call fcn.004da87c
mov ecx, dword [ebp - 0x14]
cmp dword [ecx + 0xe4], 7
jne 0x4a1d4f
mov eax, dword [ecx + 0x74]
test eax, eax
jne 0x4a1d4f
lea eax, [ebp - 0xd4]
push 0x51d058
push eax
mov dword [ebp - 0xd4], str.Bad_request.
call fcn.004c3605
lea ecx, [ebp - 0xbc]
push 0x51d058
push ecx
mov dword [ebp - 0xbc], str.Bad_request.
call fcn.004c3605
mov ecx, ebx
call fcn.004a2740
jmp 0x4a1343
push esi
lea edx, [ebp - 0x418]
push str.The_command_is_not_implemented._OpCode:__u.
push edx
call fcn.004c335e
add esp, 0xc
lea ecx, [ebp - 0x74]
call fcn.00464470
push 0xfffffffffffffffe
lea ecx, [ebp - 0x74]
mov byte [ebp - 4], 0x2d
call fcn.004646d0
lea edi, [ebp - 0x418]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
lea eax, [ebp - 0x418]
push ecx
push eax
lea ecx, [ebp - 0x74]
call fcn.00464700
mov ecx, dword [ebp - 0x70]
mov edx, dword [ebp - 0x64]
push ecx
mov ecx, dword [ebx + 0x10]
push edx
push 0x50a
push ebx
call fcn.004971d0
mov ecx, ebx
call fcn.0049cb50
lea ecx, [ebp - 0x74]
mov byte [ebp - 4], 1
call fcn.004644e0
jmp 0x4a134a