Function at 0x434614
Capabilities:
Delete file
Get file attributes
Move file
Set file attributes

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xfffffdc4
mov byte [esp + 8], cl
mov dword [esp + 4], edx
mov dword [esp], eax
mov byte [esp + 9], 1
lea eax, [esp + 0x3c]
mov edx, dword [esp]
call fcn.004b81b0
lea eax, [esp + 0x3c]
call fcn.004b2314
fadd dword [0x434c78]
fistp qword [esp + 0x28]
wait
fild qword [esp + 0x28]
fcomp dword [0x434c7c]
fnstsw ax
sahf
jne 0x43466f
lea edx, [esp + 0x3c]
mov ax, 0xa
call fcn.004acdac
jmp 0x434c69
lea eax, [esp + 0x3c]
push eax
call sub.kernel32.dll_GetFileAttributesA
mov edx, dword [0x4be6b0]
mov dword [edx], eax
mov eax, dword [0x4be6b0]
test byte [eax + 1], 8
jne 0x434697
mov eax, dword [0x4be6b0]
test byte [eax + 1], 0x40
je 0x4346af
mov ax, 0x2fb
call fcn.004aa600
mov edx, 3
call fcn.004b12a8
jmp 0x434c69
mov al, byte [esp + 0x3c]
sub al, 0x40
mov byte [esp + 0x34], al
cmp byte [esp + 0x34], 0x20
jle 0x4346c5
sub byte [esp + 0x34], 0x20
cmp byte [esp + 8], 0
je 0x43470c
movsx eax, byte [esp + 0x34]
mov edx, dword [0x4be4fc]
lea edx, [edx + eax - 1]
lea ecx, [esp + 0x35]
mov al, byte [esp + 0x34]
call fcn.0049e43c
cmp byte [esp + 0x35], 2
jne 0x43470c
mov ax, 0x2fb
call fcn.004aa600
mov edx, 3
call fcn.004b12a8
mov byte [esp + 9], 0
jmp 0x434c69
movsx eax, byte [esp + 0x34]
mov edx, dword [0x4be4fc]
cmp byte [edx + eax - 1], 0xff
jne 0x43476c
fild qword [esp + 0x28]
fcomp dword [0x434c80]
fnstsw ax
sahf
jae 0x43476c
mov eax, dword [0x4be784]
cmp byte [eax + 0x1830], 0
jne 0x43476c
mov eax, 0x434c84
mov edx, 0x33
call fcn.004b12a8
mov edx, dword [0x4bec68]
mov dl, byte [edx]
mov ecx, dword [0x4be784]
mov byte [ecx + 0x1830], dl
test al, al
jne 0x43476c
mov byte [esp + 9], 0
jmp 0x434c69
mov ax, 0x56
call fcn.004aa600
mov edx, eax
mov eax, dword [0x4bec98]
call fcn.004b81b0
lea eax, [esp + 0x3c]
call fcn.004aed10
mov edx, eax
mov eax, dword [0x4bec98]
mov ecx, 0x3c
call fcn.004b820c
mov eax, dword [0x4be784]
movzx eax, byte [eax + 0x188c]
lea eax, [eax + eax*4]
mov edx, dword [0x4be720]
lea eax, [edx + eax]
push eax
mov eax, dword [0x4bec98]
push eax
call sub.kernel32.dll_lstrcatA
mov eax, dword [0x4bec98]
xor edx, edx
call fcn.004ad8ec
fild qword [esp + 0x28]
fcomp dword [0x434cfc]
fnstsw ax
sahf
jbe 0x434a98
push 0x80
lea eax, [esp + 0x40]
push eax
call sub.kernel32.dll_SetFileAttributesA
lea eax, [esp + 0x3c]
mov ecx, 0x8000000
mov edx, 0xc0000000
call fcn.004adc9c
mov ebp, eax
cmp ebp, 0xffffffff
jne 0x43481e
call fcn.004adbe0
lea edx, [esp + 0x3c]
mov ax, 1
call fcn.004acdac
jmp 0x434c69
mov eax, 0xe000
call fcn.00402504
mov dword [esp + 0x30], eax
mov edx, 0xe000
mov eax, dword [esp + 0x30]
call fcn.004066e4
mov dword [esp + 0x1c], 0xe000
fild dword [esp + 0x1c]
fild qword [esp + 0x28]
fdivrp st(1)
call fcn.004028f4
mov dword [esp + 0x10], eax
push dword [esp + 0x2c]
push dword [esp + 0x2c]
fild dword [esp + 0x24]
add esp, 0xfffffff8
fistp qword [esp]
wait
call fcn.004af060
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], 3
mov ebx, dword [0x4be784]
add ebx, 0x1d7a
mov eax, dword [0x4becdc]
mov dword [esp + 0x38], eax
mov esi, dword [0x4be784]
add esi, 0x1d7e
cmp byte [ebx], 0
je 0x434a4a
mov eax, dword [0x4be4c4]
xor edx, edx
mov dword [eax], edx
mov dword [eax + 4], edx
push 0
mov eax, dword [0x4be4c4]
call fcn.004af014
push eax
mov eax, dword [0x4be4c4]
push dword [eax + 4]
push dword [eax]
call fcn.004af008
push eax
push ebp
call sub.kernel32.dll_SetFilePointer_1
push ebp
call sub.kernel32.dll_FlushFileBuffers
mov eax, dword [0x4be344]
mov byte [eax], 0
call fcn.004b5c48
cmp byte [ebx], 1
jne 0x43493a
xor eax, eax
mov al, byte [ebx + 0x6c]
push eax
mov eax, 0xdfd4
pop edx
mov ecx, edx
xor edx, edx
div ecx
mov edi, eax
test edi, edi
jle 0x434932
mov dword [esp + 0x14], 1
mov edx, dword [esp + 0x14]
dec edx
xor eax, eax
mov al, byte [ebx + 0x6c]
imul edx, eax
inc edx
mov ecx, dword [esp + 0x30]
lea edx, [ecx + edx - 1]
push eax
mov eax, dword [esp + 0x3c]
pop ecx
call fcn.00402654
inc dword [esp + 0x14]
dec edi
jne 0x43490a
mov dword [esp + 0x1c], 0xdfd4
cmp byte [ebx], 2
jne 0x434975
mov dword [esp + 0x14], 1
xor eax, eax
mov al, byte [esi]
inc eax
xor edx, edx
mov dl, byte [esi - 1]
sub eax, edx
call fcn.00403010
add al, byte [esi - 1]
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x14]
mov byte [edx + ecx - 1], al
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 0xe001
jne 0x434947
mov edi, dword [esp + 0x10]
test edi, edi
jle 0x434a20
mov dword [esp + 0xc], 1
mov eax, dword [esp + 0x1c]
push eax
mov eax, dword [esp + 0x34]
push eax
push ebp
call sub.kernel32.dll__hwrite
mov eax, dword [esp + 0xc]
mov ecx, 0x14
cdq
idiv ecx
test edx, edx
jne 0x4349af
push ebp
call sub.kernel32.dll_FlushFileBuffers
mov eax, dword [esp + 0xc]
call fcn.004aef80
fild dword [esp + 0x1c]
fmulp st(1)
fild qword [esp + 0x28]
fdivp st(1)
fmul dword [0x434d00]
call fcn.004028e8
mov edx, dword [0x4be344]
mov byte [edx], al
mov eax, dword [0x4be344]
mov al, byte [eax]
mov edx, dword [0x4be8d0]
cmp al, byte [edx]
je 0x4349ed
call fcn.004b5c48
call fcn.004ae0a4
mov eax, dword [0x4bed48]
cmp byte [eax], 0
je 0x434a15
push ebp
call sub.kernel32.dll_CloseHandle_1
mov eax, dword [esp + 0x30]
call fcn.00402524
mov byte [esp + 9], 0
jmp 0x434c69
inc dword [esp + 0xc]
dec edi
jne 0x434989
cmp dword [esp + 0x20], 0
je 0x434a4a
mov eax, dword [esp + 0x20]
push eax
mov eax, dword [esp + 0x34]
push eax
push ebp
call sub.kernel32.dll__hwrite
cmp eax, dword [esp + 0x20]
je 0x434a4a
lea edx, [esp + 0x3c]
mov ax, 4
call fcn.004acdac
add esi, 2
add dword [esp + 0x38], 0x10
inc ebx
dec dword [esp + 0x18]
jne 0x43489a
mov eax, dword [0x4be344]
mov byte [eax], 0x64
call fcn.004b5c48
push ebp
call sub.kernel32.dll_FlushFileBuffers
push ebp
call sub.kernel32.dll_CloseHandle_1
mov eax, dword [esp + 0x30]
call fcn.00402524
call fcn.004ae0a4
mov eax, dword [0x4bed48]
cmp byte [eax], 0
je 0x434a98
mov byte [esp + 9], 0
jmp 0x434c69
push 0
lea eax, [esp + 0x40]
push eax
call sub.kernel32.dll__lcreat
mov ebp, eax
push ebp
call sub.kernel32.dll_CloseHandle_1
movsx eax, byte [esp + 0x34]
mov edx, dword [0x4be4fc]
mov al, byte [edx + eax - 1]
cmp al, 1
je 0x434b49
movsx edx, byte [esp + 0x34]
mov ecx, dword [0x4be4fc]
cmp al, 2
je 0x434b49
movsx edx, byte [esp + 0x34]
mov ecx, dword [0x4be4fc]
cmp al, 3
je 0x434b49
lea edx, [esp + 0x3c]
lea eax, [esp + 0x13c]
call fcn.004b81b0
lea eax, [esp + 0x13c]
mov dl, 0x5c
call fcn.004b2364
jmp 0x434b0a
mov byte [esp + eax + 0x13c], 0x5f
inc eax
cmp byte [esp + eax + 0x13c], 0
jne 0x434b01
lea eax, [esp + 0x13c]
push eax
lea eax, [esp + 0x40]
push eax
call sub.kernel32.dll_MoveFileA
cmp eax, 1
sbb eax, eax
inc eax
test al, al
jne 0x434c2a
lea edx, [esp + 0x3c]
lea eax, [esp + 0x13c]
call fcn.004b81b0
jmp 0x434c2a
cmp byte [esp + 8], 0
je 0x434ba7
mov edx, dword [esp + 4]
mov al, byte [esp + 0x34]
call fcn.004a03f8
test al, al
jne 0x434b90
call fcn.004adbe0
mov ecx, dword [0x4bedb0]
xor edx, edx
mov al, byte [esp + 0x34]
call fcn.0049e530
mov edx, dword [0x4bedb0]
mov ax, 0xa
call fcn.004acdac
mov byte [esp + 9], 0
jmp 0x434c69
mov ecx, dword [esp + 4]
mov dl, 1
mov al, byte [esp + 0x34]
call fcn.004a7190
mov dword [esp + 0x24], 0xffffffff
xor ebx, ebx
mov eax, dword [esp + 4]
cmp dword [eax + 0x20], 0
je 0x434bcb
lea eax, [esp + 0x24]
push eax
lea eax, [esp + 0x40]
mov ecx, dword [esp + 8]
mov dl, byte [esp + 0x38]
call fcn.00434410
mov ebx, eax
call fcn.004ae0a4
mov eax, dword [0x4bed48]
cmp byte [eax], 0
je 0x434bdf
mov byte [esp + 9], 0
test bl, bl
je 0x434c1a
lea edx, [esp + 0x3c]
lea eax, [esp + 0x13c]
call fcn.004b81b0
lea eax, [esp + 0x13c]
mov dl, 0x5c
call fcn.004b838c
inc eax
mov byte [eax], 0
mov eax, dword [0x4bd818]
push eax
lea eax, [esp + 0x140]
push eax
call sub.kernel32.dll_lstrcatA
jmp 0x434c2a
lea edx, [esp + 0x3c]
lea eax, [esp + 0x13c]
call fcn.004b81b0
call fcn.004adbe0
lea eax, [esp + 0x13c]
push eax
call sub.kernel32.dll_DeleteFileA_1
test eax, eax
jne 0x434c69
call sub.kernel32.dll_GetLastError_1
call fcn.004ae200
lea edx, [esp + 0x13c]
mov eax, dword [0x4bedb0]
xor ecx, ecx
call fcn.004b12b8
mov edx, dword [esp]
mov ax, 4
call fcn.004acdac
mov al, byte [esp + 9]
add esp, 0x23c
pop ebp
pop edi
pop esi
pop ebx
ret