Function at 0x466420
Capabilities:
Delete file

Disassembly:
sub esp, 0x1c0
movsx ecx, word [esp + 0x1dc]
push ebx
mov ebx, dword [esp + 0x1c8]
push ebp
push esi
mov ax, word [ebx + 0xc]
push edi
push eax
push ecx
mov dword [esp + 0x2c], 0x19eb
mov byte [esp + 0xd4], 0
call fcn.004021e0
mov dx, word [ebx + 0xc]
mov esi, eax
movsx eax, word [esp + 0x1f8]
push edx
push eax
mov dword [esp + 0x30], esi
call fcn.004021e0
mov dword [esp + 0x2c], eax
mov eax, dword [0x655b10]
add esp, 0x10
test eax, eax
jne 0x466d56
mov ecx, dword [0x658e14]
push ecx
call dword [sym.imp.KERNEL32.dll_GlobalLock]
cmp word [esp + 0x1f4], 7
mov ecx, 0xffff
mov ebp, eax
mov dword [esp + 0x18], ecx
je 0x4667c8
cmp word [0x5058bc], cx
je 0x466555
mov eax, dword [0x5058bc]
and eax, ecx
lea edx, [eax + eax*8]
shl edx, 5
mov eax, dword [edx + ebp + 0x104]
test eax, eax
je 0x46654c
push eax
mov eax, dword [ebx + 0x10]
push eax
call fcn.00466040
add esp, 8
test eax, eax
je 0x46658c
mov eax, dword [0x5058bc]
mov edi, dword [sym.imp.GDI32.dll_DeleteObject]
and eax, 0xffff
lea ecx, [eax + eax*8]
shl ecx, 5
mov edx, dword [ecx + ebp + 0x104]
push edx
call edi
mov eax, dword [0x5058bc]
and eax, 0xffff
lea eax, [eax + eax*8]
shl eax, 5
mov ecx, dword [eax + ebp + 0x10c]
push ecx
call edi
mov eax, dword [0x5058bc]
xor ecx, ecx
and eax, 0xffff
lea edx, [eax + eax*8]
shl edx, 5
mov dword [edx + ebp + 0x104], ecx
mov eax, dword [0x5058bc]
and eax, 0xffff
lea eax, [eax + eax*8]
shl eax, 5
mov dword [eax + ebp + 0x10c], ecx
mov word [0x5058bc], 0xffff
xor edi, edi
cmp word [0x658e10], di
jbe 0x4667c8
mov eax, edi
and eax, 0xffff
lea edx, [eax + eax*8]
shl edx, 5
mov eax, dword [edx + ebp + 0x104]
lea esi, [edx + ebp]
test eax, eax
jne 0x4666ca
mov dword [esp + 0x18], edi
jmp 0x4667b1
mov edi, dword [esp + 0x1d8]
test edi, edi
je 0x46654c
mov eax, dword [0x5058bc]
push edi
and eax, 0xffff
lea ecx, [eax + eax*8]
shl ecx, 5
add ecx, ebp
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x46654c
mov eax, dword [0x5058bc]
and eax, 0xffff
lea edx, [eax + eax*8]
shl edx, 5
cmp word [edx + ebp + 0x108], si
lea eax, [edx + ebp]
jne 0x46654c
mov cx, word [esp + 0x1c]
cmp word [eax + 0x10a], cx
jne 0x46654c
mov edx, dword [esp + 0x1fc]
mov ecx, dword [eax + 0x110]
cmp ecx, edx
jne 0x46654c
mov cx, word [esp + 0x204]
cmp word [eax + 0x114], cx
jne 0x46654c
mov dx, word [esp + 0x208]
cmp word [eax + 0x116], dx
jne 0x46654c
mov ecx, dword [esp + 0x1f8]
mov edx, dword [eax + 0x118]
cmp edx, ecx
jne 0x46654c
mov dx, word [esp + 0x20c]
cmp word [eax + 0x11c], dx
jne 0x46654c
mov cx, word [esp + 0x210]
cmp word [eax + 0x11e], cx
jne 0x46654c
mov edx, dword [0x658e14]
push edx
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov eax, dword [esp + 0x200]
mov ecx, dword [esp + 0x1f0]
mov edx, dword [esp + 0x1ec]
push eax
mov eax, dword [esp + 0x1ec]
push ecx
mov ecx, dword [esp + 0x1ec]
push edx
mov edx, dword [esp + 0x1ec]
push eax
mov eax, dword [esp + 0x1ec]
push ecx
mov cx, word [0x5058bc]
push edi
push edx
push eax
push 0
push ecx
push ebx
call fcn.00468d60
add esp, 0x2c
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c0
ret
push eax
mov eax, dword [ebx + 0x10]
push eax
call fcn.00466040
add esp, 8
test eax, eax
je 0x46670c
mov ecx, dword [esi + 0x104]
push ecx
call dword [sym.imp.GDI32.dll_DeleteObject]
mov edx, dword [esi + 0x10c]
push edx
call dword [sym.imp.GDI32.dll_DeleteObject]
xor eax, eax
mov dword [esp + 0x18], edi
mov dword [esi + 0x104], eax
mov dword [esi + 0x10c], eax
jmp 0x4667b1
mov eax, dword [esp + 0x1d8]
test eax, eax
je 0x4667b1
push eax
push esi
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x4667b1
mov ax, word [esp + 0x20]
cmp word [esi + 0x108], ax
jne 0x4667b1
mov cx, word [esp + 0x1c]
cmp word [esi + 0x10a], cx
jne 0x4667b1
mov edx, dword [esp + 0x1fc]
mov eax, dword [esi + 0x110]
cmp eax, edx
jne 0x4667b1
mov ax, word [esp + 0x204]
cmp word [esi + 0x114], ax
jne 0x4667b1
mov cx, word [esp + 0x208]
cmp word [esi + 0x116], cx
jne 0x4667b1
mov edx, dword [esp + 0x1f8]
mov eax, dword [esi + 0x118]
cmp eax, edx
jne 0x4667b1
mov ax, word [esp + 0x20c]
cmp word [esi + 0x11c], ax
jne 0x4667b1
mov cx, word [esp + 0x210]
cmp word [esi + 0x11e], cx
je 0x466884
inc edi
cmp di, word [0x658e10]
jb 0x466564
cmp word [esp + 0x18], 0xffff
jne 0x46682c
mov edx, dword [0x658e14]
push edx
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov edi, dword [0x658e10]
inc word [0x658e10]
mov eax, dword [0x658e10]
mov ecx, dword [0x658e14]
and eax, 0xffff
push 2
mov dword [esp + 0x1c], edi
lea eax, [eax + eax*8]
shl eax, 5
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_GlobalReAlloc]
push eax
mov dword [0x658e14], eax
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov ebp, eax
mov eax, edi
and eax, 0xffff
lea edx, [eax + eax*8]
shl edx, 5
mov dword [edx + ebp + 0x104], 0
mov eax, dword [ebx + 0x10]
mov edi, dword [sym.imp.GDI32.dll_GetDeviceCaps]
push 0xe
push eax
mov dword [esp + 0x2c], 0x19e8
call edi
mov ecx, dword [ebx + 0x10]
push 0xc
push ecx
mov esi, eax
call edi
imul esi, eax
push 0xc8
mov dword [esp + 0x18], esi
call sub.LTFIL90N.DLL_Ordinal_131
mov esi, dword [esp + 0x1d8]
cmp byte [esi], 0x2a
je 0x4668ef
mov edx, dword [esp + 0x14]
push 1
lea eax, [esp + 0x48]
push edx
push eax
push esi
call sub.LTFIL90N.DLL_Ordinal_101
jmp 0x46692f
mov edx, dword [0x658e14]
mov word [0x5058bc], di
push edx
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov eax, dword [esp + 0x200]
mov ecx, dword [esp + 0x1f0]
mov edx, dword [esp + 0x1ec]
push eax
mov eax, dword [esp + 0x1ec]
push ecx
mov ecx, dword [esp + 0x1ec]
push edx
mov edx, dword [esp + 0x1e4]
push eax
mov eax, dword [esp + 0x1f0]
push ecx
mov ecx, dword [esp + 0x1f0]
push edx
push eax
push ecx
push 0
push edi
push ebx
call fcn.00468d60
add esp, 0x2c
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c0
ret
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
lea ecx, [esp + 0x44]
push ecx
mov ecx, dword [esp + 0x1e4]
push edx
mov edx, dword [esp + 0x1e4]
push eax
xor eax, eax
cmp word [esp + 0x200], 7
push ecx
push edx
lea ecx, [esp + 0x38]
sete al
push eax
lea edx, [esi + 1]
push ecx
push edx
push ebx
call fcn.00466180
add esp, 0x24
mov ecx, eax
and ecx, 0xffff
cmp ecx, 0xfffffff6
jne 0x466944
mov dword [esp + 0x24], 0x1880
cmp ax, 1
jne 0x466d5d
mov eax, dword [esp + 0x18]
push 0xe
and eax, 0xffff
lea edx, [eax + eax*8]
shl edx, 5
add ebp, edx
mov dword [ebp + 0x104], 0
mov eax, dword [ebx + 0x10]
push eax
call edi
mov ecx, dword [ebx + 0x10]
push 0xc
push ecx
mov esi, eax
call edi
imul esi, eax
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x1dc]
mov edi, dword [esp + 0x54]
push edx
push eax
call fcn.004021e0
add esp, 8
mov ecx, ebx
push eax
call fcn.0041cf80
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x1e0]
push ecx
push edx
mov dword [esp + 0x18], eax
call fcn.004021e0
add esp, 8
mov ecx, ebx
push eax
call fcn.004267d0
push edi
push esi
mov dword [esp + 0x1c], eax
call fcn.00412540
mov edi, dword [esp + 0x18]
add esp, 8
imul eax, edi
add eax, 0x1f
cdq
and edx, 7
add eax, edx
mov esi, eax
sar esi, 3
imul esi, dword [esp + 0x14]
call fcn.004663f0
lea ecx, [esi + esi*2 + 0x4e20]
cmp ecx, eax
jae 0x466d56
cmp word [esp + 0x1f4], 5
mov esi, 1
mov dword [esp + 0x10], esi
je 0x466bd4
push 0
push 0
push 0xffffffffffffffff
call fcn.004ce9e0
add esp, 0xc
cmp word [esp + 0x20c], 0
je 0x466a37
lea edx, [esp + 0x44]
push edx
call sub.LTKRN90N.dll_Ordinal_144
cmp word [esp + 0x210], 0
je 0x466a4c
lea eax, [esp + 0x44]
push eax
call sub.LTKRN90N.dll_Ordinal_124
mov eax, 0x3e8
cmp word [esp + 0x20], ax
jne 0x466a5f
cmp word [esp + 0x1c], ax
je 0x466a71
mov ecx, dword [esp + 0x14]
push 0
push ecx
lea edx, [esp + 0x4c]
push edi
push edx
call sub.LTKRN90N.dll_Ordinal_151
mov ax, word [esp + 0x204]
test ax, ax
je 0x466a90
movsx eax, ax
lea ecx, [esp + 0x44]
push eax
push ecx
call sub.LTIMG90N.dll_Ordinal_105
mov dword [esp + 0x10], eax
mov ax, word [esp + 0x208]
test ax, ax
je 0x466aaf
movsx edx, ax
lea eax, [esp + 0x44]
push edx
push eax
call sub.LTIMG90N.dll_Ordinal_103
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x1fc]
test ecx, ecx
je 0x466ae3
mov edx, dword [esp + 0x1f8]
mov eax, 0x99999999
push edx
imul ecx
sar edx, 2
mov eax, edx
push esi
shr eax, 0x1f
add edx, eax
lea ecx, [esp + 0x4c]
push edx
push ecx
call sub.LTKRN90N.dll_Ordinal_146
mov dword [esp + 0x10], eax
cmp word [esp + 0x10], si
jne 0x466bc3
lea edx, [esp + 0x44]
push edx
call sub.LTKRN90N.dll_Ordinal_106
test eax, eax
mov dword [ebp + 0x104], eax
je 0x466bc3
push eax
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov esi, eax
cmp word [esi + 0xe], 8
ja 0x466b23
push esi
call fcn.00465fb0
add esp, 4
mov edi, eax
jmp 0x466b25
xor edi, edi
mov eax, dword [ebx + 0x10]
push 0
push edi
push eax
call dword [sym.imp.GDI32.dll_SelectPalette]
mov ecx, dword [ebx + 0x10]
mov dword [esp + 0x28], eax
push ecx
call dword [sym.imp.GDI32.dll_RealizePalette]
push esi
call fcn.0041b120
shl eax, 2
mov edx, eax
xor eax, eax
mov ax, word [esi]
and edx, 0xffff
mov ecx, esi
add esp, 4
add ecx, edx
mov edx, dword [ebx + 0x10]
add eax, ecx
push 0
push esi
push eax
push 4
push esi
push edx
call dword [sym.imp.GDI32.dll_CreateDIBitmap]
mov ecx, dword [ebx + 0x10]
mov esi, eax
mov eax, dword [esp + 0x28]
push 0
push eax
push ecx
mov dword [esp + 0x20], esi
call dword [sym.imp.GDI32.dll_SelectPalette]
push edi
call dword [sym.imp.GDI32.dll_UnrealizeObject]
mov edx, dword [ebp + 0x104]
push edx
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov eax, dword [ebp + 0x104]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalFree]
test esi, esi
je 0x466bbc
mov dword [esp + 0x10], 1
mov dword [ebp + 0x10c], edi
jmp 0x466bc3
push edi
call dword [sym.imp.GDI32.dll_DeleteObject]
call fcn.004ceb00
cmp word [esp + 0x10], 1
jne 0x466d49
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0x2c]
push ecx
push 0x18
push edx
mov esi, 0xffff
call dword [sym.imp.GDI32.dll_GetObjectA]
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x3e]
and eax, esi
and ecx, esi
imul eax, ecx
imul eax, dword [esp + 0x30]
mov edx, dword [esp + 0x38]
lea eax, [eax + edx*8 - 1]
cdq
and edx, 7
add eax, edx
sar eax, 3
imul eax, dword [esp + 0x34]
mov dword [esp + 0x28], eax
add eax, 0x18
push eax
push 2
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
test eax, eax
mov dword [ebp + 0x104], eax
je 0x466c6c
push eax
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov ecx, 6
lea esi, [esp + 0x2c]
mov edi, eax
rep movsd dword es:[edi], dword [esi]
lea ecx, [eax + 0x18]
mov dword [eax + 0x14], ecx
mov eax, dword [esp + 0x28]
push ecx
mov ecx, dword [esp + 0x18]
push eax
push ecx
call dword [sym.imp.GDI32.dll_GetBitmapBits]
mov edx, dword [ebp + 0x104]
push edx
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov esi, 1
mov eax, dword [esp + 0x14]
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
cmp si, 1
jne 0x466d49
mov cx, word [esp + 0x20]
mov dx, word [esp + 0x1c]
mov eax, dword [esp + 0x1fc]
mov esi, dword [esp + 0x1d8]
mov word [ebp + 0x108], cx
mov cx, word [esp + 0x204]
mov word [ebp + 0x10a], dx
mov dx, word [esp + 0x208]
mov dword [ebp + 0x110], eax
mov eax, dword [esp + 0x1f8]
mov word [ebp + 0x114], cx
mov word [ebp + 0x116], dx
test esi, esi
mov dword [ebp + 0x118], eax
je 0x466ce4
push esi
push ebp
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov ecx, dword [esp + 0x200]
mov edx, dword [esp + 0x1f0]
push ecx
mov ecx, dword [esp + 0x1f0]
mov eax, dword [esp + 0x1c]
push edx
mov edx, dword [esp + 0x1f0]
push ecx
mov ecx, dword [esp + 0x1f0]
push edx
mov edx, dword [esp + 0x1f0]
push ecx
mov ecx, dword [esp + 0x1f0]
push esi
push edx
push ecx
push 0
push eax
push ebx
mov word [0x5058bc], ax
call fcn.00468d60
mov edx, dword [ebp + 0x104]
add esp, 0x2c
push 0x182
push 0
push edx
call dword [sym.imp.KERNEL32.dll_GlobalReAlloc]
jmp 0x466da9
mov eax, dword [ebp + 0x10c]
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
mov esi, dword [esp + 0x1d8]
mov ecx, dword [esp + 0x200]
mov edx, dword [esp + 0x1f0]
mov eax, dword [esp + 0x1ec]
push ecx
mov ecx, dword [esp + 0x1ec]
push edx
mov edx, dword [esp + 0x1ec]
push eax
mov eax, dword [esp + 0x1ec]
push ecx
mov ecx, dword [esp + 0x1ec]
push edx
mov edx, dword [esp + 0x38]
push esi
push eax
push ecx
push edx
push 0xffff
push ebx
call fcn.00468d60
add esp, 0x2c
mov eax, dword [0x658e14]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov al, byte [esp + 0xcc]
test al, al
je 0x466dd1
lea ecx, [esp + 0xcc]
push ecx
call dword [sym.imp.MSVCRT.dll_remove]
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c0
ret