Function at 0x403b23
Capabilities:
Copy file
Delete file
Move file

Disassembly:
mov eax, 0x41671d
call fcn.0040e8c4
mov eax, 0x21b0
call fcn.0040f320
and word [ebp - 0x20], 0
and dword [ebp - 0x1c], 0
and dword [ebp - 0x10], 0
mov eax, dword [ebp + 0xc]
and eax, 0xffff
movzx eax, ax
and eax, 0xff
mov byte [ebp - 0x18], al
mov eax, dword [ebp + 0xc]
shr eax, 0x10
mov word [ebp - 0x14], ax
movzx eax, word [ebp - 0x14]
test eax, eax
je 0x403b77
cmp dword [0x422078], 0
jne 0x403b77
jmp 0x404595
movzx eax, word [ebp - 0x14]
mov dword [ebp - 0x21b4], eax
cmp dword [ebp - 0x21b4], 0xd
ja case.default.0x403b94
mov eax, dword [ebp - 0x21b4]
jmp dword [eax*4 + 0x4045a1]
and dword [0x421e40], 0
call fcn.00404675
mov word [ebp - 0x20], ax
jmp 0x40456c
and dword [0x421e40], 0
call fcn.00404781
jmp 0x40456c
mov eax, dword [0x42207c]
mov ax, word [eax + 8]
mov word [ebp - 0x2030], ax
mov dword [ebp - 0x2028], 1
mov eax, dword [0x42207c]
and dword [eax + 8], 0
push 1
push dword [ebp - 0x18]
call fcn.00404815
pop ecx
pop ecx
mov dword [ebp - 0x2024], eax
cmp dword [ebp - 0x2024], 0
jne 0x403c04
jmp 0x404595
push dword [ebp - 0x2030]
mov ecx, dword [ebp - 0x2024]
call fcn.0040605d
mov dword [ebp - 0x202c], eax
mov eax, dword [ebp - 0x202c]
movzx eax, byte [eax + 4]
cmp eax, 1
jne 0x403ca4
mov eax, dword [ebp - 0x2024]
mov eax, dword [eax + 0x22c]
mov dword [ebp - 0x2194], eax
cmp dword [ebp - 0x2194], 0
je 0x403ca4
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x2020]
push eax
mov eax, dword [0x42207c]
push dword [eax + 0x10]
call fcn.004048a0
add esp, 0xc
test eax, eax
jne 0x403c69
jmp 0x404595
mov eax, dword [ebp - 0x2024]
mov eax, dword [eax + 0x22c]
mov dword [ebp - 0x2198], eax
push dword [ebp - 0x10]
push dword [ebp - 0x2198]
mov eax, dword [ebp - 0x202c]
add eax, 0x157
push eax
push dword [ebp - 0x2020]
call fcn.0040494c
add esp, 0x10
mov dword [ebp - 0x2028], eax
mov ax, word [ebp - 0x2030]
add ax, 1
mov word [ebp - 0x2030], ax
cmp dword [ebp - 0x202c], 0
je 0x403db7
cmp dword [ebp - 0x2028], 0
je 0x403ce7
push 0x1af
push dword [ebp - 0x202c]
push dword [0x422070]
call fcn.0040efe0
add esp, 0xc
jmp 0x403cff
push 0x1af
push 0x421c90
push dword [0x422070]
call fcn.0040efe0
add esp, 0xc
mov eax, dword [ebp - 0x202c]
add eax, 0x1af
mov dword [ebp - 0x202c], eax
mov eax, dword [ebp - 0x2024]
mov ax, word [eax + 0x29]
mov word [ebp - 0x219c], ax
movzx eax, word [ebp - 0x2030]
movzx ecx, word [ebp - 0x219c]
cmp eax, ecx
jge 0x403da5
mov eax, dword [ebp - 0x202c]
movzx eax, byte [eax + 4]
cmp eax, 1
jne 0x403d7d
mov eax, dword [ebp - 0x2024]
mov eax, dword [eax + 0x22c]
mov dword [ebp - 0x21a0], eax
push dword [ebp - 0x10]
push dword [ebp - 0x21a0]
mov eax, dword [ebp - 0x202c]
add eax, 0x157
push eax
push dword [ebp - 0x2020]
call fcn.0040494c
add esp, 0x10
test eax, eax
je 0x403d7d
jmp 0x403da5
mov eax, dword [ebp - 0x202c]
add eax, 0x1af
mov dword [ebp - 0x202c], eax
mov ax, word [ebp - 0x2030]
add ax, 1
mov word [ebp - 0x2030], ax
jmp 0x403d10
movzx eax, word [ebp - 0x2030]
mov ecx, dword [0x42207c]
mov dword [ecx + 8], eax
jmp 0x403dbd
or word [ebp - 0x20], 0xffff
push 0
push dword [ebp - 0x18]
call fcn.00404815
pop ecx
pop ecx
jmp 0x40456c
jmp 0x40456c
and dword [ebp - 0x2034], 0
mov eax, dword [0x42207c]
mov eax, dword [eax + 0x14]
mov dword [0x41b0c8], eax
push 1
push dword [ebp - 0x18]
call fcn.00404815
pop ecx
pop ecx
mov dword [ebp - 0x2024], eax
cmp dword [ebp - 0x2024], 0
jne 0x403e2f
push 0x1c
push 0
lea eax, [ebp - 0x2050]
push eax
call fcn.0040e8f0
add esp, 0xc
lea eax, [ebp - 0x2050]
mov dword [ebp - 0x2034], eax
mov eax, dword [0x42207c]
mov dword [eax + 8], 0x5dc
jmp 0x403e97
mov eax, dword [ebp - 0x2024]
add eax, 0x142
mov dword [ebp - 0x2034], eax
cmp dword [ebp - 0x2034], 0
je 0x403e6c
mov eax, dword [ebp - 0x2024]
mov ax, word [eax + 0x29]
mov word [ebp - 0x21a4], ax
movzx eax, word [ebp - 0x21a4]
mov ecx, dword [0x42207c]
mov dword [ecx + 8], eax
jmp 0x403e97
push 0x1c
push 0
lea eax, [ebp - 0x2050]
push eax
call fcn.0040e8f0
add esp, 0xc
lea eax, [ebp - 0x2050]
mov dword [ebp - 0x2034], eax
mov eax, dword [0x42207c]
mov dword [eax + 8], 0x5dc
cmp dword [ebp - 0x2034], 0
je 0x403eb6
push 0x1c
push dword [ebp - 0x2034]
push dword [0x422070]
call fcn.0040efe0
add esp, 0xc
push 0
push dword [ebp - 0x18]
call fcn.00404815
pop ecx
pop ecx
jmp 0x40456c
jmp 0x40456c
and word [ebp - 0x20], 0
push dword [0x422070]
push str.In_ProcessRequest____CheckFile____s_
call sym.NPROTECT.EXE_int___cdecl_dprintf_char__
pop ecx
pop ecx
push 0
push 0x80
push 3
push 0
push 1
push 0x80000000
push dword [0x422070]
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [ebp - 0x2054], eax
cmp dword [ebp - 0x2054], 0xffffffff
jne 0x403f3c
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 5
je 0x403f3a
cmp dword [ebp - 0x1c], 0x20
je 0x403f3a
or word [ebp - 0x20], 0xffff
push 0x41bcf4
push dword [ebp - 0x1c]
call fcn.004011a9
pop ecx
pop ecx
jmp 0x403f48
push dword [ebp - 0x2054]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [0x42207c]
mov dword [eax + 8], 1
jmp 0x40456c
mov eax, dword [0x422070]
mov dword [ebp - 0x205c], eax
mov eax, dword [0x422070]
add eax, 0x104
mov dword [ebp - 0x2058], eax
push str.In_ProcessRequest____MoveFile_
call sym.NPROTECT.EXE_int___cdecl_dprintf_char__
pop ecx
mov eax, dword [ebp - 0x205c]
movsx eax, byte [eax]
mov ecx, dword [ebp - 0x2058]
movsx ecx, byte [ecx]
cmp eax, ecx
jne 0x404008
mov eax, dword [ebp - 0x205c]
movsx eax, byte [eax + 1]
cmp eax, 0x3a
jne 0x404008
mov eax, dword [ebp - 0x2058]
movsx eax, byte [eax + 1]
cmp eax, 0x3a
jne 0x404008
push dword [ebp - 0x2058]
push dword [ebp - 0x205c]
call dword [sym.imp.KERNEL32.dll_MoveFileA]
test eax, eax
jne 0x404003
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
push dword [ebp - 0x1c]
push dword [ebp - 0x2058]
push dword [ebp - 0x205c]
push str.In_ProcessRequest____MoveFile__Error_Moving_file__s_TO__s_Err_ld_
call sym.NPROTECT.EXE_int___cdecl_dprintf_char__
add esp, 0x10
push 0x41bd6c
push dword [ebp - 0x1c]
call fcn.004011a9
pop ecx
pop ecx
or word [ebp - 0x20], 0xffff
jmp 0x4040a0
push 0
push dword [ebp - 0x2058]
push dword [ebp - 0x205c]
call dword [sym.imp.KERNEL32.dll_CopyFileA]
test eax, eax
je 0x404066
push dword [ebp - 0x205c]
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
test eax, eax
jne 0x404064
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
push dword [ebp - 0x1c]
push dword [ebp - 0x205c]
push str.In_ProcessRequest____MoveFile__Error_Deleting_file__s__Err_ld_
call sym.NPROTECT.EXE_int___cdecl_dprintf_char__
add esp, 0xc
push 0x41bdc0
push dword [ebp - 0x1c]
call fcn.004011a9
pop ecx
pop ecx
or word [ebp - 0x20], 0xffff
jmp 0x4040a0
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
push dword [ebp - 0x1c]
push dword [ebp - 0x2058]
push dword [ebp - 0x205c]
push str.In_ProcessRequest____MoveFile__Error_Copying_file__s_TO__s_Err_ld_
call sym.NPROTECT.EXE_int___cdecl_dprintf_char__
add esp, 0x10
push 0x41be18
push dword [ebp - 0x1c]
call fcn.004011a9
pop ecx
pop ecx
or word [ebp - 0x20], 0xffff
jmp 0x40456c
push str.In_ProcessRequest____DeleteFile_
call sym.NPROTECT.EXE_int___cdecl_dprintf_char__
pop ecx
push dword [0x422070]
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
test eax, eax
jne 0x4040f0
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
push dword [0x422070]
push str.Error_Deleting_file__s
call sym.NPROTECT.EXE_int___cdecl_dprintf_char__
pop ecx
pop ecx
push str.Error_Message
push dword [ebp - 0x1c]
call fcn.004011a9
pop ecx
pop ecx
or word [ebp - 0x20], 0xffff
jmp 0x40456c
push str.In_ProcessRequest____ViewFile_
call sym.NPROTECT.EXE_int___cdecl_dprintf_char__
pop ecx
or word [ebp - 0x20], 0xffff
jmp 0x40456c
mov dword [ebp - 0x2060], 1
mov eax, dword [0x42207c]
and dword [eax + 8], 0
push 1
push dword [ebp - 0x18]
call fcn.00404815
pop ecx
pop ecx
mov dword [ebp - 0x2024], eax
cmp dword [ebp - 0x2024], 0
jne 0x40413e
jmp 0x404595
mov eax, dword [ebp - 0x2024]
mov eax, dword [eax + 0x22c]
mov dword [ebp - 0x21a8], eax
cmp dword [ebp - 0x21a8], 0
je 0x404188
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x2020]
push eax
mov eax, dword [0x42207c]
push dword [eax + 0x10]
call fcn.004048a0
add esp, 0xc
test eax, eax
jne 0x404188
push str.In_ProcessRequest____Failed_GetUserToken_____NukeUsersFiles_
call sym.NPROTECT.EXE_int___cdecl_dprintf_char__
pop ecx
jmp 0x404595
push 0
mov ecx, dword [ebp - 0x2024]
call fcn.0040605d
mov dword [ebp - 0x2064], eax
and word [ebp - 0x216c], 0
jmp 0x4041c8
mov ax, word [ebp - 0x216c]
add ax, 1
mov word [ebp - 0x216c], ax
mov eax, dword [ebp - 0x2064]
add eax, 0x1af
mov dword [ebp - 0x2064], eax
mov eax, dword [ebp - 0x2024]
mov ax, word [eax + 0x29]
mov word [ebp - 0x21ac], ax
movzx eax, word [ebp - 0x216c]
movzx ecx, word [ebp - 0x21ac]
cmp eax, ecx
jge 0x40428d
mov eax, dword [ebp - 0x2064]
movzx eax, byte [eax + 4]
cmp eax, 1
jne 0x404288
mov eax, dword [ebp - 0x2024]
mov eax, dword [eax + 0x22c]
mov dword [ebp - 0x21b0], eax
push 0
push dword [ebp - 0x21b0]
mov eax, dword [ebp - 0x2064]
add eax, 0x157
push eax
push dword [ebp - 0x2020]
call fcn.0040494c
add esp, 0x10
test eax, eax
je 0x404288
push dword [ebp - 0x216c]
mov ecx, dword [ebp - 0x2024]
call fcn.004077a5
lea eax, [ebp - 0x2168]
push eax
push dword [ebp - 0x2064]
mov ecx, dword [ebp - 0x2024]
call fcn.00406e3c
lea eax, [ebp - 0x2168]
push eax
mov ecx, dword [ebp - 0x2024]
call fcn.004066c5
lea eax, [ebp - 0x2168]
push eax
push str.In_ProcessRequest____Nukeing_File__s_
call sym.NPROTECT.EXE_int___cdecl_dprintf_char__
pop ecx
pop ecx
jmp 0x4041a5
push 0
push dword [ebp - 0x18]
call fcn.00404815
pop ecx
pop ecx
jmp 0x40456c
mov dword [ebp - 0x2170], 1
mov eax, dword [0x422070]
mov dword [ebp - 0x2178], eax
push 0x34
push 0
push dword [0x422070]
call fcn.0040e8f0
add esp, 0xc
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x2020]
push eax
mov eax, dword [0x42207c]
push dword [eax + 0x10]
call fcn.004048a0
add esp, 0xc
test eax, eax
jne 0x4042e9
jmp 0x404595
mov byte [ebp - 0x2174], 0x41
jmp 0x40430e
mov al, byte [ebp - 0x2174]
add al, 1
mov byte [ebp - 0x2174], al
mov eax, dword [ebp - 0x2178]
inc eax
inc eax
mov dword [ebp - 0x2178], eax
movzx eax, byte [ebp - 0x2174]
cmp eax, 0x5a
jg 0x404353
push dword [ebp - 0x2174]
call fcn.00402c84
pop ecx
mov dword [ebp - 0x2024], eax
cmp dword [ebp - 0x2024], 0
jne 0x404337
jmp 0x4042f2
push dword [ebp - 0x2020]
mov ecx, dword [ebp - 0x2024]
call fcn.00408387
mov ecx, dword [ebp - 0x2178]
mov word [ecx], ax
jmp 0x4042f2
jmp 0x40456c
mov dword [ebp - 0x2180], 0x421f48
push dword [0x422084]
push str.In_ProcessRequest______OpenAllUnusedMapFiles__ld_
call sym.NPROTECT.EXE_int___cdecl_dprintf_char__
pop ecx
pop ecx
call fcn.004045d9
mov byte [ebp - 0x217c], 0x41
jmp 0x40439f
mov al, byte [ebp - 0x217c]
add al, 1
mov byte [ebp - 0x217c], al
mov eax, dword [ebp - 0x2180]
add eax, 4
mov dword [ebp - 0x2180], eax
movsx eax, byte [ebp - 0x217c]
cmp eax, 0x5a
jg 0x404506
push dword [ebp - 0x217c]
call fcn.004037a6
pop ecx
test eax, eax
je 0x4044f8
push dword [ebp - 0x217c]
call fcn.00402c84
pop ecx
mov ecx, dword [ebp - 0x2180]
mov dword [ecx], eax
mov eax, dword [ebp - 0x2180]
cmp dword [eax], 0
jne 0x4044f8
push 0x284
call fcn.0040e453
pop ecx
mov dword [ebp - 0x2188], eax
and dword [ebp - 4], 0
cmp dword [ebp - 0x2188], 0
je 0x404425
push 3
push dword [0x422040]
push dword [ebp - 0x217c]
mov ecx, dword [ebp - 0x2188]
call fcn.004057b4
mov dword [ebp - 0x21b8], eax
jmp 0x40442c
and dword [ebp - 0x21b8], 0
mov eax, dword [ebp - 0x21b8]
mov dword [ebp - 0x2184], eax
or dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x2180]
mov ecx, dword [ebp - 0x2184]
mov dword [eax], ecx
mov eax, dword [ebp - 0x2180]
cmp dword [eax], 0
je 0x4044e2
mov eax, dword [ebp - 0x2180]
mov ecx, dword [eax]
call fcn.00406512
test eax, eax
jne 0x4044e2
movsx eax, byte [ebp - 0x217c]
push eax
push str.___We_opened__c:_but_closed_it_down_because_there_was_no_map_file.
call sym.NPROTECT.EXE_int___cdecl_dprintf_char__
pop ecx
pop ecx
mov eax, dword [ebp - 0x2180]
mov eax, dword [eax]
mov dword [ebp - 0x2190], eax
mov eax, dword [ebp - 0x2190]
mov dword [ebp - 0x218c], eax
cmp dword [ebp - 0x218c], 0
je 0x4044d0
mov ecx, dword [ebp - 0x218c]
call fcn.00405d9b
push 1
pop eax
and eax, 1
test eax, eax
je 0x4044c2
push dword [ebp - 0x218c]
call fcn.0040b71d
pop ecx
mov eax, dword [ebp - 0x218c]
mov dword [ebp - 0x21bc], eax
jmp 0x4044d7
and dword [ebp - 0x21bc], 0
mov eax, dword [ebp - 0x2180]
and dword [eax], 0
jmp 0x4044f6
movsx eax, byte [ebp - 0x217c]
push eax
push str.___We_opened__c:
call sym.NPROTECT.EXE_int___cdecl_dprintf_char__
pop ecx
pop ecx
jmp 0x404501
mov eax, dword [ebp - 0x2180]
and dword [eax], 0
jmp 0x404382
mov eax, dword [0x422084]
inc eax
mov dword [0x422084], eax
push dword [0x422084]
push str.Leaving_ProcessRequest______OpenAllUnusedMapFiles__ld_
call sym.NPROTECT.EXE_int___cdecl_dprintf_char__
pop ecx
pop ecx
jmp 0x40456c
push dword [0x422084]
push str.In_ProcessRequest______CloseAllUnusedMapFiles__ld_
call sym.NPROTECT.EXE_int___cdecl_dprintf_char__
pop ecx
pop ecx
cmp dword [0x422084], 1
jne 0x404545
call fcn.004045d9
cmp dword [0x422084], 0
je 0x404559
mov eax, dword [0x422084]
dec eax
mov dword [0x422084], eax
jmp 0x40456c
push str._______We_hit_the_default_case_in_ProcessRequest__.__This_is_very_bad________
call sym.NPROTECT.EXE_int___cdecl_dprintf_char__
pop ecx
or word [ebp - 0x20], 0xffff
movzx eax, word [ebp - 0x20]
test eax, eax
jne 0x40458a
cmp dword [0x42207c], 0
je 0x40458a
mov eax, dword [0x42207c]
mov dword [eax], 0x777
jmp 0x404595
push str._______Error_in_Process_request
call sym.NPROTECT.EXE_int___cdecl_dprintf_char__
pop ecx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
leave
ret