Function at 0x61d024
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff80
push esi
push edi
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x18]
mov eax, dword [eax]
cmp eax, 0x114
jge 0x61d077
cmp eax, 0x85
jg 0x61d05e
je 0x61d42c
sub eax, 0x14
je 0x61d0c0
sub eax, 0x6f
je 0x61d157
jmp 0x61d704
sub eax, 0xa1
je 0x61d17d
sub eax, 2
je 0x61d17d
jmp 0x61d704
cmp eax, 0x1af
jg 0x61d0a2
je 0x61d6db
add eax, 0xfffffeec
sub eax, 2
jb 0x61d12b
sub eax, 0x98
je 0x61d6fa
jmp 0x61d704
sub eax, 0x202
je 0x61d1da
add eax, 0xfffffeeb
sub eax, 2
jb 0x61d316
jmp 0x61d704
mov eax, dword [ebp - 0x18]
cmp dword [eax + 4], 0
je 0x61d0ff
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x20]
push eax
lea eax, [ebp - 0x80]
push eax
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 0x1c]
xor edx, edx
xor eax, eax
call fcn.004376b0
lea edx, [ebp - 0x80]
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 0xb0]
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 4]
call sym.DatCutter.exe__Sgraphutils_FillDC_qqrp5HDC__rx11Types_TRectx15Graphics_TColor
jmp 0x61d723
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 4]
push eax
mov eax, dword [ebp - 0x18]
add eax, 8
push eax
mov ecx, dword [ebp - 0x18]
mov ecx, dword [ecx]
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + 0x54]
mov eax, dword [ebp - 0x14]
call sym.DatCutter.exe__Acsbutils_TacMainWnd_CallPrevWndProc_qqrp6HWND__iiri
mov edx, dword [ebp - 0x18]
mov dword [edx + 0xc], eax
jmp 0x61d723
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 4]
push eax
mov eax, dword [ebp - 0x18]
add eax, 8
push eax
mov ecx, dword [ebp - 0x18]
mov ecx, dword [ecx]
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + 0x54]
mov eax, dword [ebp - 0x14]
call sym.DatCutter.exe__Acsbutils_TacMainWnd_CallPrevWndProc_qqrp6HWND__iiri
mov edx, dword [ebp - 0x18]
mov dword [edx + 0xc], eax
jmp 0x61d723
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 8]
push eax
mov ecx, dword [ebp - 0x18]
mov ecx, dword [ecx + 4]
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + 0x54]
mov eax, dword [ebp - 0x14]
call sym.DatCutter.exe__Acsbutils_Ac_NCCalcSize_qqrp22Acsbutils_TacScrollWndp6HWND__ii
mov edx, dword [ebp - 0x18]
mov dword [edx + 0xc], eax
jmp 0x61d723
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 8]
push eax
mov ecx, dword [ebp - 0x18]
mov ecx, dword [ecx + 4]
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + 0x54]
mov eax, dword [ebp - 0x14]
call sym.DatCutter.exe__Acsbutils_Ac_NCHitTest_qqrp22Acsbutils_TacScrollWndp6HWND__ii
mov edx, dword [ebp - 0x18]
mov dword [edx + 4], eax
mov eax, dword [ebp - 0x18]
cmp dword [eax + 4], 6
je 0x61d1b4
mov eax, dword [ebp - 0x18]
cmp dword [eax + 4], 7
jne 0x61d723
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 8]
push eax
mov ecx, dword [ebp - 0x18]
mov ecx, dword [ecx + 4]
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + 0x54]
mov eax, dword [ebp - 0x14]
call sym.DatCutter.exe__Acsbutils_Ac_NCLButtonDown_qqrp22Acsbutils_TacScrollWndp6HWND__ii
mov edx, dword [ebp - 0x18]
mov dword [edx + 0xc], eax
jmp 0x61d723
mov eax, dword [ebp - 0x14]
add eax, 0x2c
push eax
mov eax, dword [ebp - 0x14]
add eax, 0x1c
push eax
mov eax, dword [ebp - 0x14]
add eax, 0x24
push eax
mov eax, dword [ebp - 0x14]
lea ecx, [eax + 0xc]
mov eax, dword [ebp - 0x14]
lea edx, [eax + 0x3c]
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x54]
call sym.DatCutter.exe__Acsbutils_InitCtrlData_qqrp6HWND__rp6HWND__r11Types_TRectt3r7tagSIZEr12Types_TPoint
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 8]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x18]
movsx eax, word [eax + 8]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 8]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x34]
shr eax, 0x10
mov word [ebp - 0x36], ax
movsx eax, word [ebp - 0x36]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0xc]
add dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x10]
add dword [ebp - 0x28], eax
movzx eax, word [ebp - 0x2c]
movzx edx, word [ebp - 0x28]
shl edx, 0x10
or eax, edx
mov edx, dword [ebp - 0x18]
mov dword [edx + 8], eax
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 8]
push eax
mov ecx, dword [ebp - 0x18]
mov ecx, dword [ecx + 4]
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + 0x54]
mov eax, dword [ebp - 0x14]
call sym.DatCutter.exe__Acsbutils_Ac_NCHitTest_qqrp22Acsbutils_TacScrollWndp6HWND__ii
mov edx, dword [ebp - 0x18]
mov dword [edx + 4], eax
mov eax, dword [ebp - 0x18]
cmp dword [eax + 4], 0
je 0x61d2c6
mov eax, dword [ebp - 0x18]
cmp dword [eax + 4], 1
je 0x61d2c6
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 8]
push eax
mov ecx, dword [ebp - 0x18]
mov ecx, dword [ecx + 4]
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + 0x54]
mov eax, dword [ebp - 0x14]
call sym.DatCutter.exe__Acsbutils_Ac_LButtonUp_qqrp22Acsbutils_TacScrollWndp6HWND__ii
mov edx, dword [ebp - 0x18]
mov dword [edx + 0xc], eax
mov eax, dword [ebp - 0x14]
cmp byte [eax + 0xc1], 0
je 0x61d723
call sub.USER32.DLL_ReleaseCapture
jmp 0x61d723
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x30]
mov dword [eax + 8], edx
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 8]
push eax
mov ecx, dword [ebp - 0x18]
mov ecx, dword [ecx + 4]
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + 0x54]
mov eax, dword [ebp - 0x14]
call sym.DatCutter.exe__Acsbutils_Ac_LButtonUp_qqrp22Acsbutils_TacScrollWndp6HWND__ii
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 4]
push eax
mov eax, dword [ebp - 0x18]
add eax, 8
push eax
mov ecx, dword [ebp - 0x18]
mov ecx, dword [ecx]
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + 0x54]
mov eax, dword [ebp - 0x14]
call sym.DatCutter.exe__Acsbutils_TacMainWnd_CallPrevWndProc_qqrp6HWND__iiri
mov edx, dword [ebp - 0x18]
mov dword [edx + 0xc], eax
jmp 0x61d723
mov eax, dword [ebp - 0x18]
cmp dword [eax + 4], 0
je 0x61d723
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x54]
push eax
call sub.USER32.DLL_IsWindowVisible
test eax, eax
je 0x61d723
push ebp
mov al, 1
call fcn.0061ce80
pop ecx
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 4]
push eax
mov eax, dword [ebp - 0x18]
add eax, 8
push eax
mov ecx, dword [ebp - 0x18]
mov ecx, dword [ecx]
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + 0x54]
mov eax, dword [ebp - 0x14]
call sym.DatCutter.exe__Acsbutils_TacMainWnd_CallPrevWndProc_qqrp6HWND__iiri
mov edx, dword [ebp - 0x18]
mov dword [edx + 0xc], eax
mov eax, dword [ebp - 0x18]
cmp dword [eax], 0x318
je 0x61d723
push 0
push 0
push 0x18b
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x54]
push eax
call sub.USER32.DLL_SendMessageW
dec eax
jl 0x61d723
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 4]
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0xc]
neg ecx
mov edx, dword [ebp - 0x10]
neg edx
lea eax, [ebp - 0x10]
call fcn.00437804
cmp dword [0x6a53f0], 0xffffffff
jne 0x61d400
mov eax, dword [ebp - 0x14]
cmp byte [eax + 0xc0], 0
jne 0x61d400
lea eax, [ebp - 0x10]
xor edx, edx
call sym.DatCutter.exe__Acntutils_WidthOf_qqrrx11Types_TRecto
push eax
lea eax, [ebp - 0x10]
xor edx, edx
call sym.DatCutter.exe__Acntutils_HeightOf_qqrrx11Types_TRecto
push eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x5c]
mov eax, dword [eax + 0x44]
call fcn.004abe84
call fcn.004a65ec
push eax
push 0
push 0
push 1
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x20]
call sym.DatCutter.exe__Sgraphutils_BitBltBorder_qqrxp5HDC__xixixixit1xixixi
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 8]
push eax
push 0xffffffffffffffff
mov eax, dword [ebp - 0x20]
push eax
mov ecx, dword [ebp - 0x18]
mov ecx, dword [ecx + 4]
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + 0x54]
mov eax, dword [ebp - 0x14]
call sym.DatCutter.exe__Acsbutils_Ac_NCDraw_qqrp22Acsbutils_TacScrollWndp6HWND__iiip5HDC__
mov edx, dword [ebp - 0x18]
mov dword [edx + 0xc], eax
jmp 0x61d723
mov eax, dword [ebp - 0x14]
cmp byte [eax + 0x60], 0
jne 0x61d704
mov eax, dword [ebp - 0x14]
add eax, 0x2c
push eax
mov eax, dword [ebp - 0x14]
add eax, 0x1c
push eax
mov eax, dword [ebp - 0x14]
add eax, 0x24
push eax
mov eax, dword [ebp - 0x14]
lea ecx, [eax + 0xc]
mov eax, dword [ebp - 0x14]
lea edx, [eax + 0x3c]
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x54]
call sym.DatCutter.exe__Acsbutils_InitCtrlData_qqrp6HWND__rp6HWND__r11Types_TRectt3r7tagSIZEr12Types_TPoint
push ebp
mov al, 1
call fcn.0061ce80
pop ecx
mov eax, dword [ebp - 0x14]
cmp byte [eax + 4], 0
jne 0x61d487
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x5c]
mov ecx, dword [ebp - 0x14]
xor edx, edx
call fcn.0060fa5c
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x54]
push eax
call sub.USER32.DLL_GetWindowDC
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
push eax
call sub.GDI32.DLL_SaveDC
mov dword [ebp - 0x24], eax
xor eax, eax
push ebp
push 0x61d6d4
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x5c]
mov eax, dword [eax + 0x44]
mov edx, dword [eax]
call dword [edx + 0x30]
push eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x5c]
mov eax, dword [eax + 0x44]
mov edx, dword [eax]
call dword [edx + 0x24]
push eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x5c]
mov eax, dword [eax + 0x44]
call fcn.004abe84
call fcn.004a65ec
push eax
push 0
push 0
push 1
xor ecx, ecx
xor edx, edx
mov eax, dword [ebp - 0x20]
call sym.DatCutter.exe__Sgraphutils_BitBltBorder_qqrxp5HDC__xixixixit1xixixi
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 8]
push eax
push 0xffffffffffffffff
mov eax, dword [ebp - 0x20]
push eax
mov ecx, dword [ebp - 0x18]
mov ecx, dword [ecx + 4]
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + 0x54]
mov eax, dword [ebp - 0x14]
call sym.DatCutter.exe__Acsbutils_Ac_NCDraw_qqrp22Acsbutils_TacScrollWndp6HWND__iiip5HDC__
mov edx, dword [ebp - 0x18]
mov dword [edx + 0xc], eax
mov eax, dword [ebp - 0x14]
cmp byte [eax + 0xc1], 0
je 0x61d6a9
mov byte [ebp - 0x4f], 0
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x54]
push eax
call sub.USER32.DLL_GetParent
push eax
call sub.USER32.DLL_GetParent
mov edx, eax
lea eax, [ebp - 0x70]
xor ecx, ecx
call sym.DatCutter.exe__Sgraphutils_GetBGInfo_qqrpx16Sconst_TacBGInfoxuio
lea eax, [ebp - 0x48]
push eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x3c]
push eax
call sub.USER32.DLL_GetWindowRect
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x3c]
sub edx, dword [eax + 0x18]
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 0x10]
neg ecx
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + 0xc]
neg edx
mov eax, dword [ebp - 0x14]
add eax, 0xc
call fcn.00437804
mov ecx, dword [ebp - 0x44]
neg ecx
mov edx, dword [ebp - 0x48]
neg edx
lea eax, [ebp - 0x48]
call fcn.00437804
lea eax, [ebp - 0x48]
xor edx, edx
call sym.DatCutter.exe__Acntutils_HeightOf_qqrrx11Types_TRecto
push eax
lea eax, [ebp - 0x10]
push eax
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 0x14]
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + 0x18]
xor eax, eax
call fcn.004376b0
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x54]
push eax
call sub.USER32.DLL_GetParent
push eax
call sub.USER32.DLL_GetWindowDC
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x10]
push eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x3c]
push eax
call sub.USER32.DLL_GetParent
push eax
call sub.USER32.DLL_GetWindowRect
mov eax, dword [ebp - 0x14]
lea esi, [eax + 0x2c]
lea edi, [ebp - 0x48]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
cmp byte [ebp - 0x50], 2
jne 0x61d654
push 0xcc0020
mov eax, dword [ebp - 0x44]
sub eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0x14]
add eax, dword [edx + 0x20]
add eax, dword [ebp - 0x64]
push eax
mov eax, dword [ebp - 0x48]
sub eax, dword [ebp - 0x10]
add eax, dword [ebp - 0x68]
push eax
mov eax, dword [ebp - 0x70]
call fcn.004abe84
call fcn.004a65ec
push eax
lea eax, [ebp - 0x48]
xor edx, edx
call sym.DatCutter.exe__Acntutils_HeightOf_qqrrx11Types_TRecto
push eax
lea eax, [ebp - 0x48]
xor edx, edx
call sym.DatCutter.exe__Acntutils_WidthOf_qqrrx11Types_TRecto
push eax
lea eax, [ebp - 0x48]
xor edx, edx
call sym.DatCutter.exe__Acntutils_HeightOf_qqrrx11Types_TRecto
sub eax, dword [ebp - 0x30]
push eax
push 0
mov eax, dword [ebp - 0x1c]
push eax
call sub.GDI32.DLL_BitBlt
jmp 0x61d693
lea eax, [ebp - 0x48]
xor edx, edx
call sym.DatCutter.exe__Acntutils_HeightOf_qqrrx11Types_TRecto
push eax
lea eax, [ebp - 0x80]
push eax
lea eax, [ebp - 0x48]
xor edx, edx
call sym.DatCutter.exe__Acntutils_WidthOf_qqrrx11Types_TRecto
push eax
lea eax, [ebp - 0x48]
xor edx, edx
call sym.DatCutter.exe__Acntutils_HeightOf_qqrrx11Types_TRecto
mov edx, eax
sub edx, dword [ebp - 0x30]
xor eax, eax
pop ecx
call fcn.004376b0
lea edx, [ebp - 0x80]
mov ecx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x1c]
call sym.DatCutter.exe__Sgraphutils_FillDC_qqrp5HDC__rx11Types_TRectx15Graphics_TColor
mov eax, dword [ebp - 0x1c]
push eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x54]
push eax
call sub.USER32.DLL_GetParent
push eax
call sub.USER32.DLL_ReleaseDC
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x61d723
mov eax, dword [ebp - 0x24]
push eax
mov eax, dword [ebp - 0x20]
push eax
call sub.GDI32.DLL_RestoreDC
mov eax, dword [ebp - 0x20]
push eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x54]
push eax
call sub.USER32.DLL_ReleaseDC
ret
mov eax, dword [ebp - 0x14]
mov byte [eax + 0xc0], 0
mov eax, dword [ebp - 0x14]
cmp dword [eax + 0x5c], 0
je 0x61d704
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x5c]
mov byte [eax + 0x39], 1
jmp 0x61d704
mov eax, dword [ebp - 0x14]
mov byte [eax + 0xc0], 1
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
call sym.DatCutter.exe__Acsbutils_TacEditWnd_acWndProc_qqrr17Messages_TMessage
mov eax, dword [ebp - 0x18]
mov eax, dword [eax]
sub eax, 0x47
jne 0x61d723
mov dl, 1
mov eax, dword [ebp - 0x14]
call sym.DatCutter.exe__Acsbutils_UpdateScrolls_qqrp22Acsbutils_TacScrollWndo
pop edi
pop esi
mov esp, ebp
pop ebp
ret