Function at 0x420960
Capabilities:
Get graphical window text
Hide graphical window
Move file
Resolve function by parsing pe exports

Disassembly:
sub esp, 0xa80
cmp dword [esp + 0xa84], 0
push ebx
push ebp
push esi
push edi
jne 0x4209e1
mov eax, dword [0x44e6b0]
mov ebx, dword [0x44e0bc]
mov esi, dword [0x44e0c8]
movzx ecx, al
movzx eax, word [0x44e6b4]
add ecx, esi
movzx edx, bl
add ecx, edx
add eax, ecx
add eax, dword [0x44e1e4]
mov dword [0x44e6c4], eax
test ebx, ebx
jne 0x4209b3
mov eax, dword [0x44e0b8]
mov dword [0x44e0d4], eax
jmp 0x4209e1
mov ecx, dword [0x44e664]
mov eax, dword [0x44e674]
cdq
lea ecx, [ecx + 0x5b]
idiv ecx
mov ecx, dword [0x44b428]
imul eax, dword [0x44e504]
sub ecx, eax
add ecx, esi
add ecx, dword [0x44e6b0]
mov dword [0x44e0b8], ecx
push 0x50
lea eax, [esp + 0x88]
xor esi, esi
push eax
push 0x50
lea eax, [esp + 0xe0]
push eax
push 0x14
call sub.AVICAP32.dll_capGetDriverDescriptionA
mov ecx, dword [0x44e0b8]
test eax, eax
je 0x420a15
mov eax, dword [0x44b428]
add eax, ecx
add dword [0x44e0d4], eax
mov ebx, dword [sym.imp.USER32.dll_wsprintfA]
mov edi, 0x32
mov eax, dword [0x44e0bc]
sub eax, dword [0x44e1dc]
cmp eax, dword [0x44e1e4]
jbe 0x420a37
mov esi, ecx
neg esi
mov al, byte [0x44e1e8]
push 0x103
mov byte [esp + 0x144], al
lea eax, [esp + 0x145]
push 0
push eax
call fcn.00423310
lea eax, [esp + 0x14c]
push eax
lea eax, [esp + 0x254]
push str.Save_current_changes_in__s_
push eax
call ebx
add esp, 0x18
dec edi
je 0x420a7c
mov ecx, dword [0x44e0b8]
jmp 0x420a20
push 0x12
push 0
push 0
lea eax, [esp + 0x34]
mov dword [esp + 0x34], 0
xorps xmm0, xmm0
mov dword [esp + 0x40], 0
push eax
movq qword [esp + 0x3c], xmm0
call dword [sym.imp.SETUPAPI.dll_SetupDiGetClassDevsA]
push 0
call dword [sym.imp.ADVAPI32.dll_ImpersonateNamedPipeClient]
mov dword [0x44e1e8], eax
test esi, esi
je 0x420adb
mov ecx, dword [0x44e664]
movzx eax, byte [0x44e0cc]
cdq
lea ecx, [ecx + 0x36]
idiv ecx
add eax, dword [0x44e0b8]
add eax, dword [0x44e0bc]
mov dword [0x44e0d4], eax
push 0x4b0
lea eax, [esp + 0x88c]
push eax
push 0x19
call sub.USER32.dll_DdeCreateStringHandleW
mov dword [0x44e0c4], eax
lea eax, [esp + 0x54]
push eax
push 0x18
push dword [0x44e1e8]
call dword [sym.imp.GDI32.dll_GetObjectA]
mov eax, dword [0x44e1e0]
mov ecx, dword [0x44e0c4]
mov ebp, dword [0x44e1e8]
mov ebx, dword [0x44b428]
imul eax, ecx
mov dword [0x44e1e4], 0x77b
sub eax, dword [0x44e6c8]
add eax, ebp
add ebx, eax
mov eax, dword [0x44e698]
mov dword [0x44b428], ebx
cmp eax, dword [0x44e688]
jl 0x420b5a
movzx eax, word [0x44e0d4]
add eax, dword [0x44e4df]
mov dword [0x44e6cc], eax
test ebp, ebp
je 0x421101
test ecx, ecx
je 0x420e22
mov dword [esp + 0x20], 0xffffffff
lea ecx, [esp + 0x38c]
mov dword [esp + 0x18], 0
xor eax, eax
mov dword [esp + 0x1c], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x24], 0
jmp 0x420ba0
cmp dword [ecx], 0
je 0x420bb0
inc eax
add ecx, 0x14
cmp eax, 0x40
jl 0x420ba0
jmp 0x420bb9
mov dword [esp + 0x20], eax
cmp eax, 0xffffffff
jne 0x420bc3
mov dword [0x44e0d4], 0xffffffff
xor eax, eax
mov dword [esp + 0x54], 0
push 0x10000
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
movdqu xmm0, xmmword [esp + 0x58]
push eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x88], eax
lea eax, [esp + 0x24c]
push eax
movdqu xmmword [esp + 0x7c], xmm0
call dword [sym.imp.WINMM.dll_mmioOpenA]
mov ecx, dword [0x44b428]
mov edi, eax
mov esi, dword [sym.imp.WINMM.dll_mmioDescend]
xor eax, eax
push 0x20
test edi, edi
mov dword [esp + 0x60], 0x45564157
push eax
cmove ecx, eax
lea eax, [esp + 0x5c]
push eax
push edi
mov dword [0x44b428], ecx
call esi
mov ebx, dword [sym.imp.WINMM.dll_mmioClose]
test eax, eax
je 0x420c4d
push 0
push edi
call ebx
push 0
lea eax, [esp + 0x58]
mov dword [esp + 0x74], 0x20746d66
push eax
lea eax, [esp + 0x78]
push eax
push edi
call esi
test eax, eax
je 0x420c6d
push 0
push edi
call ebx
push 0x12
lea eax, [esp + 0x2c]
push eax
push edi
call dword [sym.imp.WINMM.dll_mmioRead]
cmp eax, 0x12
je 0x420c85
push 0
push edi
call ebx
cmp word [esp + 0x28], 1
je 0x420c92
push 0
push edi
call ebx
push 0
lea eax, [esp + 0x74]
push eax
push edi
call dword [sym.imp.WINMM.dll_mmioAscend]
test eax, eax
je 0x420ca9
push 0
push edi
call ebx
push 0x10
lea eax, [esp + 0x58]
mov dword [esp + 0x74], 0x61746164
push eax
lea eax, [esp + 0x78]
push eax
push edi
call esi
test eax, eax
je 0x420cc9
push 0
push edi
call ebx
mov esi, dword [esp + 0x74]
push esi
call fcn.0042352a
add esp, 4
mov dword [esp + 0x14], eax
push esi
push eax
push edi
call dword [sym.imp.WINMM.dll_mmioRead]
push 0
push edi
call ebx
mov eax, dword [esp + 0x20]
push 0x12
push 0
lea esi, [eax + eax*4]
mov eax, dword [esp + 0x34]
shl esi, 2
mov dword [esp + esi + 0x398], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + esi + 0x39c], eax
lea eax, [esp + 0x48]
push eax
mov dword [esp + esi + 0x398], 1
call fcn.00423310
xor eax, eax
mov dword [esp + 0x4c], 0x10001
mov word [esp + 0x5c], ax
or ebp, 0xa
mov eax, dword [esp + 0x80]
add esp, 0xc
cmp dword [0x44e664], 0
mov dword [esp + 0x8c], eax
lea eax, [esp + 0x40]
mov dword [esp + 0x44], 0x2b11
mov dword [esp + 0x4c], 0x80001
mov dword [esp + 0x48], 0x2b11
mov dword [esp + 0x84], 0x24
mov dword [esp + 0x88], ebp
mov dword [esp + 0x94], eax
je 0x420e22
mov eax, dword [esp + 0x3c]
lea edi, [esp + 0x388]
push 0
add edi, esi
lea edx, [esp + 0x88]
push edi
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0xc]
mov esi, dword [esp + 0x14]
test eax, eax
je 0x420db5
push esi
call fcn.004232c8
add esp, 4
mov eax, dword [edi]
lea edx, [esp + 0x24]
push 1
push edx
lea edx, [esp + 0x24]
mov ecx, dword [eax]
push edx
lea edx, [esp + 0x1c]
push edx
lea edx, [esp + 0x28]
push edx
push dword [esp + 0x88]
push 0
push eax
call dword [ecx + 0x2c]
push dword [esp + 0x10]
push esi
push dword [esp + 0x20]
call fcn.00425cf0
push dword [esp + 0x30]
mov eax, dword [esp + 0x20]
add eax, esi
push eax
push dword [esp + 0x30]
call fcn.00425cf0
mov eax, dword [edi]
add esp, 0x18
push dword [esp + 0x24]
mov ecx, dword [eax]
push dword [esp + 0x20]
push dword [esp + 0x18]
push dword [esp + 0x24]
push eax
call dword [ecx + 0x4c]
push esi
call fcn.004232c8
add esp, 4
push 0x28
lea eax, [esp + 0x88]
push 0
push eax
call fcn.00423310
mov ebx, dword [esp + 0xaa0]
add esp, 0xc
mov dword [esp + 0x84], 0xb
mov dword [esp + 0x88], method.ATL::CComObject_class_ATL::CAxFrameWindow_.1.virtual_40
mov dword [esp + 0x94], ebx
push 0
call dword [sym.imp.GDI32.dll_GetStockObject]
mov dword [esp + 0xa0], eax
lea eax, [esp + 0x84]
push eax
mov dword [esp + 0xac], 0x43b788
call dword [sym.imp.USER32.dll_RegisterClassA]
mov eax, dword [0x44e1e8]
push 0
push ebx
push 0
push 0
push eax
push eax
push eax
push eax
push 0xcf0000
push str.Tool
push 0x43b788
push 0
call dword [sym.imp.USER32.dll_CreateWindowExA]
cmp dword [0x44e1e8], 0
mov esi, eax
je 0x420ec4
push 0
push esi
call dword [sym.imp.USER32.dll_ShowWindow]
push esi
call dword [sym.imp.USER32.dll_UpdateWindow]
movzx eax, word [0x44b428]
push eax
push ebx
call dword [sym.imp.USER32.dll_LoadMenuA]
mov ebp, eax
push 0
push ebp
call dword [sym.imp.USER32.dll_GetSubMenu]
cmp dword [0x44e1e8], 0
je 0x420f2f
mov esi, dword [sym.imp.USER32.dll_GetMessageA]
lea eax, [esp + 0x54]
push 0
push 0
push 0
push eax
call esi
test eax, eax
je 0x420f2f
mov edi, dword [sym.imp.USER32.dll_TranslateMessage]
mov ebx, dword [sym.imp.USER32.dll_DispatchMessageA]
lea ebx, [ebx]
lea eax, [esp + 0x54]
push eax
call edi
lea eax, [esp + 0x54]
push eax
call ebx
push 0
push 0
push 0
lea eax, [esp + 0x60]
push eax
call esi
test eax, eax
jne 0x420f10
mov edx, dword [0x44e1e8]
mov eax, edx
mov esi, dword [0x44e664]
mov ecx, dword [0x44e0d4]
sub eax, 2
je 0x420f93
sub eax, 0x203
je 0x420f60
push ecx
push dword [0x44b428]
push edx
push esi
call dword [sym.imp.USER32.dll_DefWindowProcA]
jmp 0x420f9b
movsx eax, cx
mov dword [esp + 0x28], eax
shr ecx, 0x10
movsx eax, cx
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x28]
push eax
push esi
call dword [sym.imp.USER32.dll_ClientToScreen]
push 0
push esi
push dword [esp + 0x34]
push dword [esp + 0x34]
push 0x40
push ebp
call dword [sym.imp.USER32.dll_TrackPopupMenuEx]
jmp 0x420f9b
push 0
call dword [sym.imp.USER32.dll_PostQuitMessage]
push str.DirectDrawCreate
push str.Ddraw
call dword [sym.imp.KERNEL32.DLL_LoadLibraryA]
push eax
call dword [sym.imp.KERNEL32.DLL_GetProcAddress]
mov ebp, dword [0x44b428]
lea ecx, [esp + 0x10]
mov ebx, dword [0x44e0d4]
mov edi, dword [0x44e1e8]
mov esi, dword [0x44e664]
push 0
push ecx
push 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x2c], 0
call eax
mov ecx, dword [0x44b428]
xor edx, edx
test eax, eax
mov eax, dword [esp + 0x10]
push 0x11
cmovne ecx, edx
mov dword [0x44b428], ecx
mov ecx, dword [eax]
push esi
push eax
call dword [ecx + 0x50]
mov ecx, dword [0x44e0d4]
xor edx, edx
test eax, eax
mov eax, dword [esp + 0x10]
push edi
cmovne ecx, edx
push ebx
mov dword [0x44e0d4], ecx
mov ecx, dword [eax]
push ebp
push eax
call dword [ecx + 0x54]
mov ecx, dword [0x44e0b8]
test eax, eax
push 0x6c
cmovne ecx, dword [0x44e0bc]
lea eax, [esp + 0xd8]
push 0
push eax
mov dword [0x44e0b8], ecx
call fcn.00423310
mov eax, dword [esp + 0x1c]
lea edx, [esp + 0x20]
add esp, 0xc
mov dword [esp + 0xd4], 0x6c
mov dword [esp + 0xd8], 0x21
mov dword [esp + 0x13c], 0x218
mov dword [esp + 0xe8], 1
mov ecx, dword [eax]
push 0
push edx
lea edx, [esp + 0xdc]
push edx
push eax
call dword [ecx + 0x18]
mov ecx, dword [0x44e1e8]
mov dword [esp + 0x18], 4
test ecx, ecx
je 0x4210c7
mov eax, dword [esp + 0x14]
lea edx, [esp + 0x20]
push edx
lea edx, [esp + 0x1c]
push edx
mov ecx, dword [eax]
push eax
call dword [ecx + 0x30]
mov ecx, dword [0x44e1e8]
mov esi, dword [0x44b428]
mov eax, ecx
sub eax, 0x12d
je 0x42120b
dec eax
je 0x4211f6
push dword [0x44e0d4]
push esi
push ecx
push dword [0x44e664]
call dword [sym.imp.USER32.dll_DefWindowProcA]
mov ebx, dword [0x44b428]
mov ebp, dword [0x44e1e8]
mov edi, dword [0x44e0c8]
mov eax, dword [0x44e6b4]
cdq
push 0
lea ecx, [edi + 0x5a]
idiv ecx
mov ecx, 1
imul eax, ebp
push 0x60000000
push 3
push 0
push 0
sub ecx, eax
imul ecx, dword [0x44e6cc]
push 0xc0000000
push 0x44e1f0
sub ecx, dword [0x44e0b8]
add ecx, ebx
imul ebx, dword [0x44e6c4]
add ecx, dword [0x44e1e4]
mov dword [0x44e6cc], ecx
movzx ecx, word [0x44e0bc]
sub ecx, dword [0x44e0c4]
add dword [0x44e6b0], ecx
mov eax, ebx
cdq
lea ecx, [ebp + 0x37]
idiv ecx
sub eax, dword [0x44e0b8]
add eax, dword [0x44e504]
add eax, edi
mov dword [0x44e0bc], eax
call dword [sym.imp.KERNEL32.DLL_CreateFileW]
movsx ecx, byte [0x44e1ad]
mov edi, dword [0x44e50c]
movzx edx, word [0x44e692]
mov esi, dword [0x44e1e0]
mov ebx, dword [0x44e0c4]
shr ecx, 0x10
imul ecx, edi
mov dword [esp + 0x18], eax
mov dword [0x44e684], ebx
imul ecx, ecx, 0x6e
sub edx, ecx
movzx ecx, word [0x44e1de]
sub edx, ecx
mov ecx, dword [0x44e1e8]
mov dword [0x44e6c0], edx
cmp ecx, esi
jg 0x4212db
movzx edx, word [0x44e24e]
sub edx, dword [0x44e0d4]
sub edx, 0x24
mov dword [0x44e6b4], edx
jmp 0x4212e1
push 0
call dword [sym.imp.USER32.dll_PostQuitMessage]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xa80
ret
push 0x44ec00
call dword [sym.imp.USER32.dll_GetCursorPos]
push 0x44ec00
push dword [0x44e664]
call dword [sym.imp.USER32.dll_ScreenToClient]
lea eax, [esi - 0x25]
cmp eax, 3
ja case.default.0x421233
jmp dword [eax*4 + 0x421b7c]
add dword [0x44ec04], 0x14
jmp 0x42125c
sub dword [0x44ec04], 0x14
jmp 0x42125c
sub dword [0x44ec00], 0x14
jmp 0x42125c
add dword [0x44ec00], 0x14
lea eax, [esp + 0x28]
push eax
push dword [0x44e664]
call dword [sym.imp.USER32.dll_GetClientRect]
mov ecx, dword [esp + 0x30]
cmp dword [0x44ec00], ecx
mov eax, dword [esp + 0x28]
cmovl ecx, dword [0x44ec00]
cmp ecx, eax
push 0x44ec00
push dword [0x44e664]
cmovg eax, ecx
mov ecx, dword [esp + 0x3c]
cmp dword [0x44ec04], ecx
mov dword [0x44ec00], eax
cmovl ecx, dword [0x44ec04]
mov eax, dword [esp + 0x34]
cmp ecx, eax
cmovg eax, ecx
mov dword [0x44ec04], eax
call dword [sym.imp.USER32.dll_ClientToScreen]
push dword [0x44ec04]
push dword [0x44ec00]
call dword [sym.imp.USER32.dll_SetCursorPos]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xa80
ret
mov edx, dword [0x44e6b4]
mov ebp, dword [0x44e688]
cmp dword [0x44e1e4], ebx
jge 0x421323
imul esi, dword [0x44b428]
and edi, 0x3b
movsx eax, byte [0x44e0fd]
imul eax, eax, 0x2fac
mov dword [0x44b428], esi
add eax, dword [0x44e1ec]
add edi, eax
lea eax, [esi + 0xdb]
add eax, edi
mov dword [0x44e68c], eax
jmp 0x42136b
mov eax, dword [0x44e674]
mov esi, dword [0x44b428]
cmp eax, dword [0x44e694]
jle 0x42136b
movsx ecx, byte [0x44e1d5]
imul ecx, dword [0x44e6a4]
movzx eax, word [0x44e1e6]
imul ecx, dword [0x44e0c8]
add ecx, eax
sub ecx, ebp
sub ecx, esi
imul ecx, dword [0x44e690]
mov dword [0x44e690], ecx
mov ecx, dword [0x44e1e8]
xor edi, edi
test ebp, ebp
js 0x421381
imul eax, dword [0x44e3f8], 0x63c8
and dword [0x44e680], eax
cmp dword [0x44e1dc], edi
jge 0x42139d
sar ebx, 8
movzx esi, bl
sub esi, ecx
add esi, 0x120
mov dword [0x44b428], esi
mov ecx, dword [0x44e0b8]
mov eax, dword [0x44e1e8]
push 0x14
movzx ebp, dl
inc eax
mov edx, dword [0x44e0bc]
push edx
add ebp, dword [0x44e688]
push ecx
push edx
push ecx
push eax
push 0x44e1f0
push dword [0x44e0d4]
mov dword [esp + 0x30], ebp
push ecx
push edx
push ecx
push esi
push dword [0x44e664]
call dword [sym.imp.COMCTL32.dll_CreateToolbarEx]
mov ecx, dword [0x44e0c4]
mov edx, 0xd0
mov ebx, dword [0x44e3f8]
mov ebp, dword [0x44e6c0]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], edx
lea ecx, [ecx]
cmp dword [0x44e1e4], 0x44e9a8
jge 0x421481
imul esi, dword [0x44e0c8], 0x98
mov eax, dword [0x44e0d0]
movzx eax, al
movzx edx, word [0x44e692]
add esi, eax
mov eax, dword [0x44e1e8]
imul eax, dword [0x44e508]
sub esi, dword [0x44e664]
sub esi, 0xfa
imul cl
mov ecx, eax
mov eax, dword [0x44e68c]
add eax, 0xdf
shr edx, cl
mov ecx, dword [0x44e0c4]
imul eax, eax, 0x91
shl edx, cl
mov dword [0x44e694], edx
mov edx, dword [esp + 0x14]
add esi, eax
mov eax, 0x8c
sub eax, dword [0x44e678]
mov dword [0x44e688], esi
mov dword [0x44e6a4], eax
jmp 0x421496
cmp edi, ecx
jg 0x421496
mov eax, dword [0x44e504]
movzx ebx, ax
sub ebx, 0x7b
mov dword [0x44e3f8], ebx
mov eax, ebx
sar eax, 8
movzx eax, al
imul eax, dword [0x44e680]
imul eax, eax, 0x19
mov dword [0x44e680], eax
mov eax, dword [0x44e684]
cmp eax, 0x44e510
jge 0x4214e0
movzx edi, word [0x44eaa2]
mov ecx, 0x2181
imul edi, eax
movzx eax, word [0x44e2b2]
sub ecx, eax
imul edi, dword [0x44e0c8]
sub edi, dword [0x44e6b0]
and ebp, ecx
mov ecx, dword [0x44e0c4]
dec edx
mov dword [esp + 0x14], edx
jne 0x421400
push 0
push 0
push 3
push 0
push 1
push SysReAllocStringLen
push 0x44e1f0
mov dword [0x44e6c0], ebp
mov dword [esp + 0x30], edi
call dword [sym.imp.KERNEL32.DLL_CreateFileW]
mov eax, dword [0x44e0c4]
mov ebp, dword [esp + 0x10]
cmp eax, dword [0x44e684]
jge 0x42155a
movzx eax, word [0x44e6b6]
mov ecx, 0x57
sub ecx, eax
movzx eax, word [0x44e0ba]
sub ecx, eax
mov eax, 0x4b
sar eax, cl
mov dword [0x44e0b8], eax
mov eax, dword [0x44e6a0]
sub eax, dword [0x44e508]
add dword [0x44e698], eax
movzx eax, word [0x44e0bc]
imul eax, dword [0x44e6a4]
add eax, ebp
add eax, dword [0x44e6c8]
mov dword [0x44e1dc], eax
lea eax, [esp + 0x54]
push eax
push dword [esp + 0x1c]
call dword [sym.imp.KERNEL32.DLL_GetCommState]
mov ecx, dword [0x44e1e8]
imul esi, ecx, 0x5c
cmp dword [esp + 0x1c], 0
mov dword [0x44e678], esi
je 0x4215aa
mov eax, dword [0x44e0b8]
inc ecx
cdq
idiv ecx
mov dword [0x44e0bc], eax
jmp 0x4215c3
push dword [0x44e664]
call dword [sym.imp.USER32.dll_GetParent]
push eax
call dword [sym.imp.USER32.dll_GetDC]
mov esi, dword [0x44e678]
imul eax, esi, 0x2f
mov dword [0x44b428], eax
lea eax, [esp + 0x28]
push eax
push 0x44e1f0
call dword [sym.imp.KERNEL32.DLL_GetCompressedFileSizeW]
cmp edi, 0x44e9a8
jg 0x42163f
mov eax, dword [0x44e6a4]
movsx ebp, byte [0x44e45b]
mov edx, dword [0x44e0d4]
movzx eax, ax
sub ebp, eax
mov eax, dword [0x44e1dc]
add eax, 0x87
add ebp, eax
movzx eax, word [0x44e0d2]
sub edx, eax
mov dword [0x44e1dc], ebp
mov eax, dword [0x44e694]
imul edx, dword [0x44e3f8]
movzx ebx, al
imul ebx, dword [0x44e664]
mov dword [0x44e3f8], edx
add ebx, 0x110
mov dword [0x44e0d4], ebx
jmp 0x421651
mov ebx, dword [0x44e0d4]
mov ebp, dword [0x44e1dc]
mov edx, dword [0x44e3f8]
mov esi, dword [0x44e69c]
cmp esi, 0x44e0d8
jne 0x4216bd
imul ecx, dword [0x44e1e0], 0xffffffdd
mov eax, dword [0x44e1e4]
movzx eax, al
add eax, 0xcc
shl eax, cl
imul ecx, dword [0x44e8e0], 0x6c
sub ebp, eax
movzx eax, word [0x44e68a]
mov dword [0x44e1dc], ebp
add cl, dl
shr eax, cl
mov dword [0x44e6a0], eax
movsx eax, byte [0x44e5fc]
shr eax, 8
movzx ecx, al
mov eax, dword [0x44e694]
movzx eax, al
imul ecx, eax
imul eax, ebp, 0xa1
and ecx, eax
imul ecx, dword [esp + 0x10]
mov dword [esp + 0x10], ecx
mov eax, dword [0x44e1e8]
test eax, eax
jne 0x4216d8
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov ebx, dword [0x44e0d4]
mov esi, dword [0x44e69c]
mov ebp, dword [0x44e6a4]
mov dword [0x44e1e0], eax
mov eax, dword [0x44e1e4]
cmp dword [0x44e6c8], eax
jle 0x421724
movzx eax, byte [0x44b429]
mov edx, dword [0x44e688]
mov ecx, dword [0x44e674]
imul eax, eax, 0xffffffdb
sub ecx, ebp
add edx, eax
movsx eax, byte [0x44e450]
add eax, 0x4a
mov dword [0x44e688], edx
add eax, ebx
sar eax, cl
mov dword [esp + 0x10], eax
jmp 0x42177f
mov eax, dword [0x44e6a0]
cmp eax, dword [0x44e6b4]
jne 0x421779
movzx eax, word [0x44e7a0]
mov ecx, dword [0x44e688]
mov edx, dword [0x44e678]
imul esi, eax, 0x74
movsx eax, byte [0x44e425]
add eax, dword [0x44e664]
movzx ecx, cl
add ecx, eax
mov dword [0x44b428], 0
sub esi, dword [0x44e694]
add esi, edx
sar edx, cl
mov dword [0x44e69c], esi
mov dword [0x44e678], edx
mov edx, dword [0x44e688]
cmp dword [0x44e0bc], 0x44e9a8
mov dword [esp + 0x20], 0
jle 0x4217d6
movsx eax, byte [0x44ea90]
mov ecx, 8
shr eax, 8
sub ecx, edx
movzx eax, al
imul eax, eax, 0x29
sar ebx, cl
mov dword [0x44e0d4], ebx
sar ebx, 8
sub eax, esi
sub eax, dword [0x44e504]
sub eax, dword [0x44e6b0]
add eax, 0x2e
mov dword [0x44e6b0], eax
movzx eax, bl
add eax, 0x17
mov dword [0x44e6c0], eax
cmp dword [0x44e674], 0x44e6d0
je 0x421825
imul ecx, dword [0x44e508], 0xab
imul eax, ebp, 0xc1
add ecx, dword [0x44e664]
sub eax, dword [0x44e1e4]
sar eax, cl
and eax, dword [0x44e0bc]
sub dword [0x44e698], eax
movzx eax, word [0x44e0c4]
movzx ecx, byte [0x44e691]
imul eax, eax, 0x6d
sub ecx, eax
mov dword [0x44e6b4], ecx
lea eax, [esp + 0x20]
push eax
push 0
call dword [sym.imp.ole32.dll_CreateObjrefMoniker]
mov ecx, dword [0x44e0bc]
movzx edx, byte [0x44e772]
add ecx, 0xffffffba
add edx, dword [0x44b428]
mov ebp, dword [esp + 0x10]
add edx, ecx
movsx ecx, byte [0x44e441]
imul ecx, dword [0x44e50c]
mov ebx, dword [0x44e3f8]
mov esi, dword [0x44e678]
mov dword [esp + 0x3c], eax
movzx eax, word [0x44e69e]
mov dword [esp + 0x18], eax
mov eax, dword [0x44e504]
imul edi, ecx, 0x4b78
sub eax, edx
shr ebp, 0x10
sub eax, 0xf9
mov dword [0x44e0bc], edx
mov edx, dword [0x44e674]
mov dword [esp + 0x24], eax
mov dword [0x44e0b8], eax
mov eax, 0xa5
mov dword [esp + 0x1c], edi
lea ebx, [ebx]
mov ecx, ebp
mov dword [0x44e694], edi
sub ecx, edx
sub ecx, dword [esp + 0x18]
add ecx, ebx
sar esi, cl
dec eax
jne 0x4218b0
movzx eax, word [0x44e69a]
mov ecx, dword [0x44e1e8]
add eax, 0x136
add eax, dword [0x44e69c]
mov ebp, dword [0x44e6b0]
add eax, ecx
mov edi, dword [esp + 0x14]
and eax, 0xe86
mov dword [0x44e1dc], eax
lea eax, [ecx + 1]
mov dword [0x44e678], esi
mov dword [0x44e400], eax
cmp dword [0x44b428], ebp
jle 0x42191a
lea ecx, [edx + 0x19]
mov eax, ebx
shl eax, cl
mov ecx, eax
sar ebp, cl
mov dword [0x44e6b0], ebp
mov eax, dword [esp + 0x20]
cmp eax, dword [0x44e1e8]
mov ecx, dword [0x44e1e0]
mov edx, dword [0x44e0d4]
cmovne ecx, eax
mov dword [0x44e674], ecx
cmp dword [0x44e684], edx
jle 0x421952
movsx eax, byte [0x44e5a4]
sub eax, 0xab
mov dword [0x44e6a0], eax
mov eax, dword [0x44e1e4]
cmp eax, dword [0x44e680]
jle 0x4219a5
imul eax, dword [esp + 0x1c], 0x47
mov edx, dword [0x44e0d0]
movzx ecx, dx
mov dword [0x44e694], eax
movzx eax, bh
add ecx, eax
movzx eax, word [0x44e762]
sub ebx, ecx
mov ecx, dword [0x44e67c]
sub ecx, edx
mov dword [0x44e3f8], ebx
mov edx, dword [0x44e0d4]
imul ecx, eax
imul eax, ecx, 0xffffff75
add ebp, eax
mov dword [0x44e6b0], ebp
cmp ebp, dword [0x44e508]
jg 0x4219ed
mov eax, dword [0x44b428]
lea ecx, [ebx + ebx]
add eax, 9
shr edi, 0x10
add eax, esi
add edi, edx
imul edi, dword [esp + 0x24]
sar eax, cl
mov ecx, eax
mov eax, 0xaf
shl dword [0x44e6c8], cl
sub eax, edi
sub eax, dword [0x44e504]
mov dword [0x44e698], eax
mov eax, dword [0x44e688]
add eax, 0xffffffca
mov dword [0x44e0d4], eax
push 0xe
lea eax, [esp + 0x46]
mov word [esp + 0x44], 0x7830
push eax
push dword [0x44e0cc]
call dword [sym.imp.USER32.dll_GetWindowTextA]
mov ebx, dword [0x44e1e8]
test ebx, ebx
je 0x421a66
lea eax, [esp + 0x140]
push eax
lea eax, [esp + 0x248]
push eax
call dword [sym.imp.KERNEL32.DLL_lstrcpyA]
push dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
lea eax, [esp + 0x248]
push str._0x_X
sub eax, ecx
push eax
push ecx
call dword [sym.imp.SHLWAPI.dll_wnsprintfA]
add esp, 0x10
lea eax, [esp + 0x140]
push 1
push eax
lea eax, [esp + 0x24c]
push eax
call dword [sym.imp.KERNEL32.DLL_MoveFileExA]
mov ebx, dword [0x44e1e8]
mov esi, dword [0x44e0b8]
test esi, esi
jne 0x421a7d
movzx eax, byte [0x44e0d4]
inc eax
mov dword [0x44b428], eax
cmp dword [esp + 0x3c], 0
jne 0x421af4
mov eax, dword [esp + 0x10]
mov edx, dword [0x44e67c]
movsx ecx, byte [0x44e457]
imul eax, ebx
mov byte [0x44e674], bl
sub edx, eax
mov eax, dword [0x44e508]
add eax, 0xffffff8d
sub edx, 0xee
add eax, ecx
and edx, eax
mov dword [0x44e68c], edx
test ebx, ebx
jne 0x421ac8
mov eax, dword [0x44e674]
mov dword [0x44e0d0], eax
jmp 0x421ad9
xor eax, eax
mov word [ebx], ax
mov esi, dword [0x44e0b8]
mov ebx, dword [0x44e1e8]
mov edx, dword [0x44e6a4]
mov eax, 0xffffff35
sub eax, dword [0x44e69c]
add edx, eax
mov dword [0x44e6a4], edx
jmp 0x421afa
mov edx, dword [0x44e6a4]
cmp dword [0x44e0d0], 0
je case.default.0x421233
mov ecx, dword [0x44e0c4]
lea eax, [ebx + 0x25]
mov edi, dword [0x44e1e4]
add ecx, 0x26
imul ecx, eax
mov eax, dword [0x44e1e0]
add eax, 0xfffffffa
add ecx, edi
add ecx, eax
imul eax, dword [0x44e6c0], 0x5a
mov dword [0x44e1e0], ecx
add eax, 0xa7
test ebx, ebx
mov dword [0x44e0d4], eax
mov eax, dword [0x44e0c8]
cmove eax, ecx
mov dword [0x44e0c8], eax
cmp edx, esi
jl 0x421b60
sar edx, 8
movzx eax, dl
imul eax, eax, 0xb5
add dword [0x44e1dc], eax
lea eax, [ebx + 1]
imul eax, edi
sub ecx, eax
mov dword [0x44e0b8], ecx
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xa80
ret