Function at 0x403840
Capabilities:
Delete file
Move file
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x44b03e
mov eax, dword fs:[0]
push eax
sub esp, 0x80
mov eax, dword [0x45e520]
xor eax, esp
mov dword [esp + 0x78], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x45e520]
xor eax, esp
push eax
lea eax, [esp + 0x94]
mov dword fs:[0], eax
mov ebp, dword [esp + 0xa4]
mov esi, dword [ebp + 4]
cmp esi, dword [ebp + 8]
mov dword [esp + 0x18], ebp
jbe 0x403890
call fcn.00432c1e
mov edi, esi
mov dword [esp + 0x20], edi
xor ebx, ebx
mov esi, dword [ebp + 8]
cmp dword [ebp + 4], esi
jbe 0x4038a5
call fcn.00432c1e
cmp edi, esi
je 0x403d81
cmp edi, dword [ebp + 8]
jb 0x4038b7
call fcn.00432c1e
mov eax, edi
mov dword [esp + 0x50], 0xf
mov dword [esp + 0x4c], ebx
mov byte [esp + 0x3c], bl
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
add eax, 1
cmp cl, bl
jne 0x4038d0
sub eax, edx
push eax
push edi
lea ecx, [esp + 0x40]
call fcn.004024f0
mov dword [esp + 0x9c], ebx
mov ecx, dword [esp + 0x50]
cmp ecx, 0x10
mov edx, dword [esp + 0x3c]
jb 0x403ab6
cmp edx, ebx
mov esi, edx
mov dword [esp + 0x14], esi
je 0x40392c
cmp ecx, 0x10
mov eax, edx
jae 0x403913
lea eax, [esp + 0x3c]
cmp eax, esi
ja 0x40392c
cmp ecx, 0x10
mov eax, edx
jae 0x403922
lea eax, [esp + 0x3c]
mov ebp, dword [esp + 0x4c]
add eax, ebp
cmp esi, eax
jbe 0x40393d
call fcn.00432c1e
mov ecx, dword [esp + 0x50]
mov ebp, dword [esp + 0x4c]
mov edx, dword [esp + 0x3c]
cmp ecx, 0x10
mov eax, edx
jae 0x403948
lea eax, [esp + 0x3c]
lea edi, [eax + ebp]
cmp edi, ebx
je 0x40396f
cmp ecx, 0x10
mov eax, edx
jae 0x40395a
lea eax, [esp + 0x3c]
cmp eax, edi
ja 0x40396f
cmp ecx, 0x10
mov eax, edx
jae 0x403969
lea eax, [esp + 0x3c]
add eax, ebp
cmp edi, eax
jbe 0x403980
call fcn.00432c1e
mov ecx, dword [esp + 0x50]
mov ebp, dword [esp + 0x4c]
mov edx, dword [esp + 0x3c]
cmp ecx, 0x10
jb 0x403ac3
cmp edx, ebx
mov esi, edx
je 0x4039af
cmp ecx, 0x10
mov eax, edx
jae 0x40399a
lea eax, [esp + 0x3c]
cmp eax, esi
ja 0x4039af
cmp ecx, 0x10
mov eax, edx
jae 0x4039a9
lea eax, [esp + 0x3c]
add ebp, eax
cmp esi, ebp
jbe 0x4039b4
call fcn.00432c1e
mov ecx, dword [esp + 0x14]
push ecx
lea eax, [esp + 0x3c]
push eax
mov byte [esp + 0x2c], bl
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x2c]
push edx
push eax
lea ecx, [esp + 0x40]
push edi
push ecx
mov eax, esi
call fcn.00412f70
add esp, 0x18
push 7
push str.log.dat
lea edx, [esp + 0x40]
push edx
call fcn.00402360
cmp eax, 0xffffffff
jne 0x403d31
mov edi, dword [esp + 0x20]
mov ebp, dword [esp + 0x18]
cmp edi, dword [ebp + 8]
jb 0x403a08
call fcn.00432c1e
push edi
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
test eax, eax
jne 0x403b87
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
mov eax, dword [0x462410]
mov edx, dword [eax + 0xc]
mov ecx, 0x462410
call edx
add eax, 0x10
mov dword [esp + 0x14], eax
mov byte [esp + 0x9c], 1
cmp edi, dword [ebp + 8]
jb 0x403a47
call fcn.00432c1e
push esi
push edi
push str.DeleteFile__s_GetLastError___return__d
lea edi, [esp + 0x20]
call fcn.00412b00
mov esi, dword [esp + 0x20]
add esp, 0xc
cmp dword [esi - 4], 1
jle 0x403a73
mov eax, dword [esi - 0xc]
push eax
mov ecx, edi
call fcn.00401610
mov esi, dword [esp + 0x14]
mov ebp, 0xf
mov eax, esi
mov dword [esp + 0x6c], ebp
mov dword [esp + 0x68], ebx
mov byte [esp + 0x58], bl
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
add eax, 1
cmp cl, bl
jne 0x403a90
sub eax, edx
push eax
push esi
lea ecx, [esp + 0x5c]
call fcn.004024f0
cmp esi, ebx
mov byte [esp + 0x9c], 2
jne 0x403acc
xor eax, eax
jmp 0x403ae2
lea esi, [esp + 0x3c]
mov dword [esp + 0x14], esi
jmp 0x403908
lea esi, [esp + 0x3c]
jmp 0x40398f
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
cmp cl, bl
jne 0x403ad1
sub eax, edx
js 0x403d77
cmp eax, dword [esi - 8]
jg 0x403d77
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x48], esp
mov dword [esi - 0xc], eax
push 0xffffffffffffffff
mov byte [eax + esi], bl
push ebx
lea edx, [esp + 0x78]
mov dword [ecx + 0x18], ebp
mov dword [ecx + 0x14], ebx
push edx
mov byte [ecx + 4], bl
call fcn.00402280
sub esp, 0x1c
mov byte [esp + 0xd4], 3
mov ecx, esp
mov dword [esp + 0x60], esp
push ebp
mov dword [ecx + 0x18], ebp
mov dword [ecx + 0x14], ebx
push str.DeleteFile_fail
mov byte [ecx + 4], bl
call fcn.004024f0
mov byte [esp + 0xd4], 2
call fcn.004041e0
cmp dword [esp + 0x6c], 0x10
jb 0x403b56
mov eax, dword [esp + 0x58]
push eax
call fcn.00416c01
add esp, 4
add esi, 0xfffffff0
mov dword [esp + 0x6c], ebp
mov dword [esp + 0x68], ebx
mov byte [esp + 0x58], bl
mov byte [esp + 0x9c], bl
lea ecx, [esi + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x403b8c
mov ecx, dword [esi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push esi
call edx
jmp 0x403b8c
mov ebp, 0xf
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x18]
cmp esi, dword [edi + 8]
jb 0x403ba8
call fcn.00432c1e
cmp esi, dword [edi + 8]
jb 0x403ba8
call fcn.00432c1e
push esi
add esi, 0x104
push esi
call dword [sym.imp.KERNEL32.dll_MoveFileA]
test eax, eax
jne 0x403d31
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
mov eax, dword [0x462410]
mov edx, dword [eax + 0xc]
mov ecx, 0x462410
call edx
add eax, 0x10
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
mov byte [esp + 0x9c], 4
cmp eax, dword [ecx + 8]
jb 0x403bf6
call fcn.00432c1e
mov edx, dword [esp + 0x20]
push esi
push edx
push str.MoveFile__s_GetLastError___return__d
lea edi, [esp + 0x20]
call fcn.00412b00
mov esi, dword [esp + 0x20]
add esp, 0xc
cmp dword [esi - 4], 1
jle 0x403c26
mov eax, dword [esi - 0xc]
push eax
mov ecx, edi
call fcn.00401610
mov esi, dword [esp + 0x14]
mov eax, esi
mov dword [esp + 0x88], ebp
mov dword [esp + 0x84], ebx
mov byte [esp + 0x74], bl
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
add eax, 1
cmp cl, bl
jne 0x403c40
sub eax, edx
push eax
push esi
lea ecx, [esp + 0x78]
call fcn.004024f0
cmp esi, ebx
mov byte [esp + 0x9c], 5
jne 0x403c66
xor eax, eax
jmp 0x403c81
mov eax, esi
lea edx, [eax + 1]
jmp 0x403c70
mov cl, byte [eax]
add eax, 1
cmp cl, bl
jne 0x403c70
sub eax, edx
js 0x403d77
cmp eax, dword [esi - 8]
jg 0x403d77
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x44], esp
mov dword [esi - 0xc], eax
push 0xffffffffffffffff
mov byte [eax + esi], bl
push ebx
lea edx, [esp + 0x94]
mov dword [ecx + 0x18], ebp
mov dword [ecx + 0x14], ebx
push edx
mov byte [ecx + 4], bl
call fcn.00402280
sub esp, 0x1c
mov byte [esp + 0xd4], 6
mov ecx, esp
mov dword [esp + 0x64], esp
push 0xd
mov dword [ecx + 0x18], ebp
mov dword [ecx + 0x14], ebx
push str.MoveFile_fail
mov byte [ecx + 4], bl
call fcn.004024f0
mov byte [esp + 0xd4], 5
call fcn.004041e0
cmp dword [esp + 0x88], 0x10
jb 0x403cfc
mov eax, dword [esp + 0x74]
push eax
call fcn.00416c01
add esp, 4
add esi, 0xfffffff0
mov dword [esp + 0x88], ebp
mov dword [esp + 0x84], ebx
mov byte [esp + 0x74], bl
mov byte [esp + 0x9c], bl
lea ecx, [esi + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x403d31
mov ecx, dword [esi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push esi
call edx
mov dword [esp + 0x9c], 0xffffffff
cmp dword [esp + 0x50], 0x10
jb 0x403d50
mov eax, dword [esp + 0x3c]
push eax
call fcn.00416c01
add esp, 4
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
cmp ecx, dword [edx + 8]
jb 0x403d62
call fcn.00432c1e
add dword [esp + 0x20], 0x208
mov edi, dword [esp + 0x20]
mov ebp, dword [esp + 0x18]
jmp 0x403898
push 0x80070057
call fcn.00401170
mov ecx, dword [esp + 0x94]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x78]
xor ecx, esp
call fcn.004322f2
add esp, 0x8c
ret 4