Function at 0x4692d0
Capabilities:
Delete file

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffdd0
push ebx
push esi
push edi
mov byte [ebp - 5], cl
mov dword [ebp - 4], edx
mov esi, eax
mov byte [ebp - 6], 0
xor edi, edi
mov eax, esi
call fcn.00464bb4
test al, al
je 0x46976b
fild qword [esi + 0x494]
fcomp dword [0x469778]
fnstsw ax
sahf
jbe 0x469336
mov eax, dword [esi + 0x48c]
mov dword [ebp - 0x18], eax
mov eax, dword [esi + 0x490]
mov dword [ebp - 0x14], eax
fild qword [esi + 0x494]
fild qword [esi + 0x48c]
fsubp st(1)
fadd dword [0x46977c]
fistp qword [ebp - 0x10]
wait
jmp 0x4693a6
cmp byte [esi + 0x55d], 0
je 0x469392
mov eax, dword [esi + 0x170]
call fcn.0040fd30
movsx eax, byte [esi + 0x55d]
mov edx, dword [0x48d9a0]
movzx eax, word [edx + eax*2 + 0x4c]
mov dword [ebp - 0x230], eax
fild dword [ebp - 0x230]
fmulp st(1)
fistp qword [ebp - 0x18]
wait
movsx eax, byte [esi + 0x55d]
mov edx, dword [0x48d9a0]
movzx eax, word [edx + eax*2 + 0x4c]
mov dword [ebp - 0x230], eax
fild dword [ebp - 0x230]
fistp qword [ebp - 0x10]
wait
jmp 0x4693a6
mov eax, dword [esi + 0x18]
mov dword [ebp - 0x10], eax
mov eax, dword [esi + 0x1c]
mov dword [ebp - 0xc], eax
xor eax, eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], eax
push dword [ebp - 0xc]
push dword [ebp - 0x10]
xor eax, eax
call fcn.0040f3c4
test al, al
je 0x46976b
cmp dword [ebp - 4], 0
jne 0x469462
mov edx, dword [0x48d370]
lea eax, [ebp - 0x22c]
call fcn.00405c48
cmp dword [ebp - 4], 0
jne 0x4693fd
mov eax, dword [0x48d550]
movzx eax, byte [eax + 0x188c]
mov edx, dword [0x48dba0]
mov edx, dword [edx + eax*4]
mov eax, dword [0x48d370]
call fcn.00405c48
jmp 0x46940a
mov eax, dword [0x48d370]
mov edx, dword [ebp - 4]
call fcn.00405c48
call fcn.0040f494
mov al, 1
call fcn.0042aef4
test al, al
je 0x46974b
mov eax, dword [0x48d370]
call fcn.00412584
test al, al
je 0x46944f
mov eax, dword [esi + 0x14]
push eax
mov eax, dword [0x48d370]
push eax
call sub.kernel32.dll_lstrcmpiA
test eax, eax
je 0x46940a
mov eax, dword [0x48d370]
xor edx, edx
call fcn.00411180
test al, al
je 0x46940a
mov edx, dword [0x48d370]
lea eax, [ebp - 0x12c]
call fcn.00405c48
jmp 0x469470
lea eax, [ebp - 0x12c]
mov edx, dword [ebp - 4]
call fcn.00405c48
fld xword [0x469780]
fild qword [ebp - 0x10]
fcompp
fnstsw ax
sahf
jbe 0x4694f7
mov byte [ebp - 0x27], 2
lea edx, [ebp - 0x25]
lea eax, [ebp - 0x12c]
call fcn.0041af78
test al, al
je 0x4694a4
lea ecx, [ebp - 0x26]
lea edx, [ebp - 0x27]
mov al, byte [ebp - 0x25]
call fcn.0041ab60
cmp byte [ebp - 0x27], 1
jl 0x4694f7
cmp byte [ebp - 0x27], 3
jg 0x4694f7
cmp byte [ebp - 0x27], 3
sete al
and eax, 0x7f
add eax, eax
add eax, 2
mov dword [ebp - 0x230], eax
fild dword [ebp - 0x230]
add esp, 0xfffffff8
fistp qword [esp]
wait
mov ax, 0x304
call fcn.0040bc04
call fcn.0040f4d4
mov eax, dword [0x48da44]
mov edx, 0x77
call fcn.00411d74
test al, al
je 0x46974b
push 0
lea eax, [ebp - 0x12c]
push eax
call sub.kernel32.dll__lcreat
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 0xffffffff
jne 0x469522
lea edx, [ebp - 0x12c]
mov ax, 3
call fcn.0040de10
jmp 0x46974b
push 0x10000
push 0x40
call sub.kernel32.dll_GlobalAlloc
mov edi, eax
test edi, edi
jne 0x469550
push 0
push 0x10000
call fcn.00412abc
mov edx, eax
mov ax, 0xb
call fcn.0040de10
jmp 0x46974b
fild qword [ebp - 0x10]
fdiv dword [0x46978c]
call fcn.004028a0
cmp edx, 0
jne 0x46956c
cmp eax, 0xc8
jbe 0x46957b
jmp 0x46956e
jle 0x46957b
call fcn.00422f34
test al, al
je 0x46974b
lea eax, [esi + 0xc]
call fcn.00428760
test al, al
je 0x46974b
cmp byte [ebp - 5], 0
je 0x4695e7
cmp byte [esi + 0x55d], 0
jne 0x4695c6
fild qword [esi + 0x494]
fcomp dword [0x469778]
fnstsw ax
sahf
sete al
and eax, 0x7f
add ax, 0x20
call fcn.0040bc04
mov edx, eax
mov eax, dword [0x48d948]
call fcn.00405c48
jmp 0x4695db
mov ax, 0x250
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 - 0x10]
fsub dword [0x46977c]
fdiv dword [0x469790]
fadd dword [0x46977c]
add esp, 0xfffffff4
fstp xword [esp]
wait
call fcn.0040fd80
mov dword [ebp - 0x20], eax
mov byte [ebp - 6], 1
mov eax, dword [ebp - 0x20]
test eax, eax
jbe 0x4696dc
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x1c], 1
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x20]
jae 0x469633
mov ebx, 0x10000
jmp 0x469652
fild qword [ebp - 0x10]
fsub dword [0x46977c]
add esp, 0xfffffff8
fistp qword [esp]
wait
push 0
push 0x10000
call fcn.0040fe38
mov ebx, eax
inc ebx
push ebx
lea edx, [ebp - 0x18]
lea eax, [esi + 0xc]
mov ecx, edi
call fcn.004254a8
cmp ebx, eax
jle 0x46966a
mov byte [ebp - 6], 0
jmp 0x4696dc
push ebx
push edi
mov eax, dword [ebp - 0x24]
push eax
call sub.kernel32.dll__hwrite
cmp ebx, eax
jle 0x46968e
lea edx, [ebp - 0x12c]
mov ax, 5
call fcn.0040de10
mov byte [ebp - 6], 0
jmp 0x4696dc
cmp byte [ebp - 5], 0
je 0x4696bb
imul eax, dword [ebp - 0x1c], 0x64
xor edx, edx
div dword [ebp - 0x20]
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 0x4696bb
call fcn.00414c64
call fcn.0040f494
mov eax, dword [0x48d9fc]
cmp byte [eax], 0
je 0x4696d0
mov byte [ebp - 6], 0
jmp 0x4696dc
inc dword [ebp - 0x1c]
dec dword [ebp - 0x2c]
jne 0x469624
mov eax, dword [ebp - 0x24]
push eax
call sub.kernel32.dll_CloseHandle_1
lea eax, [esi + 0xc]
call fcn.00428820
mov eax, dword [0x48d9fc]
cmp byte [eax], 0
je 0x46972f
cmp byte [ebp + 8], 0
je 0x469721
lea eax, [ebp - 0x12c]
call fcn.0040fb28
push eax
mov ax, 0x11b
call fcn.0040bc04
mov ecx, 2
pop edx
call fcn.00411d84
cmp al, 1
jne 0x46973a
lea eax, [ebp - 0x12c]
push eax
call sub.kernel32.dll_DeleteFileA_1
jmp 0x46974b
cmp byte [ebp - 5], 0
je 0x46973a
call fcn.0040eb04
cmp dword [ebp - 4], 0
jne 0x46974b
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.004616f8
test edi, edi
je 0x469755
push edi
call sub.kernel32.dll_GlobalFree
cmp dword [ebp - 4], 0
jne 0x46976b
lea edx, [ebp - 0x22c]
mov eax, dword [0x48d370]
call fcn.00405c48
mov al, byte [ebp - 6]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4