Function at 0x429484
Capabilities:
Delete file

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffb4
push ebx
push esi
push edi
mov ebx, ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov byte [ebp - 9], 0
push 0
mov eax, dword [ebp - 4]
push eax
call sub.kernel32.dll__lopen
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 0xffffffff
jne 0x4294c2
mov edx, dword [ebp - 4]
mov ax, 1
call fcn.0040de10
mov byte [ebp - 9], 1
jmp 0x4298cd
push 0
mov eax, dword [ebp - 8]
push eax
call sub.kernel32.dll__lcreat
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], 0xffffffff
jne 0x4294f4
mov byte [ebp - 9], 3
mov eax, dword [ebp - 0x28]
push eax
call sub.kernel32.dll_CloseHandle_1
mov edx, dword [ebp - 8]
mov ax, 3
call fcn.0040de10
jmp 0x4298cd
mov eax, dword [ebp - 0x28]
call fcn.00412ed4
fistp qword [ebp - 0x18]
wait
fild qword [ebp - 0x18]
fcomp dword [0x4298dc]
fnstsw ax
sahf
jne 0x4295c3
mov eax, dword [0x48d72c]
cmp byte [eax], 0
jne 0x4295c3
push 1
push 0x4298e0
mov eax, dword [ebp - 0x2c]
push eax
call sub.kernel32.dll__hwrite
mov eax, dword [0x48d918]
mov eax, dword [eax]
push eax
mov eax, dword [ebp - 4]
push eax
call sub.kernel32.dll_lstrcmpA
test eax, eax
je 0x429599
mov eax, dword [0x48d550]
cmp byte [eax + 0x18ec], 0
jne 0x4295ac
mov eax, dword [0x48d5f0]
cmp byte [eax], 0
jne 0x4295ac
mov eax, dword [ebp - 4]
call fcn.0040fb28
push eax
mov ax, 0xe4
call fcn.0040bc04
pop edx
call fcn.0040f5a0
mov eax, dword [0x48da44]
mov edx, 0x24
call fcn.00411d74
mov eax, dword [0x48d91c]
mov al, byte [eax]
mov edx, dword [0x48d550]
mov byte [edx + 0x18ec], al
jmp 0x4295ac
mov ax, 0xe5
call fcn.0040bc04
mov edx, 4
call fcn.00411d74
mov eax, dword [ebp - 0x28]
push eax
call sub.kernel32.dll_CloseHandle_1
mov eax, dword [ebp - 0x2c]
push eax
call sub.kernel32.dll_CloseHandle_1
jmp 0x4298cd
test bl, bl
je 0x42968d
cmp bl, 8
je 0x4295d5
cmp bl, 6
jne 0x4295db
mov byte [ebp - 0x2e], 0
jmp 0x4295df
mov byte [ebp - 0x2e], 1
cmp bl, 8
jne 0x4295e6
mov bl, 7
xor eax, eax
mov al, bl
add ax, 0xdd
dec eax
call fcn.0040bc04
mov edx, eax
mov eax, dword [0x48d948]
call fcn.00405c48
cmp bl, 6
jae 0x42967a
mov eax, ebx
sub al, 2
je 0x429611
sub al, 2
je 0x42962b
jmp 0x42963e
mov eax, dword [ebp - 8]
call fcn.0040fb28
mov edx, eax
mov eax, dword [0x48d948]
mov cx, 0x3c
call fcn.00405c80
jmp 0x429656
mov eax, dword [0x48d948]
mov cx, 0x3c
mov edx, dword [ebp - 8]
call fcn.00405c80
jmp 0x429656
mov eax, dword [ebp - 4]
call fcn.0040fb28
mov edx, eax
mov eax, dword [0x48d948]
mov cx, 0x3c
call fcn.00405c80
mov eax, dword [0x48d550]
movzx eax, byte [eax + 0x188c]
lea eax, [eax + eax*4]
mov edx, dword [0x48d4f8]
lea eax, [edx + eax]
push eax
mov eax, dword [0x48d948]
push eax
call sub.kernel32.dll_lstrcatA
mov al, byte [ebp - 0x2e]
xor al, 1
mov edx, eax
add edx, edx
mov eax, dword [0x48d948]
call fcn.0040e810
xor eax, eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], eax
mov byte [ebp - 0x2d], 0
cmp dword [ebp + 8], 0
je 0x4296c6
mov eax, dword [0x48d550]
cmp byte [eax + 0x18f1], 0
je 0x4296c6
mov eax, dword [0x48d550]
mov al, byte [eax + 0x18f1]
mov byte [ebp - 0x2d], al
lea eax, [ebp - 0x48]
mov dl, byte [ebp - 0x2d]
call fcn.0040ae18
mov eax, 0xe000
call fcn.004024e8
mov esi, eax
push 0xe000
push esi
mov eax, dword [ebp - 0x28]
push eax
call sub.kernel32.dll__hread
mov edi, eax
cmp edi, 0xffffffff
jne 0x4296fd
mov byte [ebp - 9], 2
mov edx, dword [ebp - 4]
mov ax, 2
call fcn.0040de10
jmp 0x429859
cmp byte [ebp - 0x2d], 0
je 0x42970f
lea eax, [ebp - 0x48]
mov ecx, edi
mov edx, esi
call fcn.0040af28
push edi
push esi
mov eax, dword [ebp - 0x2c]
push eax
call sub.kernel32.dll__hwrite
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x4c], edi
fild dword [ebp - 0x4c]
fild qword [ebp - 0x20]
faddp st(1)
fistp qword [ebp - 0x20]
wait
fild qword [ebp - 0x20]
fcomp dword [0x4298e4]
fnstsw ax
sahf
jbe 0x42975a
fild qword [ebp - 0x20]
fcomp dword [0x4298e8]
fnstsw ax
sahf
jae 0x42975a
cmp bl, 2
jne 0x42975a
call fcn.00422f34
test al, al
je 0x42981c
fild qword [ebp - 0x18]
fcomp dword [0x4298dc]
fnstsw ax
sahf
jbe 0x429799
fild qword [ebp - 0x20]
fild qword [ebp - 0x18]
fdivp st(1)
fmul dword [0x4298ec]
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 0x429799
call fcn.00414c64
call fcn.0040f494
mov eax, dword [0x48d9fc]
cmp byte [eax], 0
je 0x42980f
cmp bl, 2
jne 0x429859
mov eax, dword [ebp - 8]
call fcn.0040fb28
push eax
mov ax, 0xe6
call fcn.0040bc04
pop edx
call fcn.0040f5a0
mov eax, dword [0x48daa4]
cmp byte [eax], 0
jbe 0x4297e8
mov ax, 0xe7
call fcn.0040bc04
push eax
mov eax, dword [0x48da44]
push eax
call sub.kernel32.dll_lstrcatA
mov eax, dword [0x48da44]
mov edx, 2
call fcn.00411d74
cmp al, 1
je 0x429859
mov eax, dword [0x48d948]
xor edx, edx
call fcn.0040e810
mov eax, dword [0x48d9fc]
mov byte [eax], 0
test edi, edi
je 0x42981c
cmp edi, dword [ebp - 0x24]
je 0x4296d2
mov eax, dword [0x48d1d8]
mov byte [eax], 0x64
call fcn.00414c64
cmp byte [ebp - 0x2d], 0
je 0x42983c
lea eax, [ebp - 0x48]
xor ecx, ecx
mov edx, dword [ebp + 8]
call fcn.0040b040
cmp edi, dword [ebp - 0x24]
je 0x429859
mov byte [ebp - 9], 5
mov edx, dword [ebp - 8]
mov ax, 5
call fcn.0040de10
mov eax, dword [0x48d9fc]
mov byte [eax], 1
mov eax, esi
call fcn.00402508
mov eax, dword [ebp - 0x28]
push eax
call sub.kernel32.dll_CloseHandle_1
mov eax, dword [ebp - 0x2c]
push eax
call sub.kernel32.dll_CloseHandle_1
mov eax, dword [0x48d9fc]
cmp byte [eax], 0
je 0x429889
mov eax, dword [ebp - 8]
push eax
call sub.kernel32.dll_DeleteFileA_1
mov byte [ebp - 9], 0xff
test bl, bl
je 0x429892
call fcn.0040eb04
mov eax, dword [0x48d900]
cmp byte [eax], 0
je 0x4298cd
mov eax, dword [0x48daa4]
cmp byte [eax], 0
jbe 0x4298cd
mov eax, dword [ebp - 8]
call fcn.0040fb28
push eax
mov ax, 0xe8
call fcn.0040bc04
pop edx
call fcn.0040f5a0
mov eax, dword [0x48da44]
mov edx, 4
call fcn.00411d74
mov al, byte [ebp - 9]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4