Function at 0x436e54
Capabilities:
Delete file
Move file

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xfffffbb4
mov word [esp + 2], dx
mov byte [esp], al
mov dword [esp + 4], 0xfffffffe
movsx eax, word [esp + 2]
mov edx, dword [0x4be754]
mov eax, dword [edx + eax*4 - 4]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x3c]
mov edx, dword [eax + 0x1a0]
call dword [edx + 0x10]
test al, al
je 0x4377ff
mov edx, dword [0x4be784]
add edx, 0x100
lea eax, [esp + 0x342]
call fcn.004b81b0
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 0xc]
call fcn.004aed10
push eax
lea eax, [esp + 0x346]
push eax
call sub.kernel32.dll_lstrcatA
push 0x437810
lea eax, [esp + 0x346]
push eax
call sub.kernel32.dll_lstrcatA
push 0
lea eax, [esp + 0x346]
push eax
call sub.kernel32.dll__lcreat
mov dword [esp + 0x38], eax
cmp dword [esp + 0x38], 0xffffffff
jne 0x436f0c
lea edx, [esp + 0x342]
mov ax, 3
call fcn.004acdac
jmp 0x4377ff
push 4
push 0x1000
push 0x10000
push 0
call sub.kernel32.dll_VirtualAlloc_1
mov dword [esp + 0x34], eax
cmp dword [esp + 0x34], 0
jne 0x436f46
push 0
push 0x10000
call fcn.004b1e30
mov edx, eax
mov ax, 0xb
call fcn.004acdac
jmp 0x4377b1
mov eax, dword [esp + 0x34]
mov ecx, 0xff
mov edx, 0x10000
call fcn.00402ff0
push 0x10000
mov eax, dword [esp + 0x38]
push eax
mov eax, dword [esp + 0x40]
push eax
call sub.kernel32.dll__hwrite
mov dword [esp + 0x14], 0x10000
xor eax, eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
xor eax, eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
xor eax, eax
mov dword [esp + 0x18], eax
xor eax, eax
mov dword [esp + 0x1c], eax
mov byte [esp + 0x30], 0
mov eax, dword [0x4be784]
cmp byte [eax + 0x18b1], 8
je 0x436fb6
mov eax, dword [0x4be784]
cmp byte [eax + 0x18b1], 9
jne 0x436fcd
mov ax, 0x142
call fcn.004aa600
mov edx, eax
mov eax, dword [0x4bec98]
call fcn.004b81b0
jmp 0x436fe2
mov ax, 0x145
call fcn.004aa600
mov edx, eax
mov eax, dword [0x4bec98]
call fcn.004b81b0
mov eax, dword [0x4bec98]
xor edx, edx
call fcn.004ad8ec
mov eax, dword [0x4be84c]
mov byte [eax], 1
push 0x22c
mov ecx, dword [0x4bedb0]
lea edx, [esp + 0x24]
mov eax, dword [esp + 0x40]
mov ebx, dword [eax + 0x1a0]
call dword [ebx + 0x18]
mov edx, dword [0x4be6b0]
mov dword [edx], eax
xor eax, eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
mov byte [esp + 0xe], 1
mov eax, dword [0x4bedb0]
mov dl, 0xd
call fcn.004b8284
test eax, eax
je 0x43703e
mov byte [esp + 0xe], 2
mov eax, dword [esp + 0x20]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x2c], eax
fild qword [esp + 0x20]
mov eax, dword [esp + 0x3c]
fild qword [eax + 0x10]
fcompp
fnstsw ax
sahf
je 0x43759c
push 1
lea ecx, [esp + 0xc]
lea edx, [esp + 0x24]
mov eax, dword [esp + 0x40]
mov ebx, dword [eax + 0x1a0]
call dword [ebx + 0x18]
dec eax
jl 0x437772
cmp byte [esp], 1
jne 0x437093
cmp byte [esp + 8], 0x3a
jne 0x437772
cmp byte [esp], 0
jne 0x4370a4
cmp byte [esp + 8], 0x53
jne 0x437772
cmp byte [esp], 0
jne 0x437132
mov eax, dword [esp + 0x20]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x2c], eax
push 1
lea ecx, [esp + 0xe]
lea edx, [esp + 0x24]
mov eax, dword [esp + 0x40]
mov ebx, dword [eax + 0x1a0]
call dword [ebx + 0x18]
cmp byte [esp + 0xa], 0x30
jb 0x437772
cmp byte [esp + 0xa], 0x39
ja 0x437772
cmp byte [esp + 0xa], 0x34
je 0x437772
cmp byte [esp + 0xa], 0x36
je 0x437772
cmp byte [esp + 0xa], 0x36
ja 0x43759c
cmp byte [esp + 0xa], 0x31
jne 0x437118
mov byte [esp + 0xd], 4
cmp byte [esp + 0xa], 0x32
jne 0x437124
mov byte [esp + 0xd], 6
cmp byte [esp + 0xa], 0x33
jne 0x437137
mov byte [esp + 0xd], 8
jmp 0x437137
mov byte [esp + 0xd], 4
mov eax, dword [esp + 0x20]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x2c], eax
push 2
lea ecx, [esp + 0xf]
lea edx, [esp + 0x24]
mov eax, dword [esp + 0x40]
mov ebx, dword [eax + 0x1a0]
call dword [ebx + 0x18]
mov eax, dword [0x4bebbc]
mov bl, byte [esp + 0xb]
mov edx, ebx
and edx, 0xff
bt dword [eax], edx
jae 0x437772
mov eax, dword [0x4bebbc]
mov dl, byte [esp + 0xc]
and edx, 0xff
bt dword [eax], edx
jae 0x437772
mov eax, ebx
call fcn.004b13e8
and eax, 0xff
mov ebx, eax
shl ebx, 4
mov al, byte [esp + 0xc]
call fcn.004b13e8
and eax, 0xff
add bx, ax
mov esi, ebx
add esi, esi
cmp byte [esp], 0
jne 0x437201
cmp byte [esp + 0xa], 0x30
je 0x4371ca
cmp byte [esp + 0xa], 0x35
jne 0x437201
movzx eax, si
mov dword [esp + 0x444], eax
fild dword [esp + 0x444]
fild qword [esp + 0x20]
faddp st(1)
xor eax, eax
mov al, byte [esp + 0xe]
mov dword [esp + 0x448], eax
fild dword [esp + 0x448]
faddp st(1)
fistp qword [esp + 0x20]
wait
jmp 0x43703e
movzx edi, byte [esp + 0xd]
push edi
mov ecx, dword [0x4bedb0]
lea edx, [esp + 0x24]
mov eax, dword [esp + 0x40]
mov ebx, dword [eax + 0x1a0]
call dword [ebx + 0x18]
mov eax, dword [0x4bedb0]
mov byte [eax + edi], 0
mov eax, dword [0x4bedb0]
call fcn.004aa9b8
add eax, dword [esp + 0x1c]
mov dword [esp + 0x10], eax
mov eax, dword [0x4be95c]
cmp byte [eax], 0
jne 0x437772
cmp byte [esp], 0
je 0x4373d7
mov eax, dword [esp + 0x20]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x2c], eax
push 2
lea ecx, [esp + 0xf]
lea edx, [esp + 0x24]
mov eax, dword [esp + 0x40]
mov ebx, dword [eax + 0x1a0]
call dword [ebx + 0x18]
cmp eax, 2
jl 0x437772
cmp byte [esp + 0xc], 0x32
jne 0x437302
mov eax, dword [esp + 0x20]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x2c], eax
push 4
mov ecx, dword [0x4bedb0]
lea edx, [esp + 0x24]
mov eax, dword [esp + 0x40]
mov ebx, dword [eax + 0x1a0]
call dword [ebx + 0x18]
mov eax, dword [0x4bedb0]
mov byte [eax + 4], 0
mov eax, dword [0x4bedb0]
call fcn.004aa9b8
mov dword [esp + 0x1c], eax
mov eax, dword [0x4be95c]
cmp byte [eax], 0
jne 0x437772
mov eax, dword [esp + 0x1c]
shl eax, 4
mov dword [esp + 0x1c], eax
movzx eax, si
mov dword [esp + 0x444], eax
fild dword [esp + 0x444]
fild qword [esp + 0x20]
faddp st(1)
fistp qword [esp + 0x20]
wait
jmp 0x43703e
cmp byte [esp + 0xc], 0x34
jne 0x437383
mov eax, dword [esp + 0x20]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x2c], eax
push 4
mov ecx, dword [0x4bedb0]
lea edx, [esp + 0x24]
mov eax, dword [esp + 0x40]
mov ebx, dword [eax + 0x1a0]
call dword [ebx + 0x18]
mov eax, dword [0x4bedb0]
mov byte [eax + 4], 0
mov eax, dword [0x4bedb0]
call fcn.004aa9b8
mov dword [esp + 0x1c], eax
mov eax, dword [0x4be95c]
cmp byte [eax], 0
jne 0x437772
mov eax, dword [esp + 0x1c]
shl eax, 0x10
mov dword [esp + 0x1c], eax
movzx eax, si
mov dword [esp + 0x444], eax
fild dword [esp + 0x444]
fild qword [esp + 0x20]
faddp st(1)
fistp qword [esp + 0x20]
wait
jmp 0x43703e
cmp byte [esp + 0xc], 0x31
je 0x43759c
mov al, byte [esp + 0xc]
cmp al, 0x33
je 0x43739a
cmp al, 0x35
jne 0x4373c1
movzx eax, si
mov dword [esp + 0x444], eax
fild dword [esp + 0x444]
fild qword [esp + 0x20]
faddp st(1)
fadd dword [0x437818]
fistp qword [esp + 0x20]
wait
jmp 0x43703e
cmp byte [esp + 0xb], 0x30
jne 0x437772
cmp byte [esp + 0xc], 0x30
jne 0x437772
cmp byte [esp], 0
jne 0x4373ea
xor eax, eax
mov al, byte [esp + 0xd]
sub si, ax
sub si, 2
movzx edi, si
add edi, 2
push edi
lea ecx, [esp + 0x44]
lea edx, [esp + 0x24]
mov eax, dword [esp + 0x40]
mov ebx, dword [eax + 0x1a0]
call dword [ebx + 0x18]
cmp eax, edi
jl 0x4377b1
movzx ebx, si
shr ebx, 1
mov esi, ebx
and esi, 0xff
add esi, dword [esp + 0x10]
cmp esi, dword [esp + 0x14]
jle 0x43744b
sub esi, dword [esp + 0x14]
push esi
mov eax, dword [esp + 0x38]
push eax
lea ecx, [esp + 0x1c]
lea eax, [esp + 0x34a]
mov edx, dword [esp + 0x40]
call fcn.00436d84
test al, al
je 0x4377b1
mov edi, ebx
and edi, 0xff
test edi, edi
jle 0x43748a
lea ebp, [esp + 0x40]
lea esi, [esp + 0x242]
push esi
push dword [esp + 0x28]
push dword [esp + 0x28]
call fcn.004af008
mov cl, byte [ebp + 1]
mov dl, byte [ebp]
call fcn.00436ccc
test al, al
je 0x4377b1
inc esi
add ebp, 2
dec edi
jne 0x437462
xor eax, eax
mov al, byte [esp + 0xe]
mov dword [esp + 0x444], eax
fild dword [esp + 0x444]
fild qword [esp + 0x20]
faddp st(1)
fistp qword [esp + 0x20]
wait
xor ecx, ecx
mov cl, bl
lea edx, [esp + 0x242]
mov eax, dword [0x4bedb0]
call fcn.004066dc
push 0
push 0
mov eax, dword [esp + 0x18]
push eax
mov eax, dword [esp + 0x44]
push eax
call sub.kernel32.dll_SetFilePointer_1
mov esi, ebx
and esi, 0xff
push esi
lea eax, [esp + 0x246]
push eax
mov eax, dword [esp + 0x40]
push eax
call sub.kernel32.dll__hwrite
cmp eax, esi
jge 0x43750d
call fcn.004adbe0
mov eax, dword [0x4bed48]
mov byte [eax], 1
lea edx, [esp + 0x342]
mov ax, 5
call fcn.004acdac
add dword [esp + 0x10], esi
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
call fcn.004aa578
mov dword [esp + 0x18], eax
inc byte [esp + 0x30]
cmp byte [esp + 0x30], 0x32
jne 0x43703e
fild qword [esp + 0x20]
mov eax, dword [esp + 0x3c]
fild qword [eax + 0x10]
fdivp st(1)
fmul dword [0x43781c]
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 0x437567
call fcn.004b5c48
call fcn.004ae0a4
mov eax, dword [0x4bed48]
cmp byte [eax], 0
je 0x437592
mov eax, dword [esp + 0x38]
push eax
call sub.kernel32.dll_CloseHandle_1
lea eax, [esp + 0x342]
push eax
call sub.kernel32.dll_DeleteFileA_1
jmp 0x4377ff
mov byte [esp + 0x30], 0
jmp 0x43703e
mov eax, dword [0x4be570]
cmp byte [eax], 0
jne 0x4375ed
mov dl, 0xe
mov ax, 0x1f
call fcn.0048841c
dec eax
jne 0x4375ed
mov eax, dword [0x4be784]
mov edx, dword [eax + 0x17ac]
shl edx, 0xa
mov eax, dword [esp + 0x18]
call fcn.004aa578
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
push eax
mov eax, dword [esp + 0x38]
push eax
lea ecx, [esp + 0x1c]
lea eax, [esp + 0x34a]
mov edx, dword [esp + 0x40]
call fcn.00436d84
push 0
push 0
mov eax, dword [esp + 0x20]
push eax
mov eax, dword [esp + 0x44]
push eax
call sub.kernel32.dll_SetFilePointer_1
mov eax, dword [esp + 0x38]
push eax
call sub.kernel32.dll_SetEndOfFile_1
mov eax, dword [esp + 0x3c]
mov edx, dword [eax + 0x1a0]
call dword [edx + 0x14]
mov eax, dword [esp + 0x38]
push eax
call sub.kernel32.dll_CloseHandle_1
mov eax, dword [esp + 0x3c]
cmp byte [eax + 0x96], 4
je 0x43764c
mov eax, dword [esp + 0x3c]
mov ax, word [eax + 0x92]
call fcn.004b1cb8
mov edx, eax
mov eax, dword [0x4bedb0]
call fcn.004b81b0
jmp 0x43765d
mov eax, dword [esp + 0x3c]
mov edx, dword [eax + 0xc]
mov eax, dword [0x4bedb0]
call fcn.004b81b0
mov eax, dword [0x4bedb0]
push eax
call sub.kernel32.dll_DeleteFileA_1
mov ax, 0xf8
call fcn.004aa600
push eax
mov eax, dword [0x4bee9c]
mov eax, dword [eax]
push eax
call sub.user32.dll_SetWindowTextA
mov eax, dword [0x4bedb0]
push eax
lea eax, [esp + 0x346]
push eax
call sub.kernel32.dll_MoveFileA
cmp eax, 1
sbb eax, eax
inc eax
test al, al
jne 0x4376d4
mov edx, dword [0x4bedb0]
mov ax, 3
call fcn.004acdac
mov ax, 0x148
call fcn.004aa600
lea edx, [esp + 0x342]
call fcn.004ae1b0
mov eax, dword [0x4bedb0]
mov edx, 4
call fcn.004b12a8
jmp 0x437768
mov eax, dword [esp + 0x3c]
cmp byte [eax + 0x96], 4
je 0x4376ea
mov eax, dword [esp + 0x3c]
call fcn.00419ce8
mov eax, dword [0x4bedb0]
call fcn.004b2314
mov eax, dword [esp + 0x3c]
fistp qword [eax + 0x10]
wait
mov eax, dword [esp + 0x3c]
fild qword [eax + 0x10]
fsub dword [0x437820]
mov eax, dword [esp + 0x3c]
movsx eax, word [eax + 0x92]
mov edx, dword [0x4be754]
mov eax, dword [edx + eax*4 - 4]
fistp qword [eax + 0x14c]
wait
mov eax, dword [esp + 0x3c]
movsx eax, word [eax + 0x92]
mov edx, dword [0x4be754]
mov eax, dword [edx + eax*4 - 4]
mov byte [eax + 0x443], 1
mov eax, dword [esp + 0x3c]
movsx eax, word [eax + 0x92]
mov edx, dword [0x4be754]
mov eax, dword [edx + eax*4 - 4]
mov eax, dword [eax + 0xc]
mov byte [eax + 0xd2], 0
mov dword [esp + 4], 0xffffffff
call fcn.004adbe0
jmp 0x4377ff
push dword [esp + 0x2c]
push dword [esp + 0x2c]
call fcn.004af008
mov dword [esp + 0x444], eax
fild dword [esp + 0x444]
add esp, 0xfffffff8
fistp qword [esp]
wait
mov ax, 0x146
call fcn.004aa600
call fcn.004ae0e4
mov eax, dword [0x4bedb0]
mov edx, 3
call fcn.004b12a8
mov eax, dword [esp + 0x3c]
mov edx, dword [eax + 0x1a0]
call dword [edx + 0x14]
mov eax, dword [esp + 0x38]
push eax
call sub.kernel32.dll_CloseHandle_1
lea eax, [esp + 0x342]
push eax
call sub.kernel32.dll_DeleteFileA_1
push dword [esp + 0x2c]
push dword [esp + 0x2c]
call fcn.004af008
mov dword [esp + 4], eax
push 0x4000
push 0x10000
mov eax, dword [esp + 0x3c]
push eax
call sub.kernel32.dll_VirtualFree_1
call fcn.004adbe0
mov eax, dword [esp + 4]
add esp, 0x44c
pop ebp
pop edi
pop esi
pop ebx
ret