Function at 0x454a30
Capabilities:
Delete file
Move file

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffea0
push ebx
push esi
push edi
xor ecx, ecx
mov dword [ebp - 0x15c], ecx
mov byte [ebp - 3], dl
mov word [ebp - 2], ax
xor eax, eax
push ebp
push 0x4555c3
push dword fs:[eax]
mov dword fs:[eax], esp
mov dword [ebp - 8], 0xfffffffe
xor eax, eax
mov dword [ebp - 0x2c], eax
mov eax, dword [0x48d550]
cmp byte [eax + 0x18b1], 6
jb 0x454a81
mov eax, dword [0x48d550]
cmp byte [eax + 0x18b1], 0xb
jbe 0x454a85
xor eax, eax
jmp 0x454a87
mov al, 1
mov byte [ebp - 0x34], al
movsx eax, word [ebp - 2]
mov edx, dword [0x48d524]
mov eax, dword [edx + eax*4 - 4]
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x4c]
cmp byte [eax + 0x557], 0
jne 0x4555aa
mov eax, dword [ebp - 0x4c]
fild qword [eax + 0x494]
mov eax, dword [ebp - 0x4c]
fild qword [eax + 0x48c]
fsubp st(1)
call fcn.004028a0
add eax, 1
adc edx, 0
mov dword [ebp - 0x158], eax
mov dword [ebp - 0x154], edx
fild qword [ebp - 0x158]
fistp qword [ebp - 0x20]
wait
mov eax, dword [ebp - 0x4c]
fild qword [eax + 0x494]
fcomp dword [0x4555d4]
fnstsw ax
sahf
jne 0x454b03
mov eax, dword [ebp - 0x4c]
mov edx, dword [eax + 0x18]
mov dword [ebp - 0x20], edx
mov edx, dword [eax + 0x1c]
mov dword [ebp - 0x1c], edx
mov eax, dword [0x48d550]
cmp byte [eax + 0x18b1], 0xc
je 0x454b1f
mov eax, dword [0x48d550]
cmp byte [eax + 0x18b1], 0xd
jne 0x454b4a
fild qword [ebp - 0x20]
mov eax, dword [ebp - 0x4c]
fild qword [eax + 0x18]
fcompp
fnstsw ax
sahf
jbe 0x454b4a
mov ax, 0x54
call fcn.0040bc04
mov edx, 0x13
call fcn.00411d74
test al, al
je 0x4555aa
cmp byte [ebp - 0x34], 0
jbe 0x454b97
fild qword [ebp - 0x20]
mov eax, dword [ebp - 0x4c]
fild qword [eax + 0x18]
fcompp
fnstsw ax
sahf
jbe 0x454b97
mov eax, dword [ebp - 0x4c]
mov edx, dword [eax + 0x18]
mov dword [ebp - 0x20], edx
mov edx, dword [eax + 0x1c]
mov dword [ebp - 0x1c], edx
mov eax, dword [ebp - 0x4c]
xor edx, edx
mov dword [eax + 0x48c], edx
mov dword [eax + 0x490], edx
mov eax, dword [ebp - 0x4c]
mov dword [eax + 0x494], 0xffffffff
mov dword [eax + 0x498], 0xffffffff
mov eax, dword [0x48d3a0]
cmp byte [eax], 0
jne 0x454be9
mov byte [ebp - 0x45], 0xc
mov eax, dword [0x48d550]
cmp byte [eax + 0x18b1], 0xc
jne 0x454bb7
mov byte [ebp - 0x45], 0xd
mov eax, dword [0x48d550]
cmp byte [eax + 0x18b1], 0xd
jne 0x454bc9
mov byte [ebp - 0x45], 0xe
push 0
push 0
mov eax, dword [ebp - 0x4c]
mov ax, word [eax + 0x534]
xor ecx, ecx
mov dl, byte [ebp - 0x45]
call fcn.0044f244
test al, al
je 0x4555aa
mov ebx, dword [0x48d550]
mov bl, byte [ebx + 0x18b1]
cmp bl, 8
je 0x454c04
mov eax, dword [0x48d550]
cmp bl, 9
jne 0x454c64
mov eax, dword [0x48d550]
cmp bl, 8
sete al
mov dx, word [ebp - 2]
call fcn.00453b0c
mov edx, dword [0x48d498]
mov dword [edx], eax
mov eax, dword [0x48d550]
cmp byte [eax + 0x18b1], 8
je 0x454c46
mov eax, dword [0x48d550]
cmp byte [eax + 0x18b1], 9
je 0x454c46
mov eax, dword [0x48d498]
cmp dword [eax], 0xffffffff
je 0x454c55
mov eax, dword [0x48d498]
mov eax, dword [eax]
mov dword [ebp - 8], eax
jmp 0x4555aa
mov eax, dword [ebp - 0x4c]
mov edx, dword [eax + 0x18]
mov dword [ebp - 0x20], edx
mov edx, dword [eax + 0x1c]
mov dword [ebp - 0x1c], edx
mov eax, dword [0x48d550]
mov al, byte [eax + 0x18b1]
cmp al, 0xb
je 0x454c7d
mov edx, dword [0x48d550]
cmp al, 0xa
jne 0x454ca6
mov byte [ebp - 0x34], 2
mov edx, dword [0x48d550]
cmp al, 0xa
jne 0x454ca6
mov eax, dword [ebp - 0x4c]
fild qword [eax + 0x18]
fcomp dword [0x4555d8]
fnstsw ax
sahf
jae 0x454ca2
mov byte [ebp - 0x33], 0
jmp 0x454ca6
mov byte [ebp - 0x33], 0xff
mov eax, dword [ebp - 0x4c]
add eax, 0xc
call fcn.00428760
test al, al
je 0x4555aa
cmp byte [ebp - 0x34], 0
jbe 0x454d95
mov edx, dword [0x48d550]
add edx, 0x100
lea eax, [ebp - 0x14e]
call fcn.00405c48
mov eax, dword [ebp - 0x4c]
mov eax, dword [eax + 0x14]
call fcn.0040fb28
push eax
lea eax, [ebp - 0x14e]
push eax
call sub.kernel32.dll_lstrcatA
push 0x4555dc
lea eax, [ebp - 0x14e]
push eax
call sub.kernel32.dll_lstrcatA
cmp byte [ebp - 0x34], 1
jne 0x454d34
push 0
lea eax, [ebp - 0x14e]
push eax
call sub.kernel32.dll__lcreat
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0x38], 0xffffffff
jne 0x454d88
lea edx, [ebp - 0x14e]
mov ax, 3
call fcn.0040de10
jmp 0x4555aa
call fcn.004025ec
test eax, eax
lea eax, [ebp - 0x15c]
lea edx, [ebp - 0x14e]
mov ecx, pe_nt_image_headers32
call fcn.0040464c
mov edx, dword [ebp - 0x15c]
mov eax, 0x49bbfc
call fcn.00402ba4
mov eax, 0x49bbfc
call fcn.00402934
call fcn.004025ec
test eax, eax
je 0x454d88
lea edx, [ebp - 0x14e]
mov ax, 3
call fcn.0040de10
jmp 0x4555aa
mov eax, 0xe000
call fcn.004024e8
mov dword [ebp - 0xc], eax
mov ax, 0x142
call fcn.0040bc04
mov edx, eax
mov eax, dword [0x48d948]
call fcn.00405c48
mov eax, dword [0x48d550]
cmp byte [eax + 0x18b1], 0xc
jne 0x454dcd
mov ax, 0x143
call fcn.0040bc04
mov edx, eax
mov eax, dword [0x48d948]
call fcn.00405c48
mov eax, dword [0x48d550]
cmp byte [eax + 0x18b1], 0xd
jne 0x454df0
mov ax, 0x144
call fcn.0040bc04
mov edx, eax
mov eax, dword [0x48d948]
call fcn.00405c48
mov eax, dword [0x48d948]
xor edx, edx
call fcn.0040e810
fild qword [ebp - 0x20]
fsub dword [0x4555e4]
fdiv dword [0x4555e8]
call fcn.004028ac
inc eax
mov word [ebp - 0x12], ax
mov eax, 0xe000
call fcn.004024e8
mov ebx, eax
mov eax, dword [ebp - 0x4c]
mov edx, dword [eax + 0x48c]
mov dword [ebp - 0x28], edx
mov edx, dword [eax + 0x490]
mov dword [ebp - 0x24], edx
cmp byte [ebp - 0x34], 0
jne 0x454e43
mov dword [ebp - 8], 0xffffffff
mov byte [ebp - 0x32], 0
mov eax, dword [0x48d550]
cmp byte [eax + 0x18b1], 0xc
jb 0x454e79
mov eax, dword [0x48d208]
mov dl, 1
call fcn.00406564
push 0
mov ecx, dword [0x48d208]
mov edx, dword [fcn.00406564]
xor eax, eax
call fcn.00406858
mov dword [ebp - 0x3c], eax
mov ax, word [ebp - 0x12]
test ax, ax
jbe 0x4552ca
mov word [ebp - 0x4e], ax
mov word [ebp - 0x10], 1
mov ax, word [ebp - 0x10]
cmp ax, word [ebp - 0x12]
jne 0x454ebd
fild qword [ebp - 0x20]
fsub dword [0x4555e4]
add esp, 0xfffffff8
fistp qword [esp]
wait
push 0
push 0xe000
call fcn.0040fe38
inc eax
mov word [ebp - 0x14], ax
jmp 0x454ec3
mov word [ebp - 0x14], 0xe000
mov edx, 0xe000
mov eax, ebx
call fcn.00405a9c
movzx esi, word [ebp - 0x14]
push esi
lea edx, [ebp - 0x28]
mov eax, dword [ebp - 0x4c]
add eax, 0xc
mov edi, ebx
mov ecx, edi
call fcn.004254a8
mov dword [ebp - 0x30], eax
cmp esi, dword [ebp - 0x30]
jne 0x4552ca
cmp byte [ebp - 0x34], 0
jne 0x455061
mov eax, dword [0x48d550]
movzx eax, byte [eax + 0x18b1]
cmp eax, 0xd
ja case.0x454f17.0
mov al, byte [eax + 0x454f1e]
jmp dword [eax*4 + 0x454f2c]
mov eax, dword [ebp - 0x30]
push eax
push edi
push edi
call sub.user32.dll_CharToOemBuffA
jmp case.0x454f17.0
mov eax, dword [ebp - 0x30]
push eax
push edi
push edi
call sub.user32.dll_OemToCharBuffA
jmp case.0x454f17.0
mov eax, dword [ebp - 0x30]
push eax
push edi
call sub.user32.dll_CharUpperBuffA
jmp case.0x454f17.0
mov eax, dword [ebp - 0x30]
push eax
push edi
call sub.user32.dll_CharLowerBuffA
jmp case.0x454f17.0
push 0
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x30]
mov edx, edi
call fcn.004068b0
jmp case.0x454f17.0
push 0
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x30]
mov edx, edi
call fcn.00406944
mov eax, dword [0x48d550]
mov al, byte [eax + 0x18b1]
cmp al, 2
je 0x454fb7
mov edx, dword [0x48d550]
cmp al, 3
jne 0x455038
mov eax, dword [0x48d468]
cmp dword [eax], 0
jne 0x454fce
call fcn.0040dcb0
test al, al
je 0x4552ca
mov eax, dword [0x48d550]
cmp byte [eax + 0x18b1], 2
jne 0x455009
mov dx, word [ebp - 0x30]
test dx, dx
jbe 0x455038
mov ax, 1
movzx esi, ax
xor ecx, ecx
mov cl, byte [ebx + esi - 1]
mov edi, dword [0x48d468]
mov edi, dword [edi]
mov cl, byte [edi + ecx]
mov byte [ebx + esi - 1], cl
inc eax
dec dx
jne 0x454fe9
jmp 0x455038
mov dx, word [ebp - 0x30]
test dx, dx
jbe 0x455038
mov ax, 1
movzx esi, ax
xor ecx, ecx
mov cl, byte [ebx + esi - 1]
mov edi, dword [0x48d468]
mov edi, dword [edi]
mov cl, byte [edi + ecx + 0x100]
mov byte [ebx + esi - 1], cl
inc eax
dec dx
jne 0x455016
fild dword [ebp - 0x30]
fild qword [ebp - 0x28]
fsubrp st(1)
fistp qword [ebp - 0x28]
wait
mov eax, dword [ebp - 0x30]
push eax
lea edx, [ebp - 0x28]
mov eax, dword [ebp - 0x4c]
add eax, 0xc
mov ecx, ebx
call fcn.00426720
cmp eax, dword [ebp - 0x30]
jne 0x4552ca
cmp byte [ebp - 0x34], 1
jne 0x4551de
mov eax, dword [0x48d550]
cmp byte [eax + 0x18b1], 6
jne 0x455170
mov edx, 0x7000
mov eax, dword [ebp - 0x30]
call fcn.0040bb7c
mov esi, eax
mov edx, esi
test dx, dx
jbe 0x4550e5
mov ax, 1
movzx ecx, ax
movzx ecx, byte [ebx + ecx - 1]
shr ecx, 4
mov edi, dword [0x48d638]
mov cl, byte [edi + ecx]
push ecx
movzx ecx, ax
add ecx, ecx
mov edi, dword [ebp - 0xc]
lea edi, [edi + ecx - 2]
pop ecx
mov byte [edi], cl
movzx ecx, ax
movzx ecx, byte [ebx + ecx - 1]
and ecx, 0xf
mov edi, dword [0x48d638]
mov cl, byte [edi + ecx]
push ecx
movzx ecx, ax
add ecx, ecx
mov edi, dword [ebp - 0xc]
lea edi, [edi + ecx - 1]
pop ecx
mov byte [edi], cl
inc eax
dec dx
jne 0x455097
movzx eax, si
add eax, eax
push eax
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [ebp - 0x38]
push eax
call sub.kernel32.dll__hwrite
mov dx, word [ebp - 0x30]
sub dx, si
test dx, dx
jbe 0x455160
mov ax, 1
movzx ecx, ax
movzx edi, si
add ecx, edi
movzx ecx, byte [ebx + ecx - 1]
shr ecx, 4
mov edi, dword [0x48d638]
mov cl, byte [edi + ecx]
push ecx
movzx ecx, ax
add ecx, ecx
mov edi, dword [ebp - 0xc]
lea edi, [edi + ecx - 2]
pop ecx
mov byte [edi], cl
movzx ecx, ax
movzx edi, si
add ecx, edi
movzx ecx, byte [ebx + ecx - 1]
and ecx, 0xf
mov edi, dword [0x48d638]
mov cl, byte [edi + ecx]
push ecx
movzx ecx, ax
add ecx, ecx
mov edi, dword [ebp - 0xc]
lea edi, [edi + ecx - 1]
pop ecx
mov byte [edi], cl
inc eax
dec dx
jne 0x455108
movzx eax, si
mov edx, dword [ebp - 0x30]
sub edx, eax
mov eax, edx
add eax, eax
mov esi, eax
jmp 0x4551b0
movzx eax, word [ebp - 0x14]
shr eax, 1
push eax
push 0
lea eax, [ebp - 0x32]
push eax
movzx ecx, word [ebp - 0x14]
mov edx, dword [ebp - 0xc]
mov eax, ebx
call fcn.00411fbc
mov esi, eax
test esi, esi
jg 0x4551b0
movzx eax, word [ebp - 0x10]
dec eax
imul eax, eax, 0xe000
neg esi
add eax, esi
mov dword [ebp - 8], eax
mov eax, dword [0x48d9fc]
mov byte [eax], 1
jmp 0x4552ca
push esi
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [ebp - 0x38]
push eax
call sub.kernel32.dll__hwrite
cmp esi, eax
jle 0x4551de
lea edx, [ebp - 0x14e]
mov ax, 5
call fcn.0040de10
mov eax, dword [0x48d9fc]
mov byte [eax], 1
jmp 0x4552ca
cmp byte [ebp - 0x34], 2
jne 0x455262
mov eax, dword [0x48d550]
cmp byte [eax + 0x18b1], 0xb
jne 0x455220
mov byte [ebp - 0x33], 1
mov eax, dword [ebp - 0x4c]
fild qword [eax + 0x18]
fcomp dword [0x4555ec]
fnstsw ax
sahf
jbe 0x45520b
mov byte [ebp - 0x33], 2
mov eax, dword [ebp - 0x4c]
fild qword [eax + 0x18]
fcomp dword [0x4555f0]
fnstsw ax
sahf
jbe 0x455220
mov byte [ebp - 0x33], 3
mov eax, dword [ebp - 0x30]
push eax
lea eax, [ebp - 0x2c]
push eax
movzx eax, word [ebp - 0x10]
dec eax
imul edx, eax, 0xe000
mov ecx, ebx
mov al, byte [ebp - 0x33]
call fcn.00454438
test al, al
jne 0x45525a
mov eax, dword [ebp - 0x4c]
mov edx, dword [eax + 0x14]
mov ax, 2
call fcn.0040de10
mov eax, dword [0x48d9fc]
mov byte [eax], 1
jmp 0x4552ca
mov ax, word [ebp - 0x10]
cmp ax, word [ebp - 0x12]
movzx eax, word [ebp - 0x10]
dec eax
imul eax, eax, 0xe000
movzx edx, word [ebp - 0x14]
add eax, edx
mov dword [ebp - 0x160], eax
fild dword [ebp - 0x160]
fild qword [ebp - 0x20]
fdivp st(1)
fmul dword [0x4555f4]
call fcn.004028a0
mov edx, dword [0x48d1d8]
mov byte [edx], al
mov eax, dword [0x48d1d8]
mov al, byte [eax]
mov edx, dword [0x48d668]
cmp al, byte [edx]
je 0x4552ad
call fcn.00414c64
call fcn.0040f494
mov eax, dword [0x48d9fc]
cmp byte [eax], 0
jne 0x4552ca
inc word [ebp - 0x10]
dec word [ebp - 0x4e]
jne 0x454e90
cmp byte [ebp - 0x34], 0
jne 0x455307
mov eax, dword [ebp - 0x4c]
push dword [eax + 0x490]
push dword [eax + 0x48c]
mov eax, dword [ebp - 0x4c]
fild qword [eax + 0x48c]
fild qword [ebp - 0x20]
faddp st(1)
fsub dword [0x4555e4]
add esp, 0xfffffff8
fistp qword [esp]
wait
mov eax, dword [ebp - 0x4c]
add eax, 0xc
call fcn.00423bdc
jmp 0x455329
push 0
push 0
mov eax, dword [ebp - 0x4c]
fild qword [eax + 0x18]
fsub dword [0x4555e4]
add esp, 0xfffffff8
fistp qword [esp]
wait
mov eax, dword [ebp - 0x4c]
add eax, 0xc
call fcn.00423bdc
mov eax, dword [ebp - 0x4c]
add eax, 0xc
call fcn.00428820
mov eax, dword [0x48d550]
cmp byte [eax + 0x18b1], 0xc
jb 0x45537e
mov eax, dword [0x48d550]
cmp byte [eax + 0x18ea], 0
jne 0x455365
cmp byte [ebp - 3], 0
jne 0x455365
mov eax, dword [0x48d208]
mov edx, 0x11
call fcn.00405a9c
mov eax, dword [0x48d208]
xor edx, edx
call fcn.00406564
mov edx, 0x2c
mov eax, dword [ebp - 0x3c]
call fcn.00402508
cmp byte [ebp - 0x34], 0
jbe 0x45557a
mov eax, dword [ebp - 0xc]
call fcn.00402508
cmp byte [ebp - 0x34], 1
jne 0x4553a4
mov eax, dword [ebp - 0x38]
push eax
call sub.kernel32.dll_CloseHandle_1
jmp 0x455484
mov eax, dword [0x48d550]
cmp byte [eax + 0x18b1], 0xa
jne 0x4553cb
mov edx, 0x455600
mov eax, 0x49bbfc
call fcn.00404918
call fcn.00402c54
jmp 0x45547a
mov dl, 0x53
mov eax, 0x49bbfc
call fcn.00403198
movsx edx, byte [ebp - 0x33]
push edx
mov edx, 0xa
pop ecx
sub edx, ecx
call fcn.00403214
mov dl, 0x30
call fcn.00403198
movsx edx, byte [ebp - 0x33]
add edx, 2
call fcn.00403214
mov edx, 0x455614
call fcn.00404918
call fcn.00402c54
cmp byte [ebp - 0x33], 2
jne 0x455425
mov edx, 0x455624
mov eax, 0x49bbfc
call fcn.00404918
call fcn.00402c54
cmp byte [ebp - 0x33], 3
jne 0x45543f
mov edx, 0x455624
mov eax, 0x49bbfc
call fcn.00404918
call fcn.00402c54
movsx eax, byte [ebp - 0x33]
add eax, 2
mov edx, 0xff
sub edx, eax
mov dword [ebp - 0x160], edx
fild dword [ebp - 0x160]
add esp, 0xfffffff8
fistp qword [esp]
wait
mov dl, 2
xor eax, eax
call fcn.0040fe88
mov edx, eax
mov eax, 0x49bbfc
call fcn.00403250
call fcn.004032bc
mov eax, 0x49bbfc
call fcn.00402c60
mov eax, dword [0x48d9fc]
cmp byte [eax], 0
jne 0x45556e
mov eax, dword [ebp - 0x4c]
cmp byte [eax + 0x82], 4
je 0x4554bb
mov eax, dword [ebp - 0x4c]
mov ax, word [eax + 0x534]
call fcn.00412944
mov edx, eax
mov eax, dword [0x48da44]
call fcn.00405c48
jmp 0x4554cb
mov eax, dword [ebp - 0x4c]
mov edx, dword [eax + 0x14]
mov eax, dword [0x48da44]
call fcn.00405c48
mov eax, dword [0x48da44]
push eax
call sub.kernel32.dll_DeleteFileA_1
mov ax, 0xf8
call fcn.0040bc04
push eax
mov eax, dword [0x48db04]
mov eax, dword [eax]
push eax
call sub.user32.dll_SetWindowTextA
mov eax, dword [0x48da44]
push eax
lea eax, [ebp - 0x14e]
push eax
call sub.kernel32.dll_MoveFileA
cmp eax, 1
sbb eax, eax
inc eax
test al, al
jne 0x45553d
mov edx, dword [0x48da44]
mov ax, 3
call fcn.0040de10
mov ax, 0x148
call fcn.0040bc04
lea edx, [ebp - 0x14e]
call fcn.0040f5a0
mov eax, dword [0x48da44]
mov edx, 4
call fcn.00411d74
jmp 0x45557a
mov dword [ebp - 8], 0xffffffff
mov eax, dword [ebp - 0x4c]
cmp byte [eax + 0x82], 4
je 0x45555b
mov eax, dword [ebp - 0x4c]
add eax, 0xc
call fcn.00424b08
mov eax, dword [0x48da44]
call fcn.00412f30
mov eax, dword [ebp - 0x4c]
fistp qword [eax + 0x18]
wait
jmp 0x45557a
lea eax, [ebp - 0x14e]
push eax
call sub.kernel32.dll_DeleteFileA_1
mov eax, ebx
call fcn.00402508
call fcn.0040eb04
mov eax, dword [0x48d9fc]
cmp byte [eax], 0
je 0x455596
cmp byte [ebp - 0x34], 0
jne 0x4555aa
mov eax, dword [ebp - 0x4c]
mov byte [eax + 0x55e], 1
mov eax, dword [ebp - 0x4c]
mov byte [eax + 0x8f], 0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4555ca
lea eax, [ebp - 0x15c]
call fcn.00404410
ret