Function at 0x43d970
Capabilities:
Check for unmoving mouse cursor
Hide graphical window
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x124
mov eax, dword [0x4a7ea0]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
push ebx
mov ebx, ecx
mov dword [ebp - 0x48], eax
push esi
mov esi, dword [ebp + 0x10]
push edi
mov eax, dword [ebx + 0x1c]
mov edi, dword [ebp + 8]
mov dword [ebp - 0x58], ebx
mov dword [ebp - 0x54], edi
mov ecx, dword [eax + 0x156]
mov dword [ebp - 0x4c], esi
test ecx, ecx
je 0x43d9b5
push dword [ebp - 0x48]
push esi
push edi
push eax
call ecx
add esp, 0x10
mov eax, dword [ebp - 0x48]
cmp dword [eax], 0
je case.0x43e57b.278
mov eax, dword [ebx]
test eax, eax
je 0x43d9d2
push dword [ebp - 0x48]
push esi
push edi
push ebx
call eax
add esp, 0x10
mov eax, dword [ebp - 0x48]
cmp dword [eax], 0
je case.0x43e57b.278
cmp dword [edi + 4], 0x201
jne 0x43da2f
push dword [ebx + 0x18]
mov ecx, dword [ebx + 0x1c]
call fcn.00431310
mov ecx, dword [ebx + 0x1c]
mov esi, eax
cmp dword [ecx + 8], esi
je 0x43da29
push esi
call fcn.004393f0
mov eax, dword [ebx + 0x1c]
cmp dword [eax + 8], esi
jne 0x43da13
cmp dword [eax + 0xfa], 0
je 0x43da29
mov eax, dword [ebp - 0x48]
mov dword [eax], 0
mov eax, dword [ebx + 0x1c]
mov dword [eax + 0xfa], 0
mov esi, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x48]
cmp dword [eax], 0
je case.0x43e57b.278
mov eax, dword [edi]
cmp eax, dword [ebx + 0x18]
jne 0x43fdcc
mov eax, dword [edi + 4]
mov esi, dword [sym.imp.USER32.dll_SendMessageA]
cmp eax, 0x20a
je 0x43da66
cmp eax, dword [0x4ab594]
jne 0x43db44
cmp eax, 0x20a
jne 0x43da6c
movzx eax, word [edi + 0xa]
jmp 0x43da70
movzx eax, word [edi + 8]
mov ecx, dword [0x4aaf10]
cwde
add ecx, eax
mov dword [0x4aaf10], ecx
cmp ecx, 0x78
jl 0x43dadc
mov eax, 0x88888889
imul ecx
add edx, ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
add eax, eax
test eax, eax
jle 0x43db3a
xor edi, edi
mov eax, dword [ebx + 0xb2]
test eax, eax
je 0x43dac0
push eax
push 0
push 0x115
push dword [ebx + 0x18]
call esi
mov ecx, dword [0x4aaf10]
mov eax, 0x88888889
inc edi
imul ecx
add edx, ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
add eax, eax
cmp edi, eax
jl 0x43daa3
jmp 0x43db37
cmp ecx, 0xffffff88
jg 0x43db44
mov eax, 0x77777777
imul ecx
sub edx, ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
add eax, eax
test eax, eax
jle 0x43db3a
xor edi, edi
lea esp, [esp]
mov eax, dword [ebx + 0xb2]
test eax, eax
je 0x43db1d
push eax
push 1
push 0x115
push dword [ebx + 0x18]
call esi
mov ecx, dword [0x4aaf10]
mov eax, 0x77777777
inc edi
imul ecx
sub edx, ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
add eax, eax
cmp edi, eax
jl 0x43db00
mov edi, dword [ebp - 0x54]
mov dword [0x4aaf10], 0
mov eax, dword [edi + 4]
cmp eax, 0x113
ja 0x43e564
je 0x43e17b
sub eax, 2
cmp eax, 0xfe
ja case.0x43e57b.278
movzx eax, byte [eax + 0x43fea4]
jmp dword [eax*4 + 0x43fe8c]
mov eax, dword [edi + 8]
add eax, 0xfffffff3
cmp eax, 0x6e
ja case.0x43db8a.14
movzx eax, byte [eax + 0x43ffd4]
jmp dword [eax*4 + 0x43ffa4]
cmp dword [ebx + 0x30], 0
je 0x43db9e
mov ecx, ebx
call fcn.0043c5a0
mov ecx, ebx
call fcn.00440180
jmp case.0x43db8a.14
cmp dword [ebx + 0x30], 0
je 0x43dbb7
mov ecx, ebx
call fcn.0043c5a0
mov ecx, dword [ebx + 0x1c]
push dword [ebx + 0x14]
push ecx
mov ecx, dword [ecx]
call fcn.00428140
mov eax, dword [ebp - 0x48]
mov dword [eax], 0
jmp case.0x43db8a.14
cmp byte [ebx + 0x17d], 0
je 0x43dbf1
mov ecx, ebx
call fcn.0043c180
mov eax, dword [ebp - 0x48]
mov dword [eax], 0
jmp case.0x43db8a.14
cmp dword [ebx + 0x10e], 0
jl case.0x43db8a.14
cmp dword [ebx + 0x30], 0
je 0x43dc0b
mov ecx, ebx
call fcn.0043c5a0
mov eax, dword [ebx + 0xbe]
dec eax
cmp dword [ebx + 0x10e], eax
jle 0x43dc31
push 0x2040
push str.Error_1
push str.Invalid_row_selection.
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
mov eax, dword [ebx + 4]
test eax, eax
je case.0x43db8a.14
push ebx
call eax
add esp, 4
jmp case.0x43db8a.14
mov eax, dword [ebx + 0xae]
test eax, eax
je case.0x43db8a.14
push eax
push 0
push 0x114
push dword [ebx + 0x18]
call esi
jmp case.0x43db8a.14
mov eax, dword [ebx + 0xae]
test eax, eax
je case.0x43db8a.14
push eax
push 1
push 0x114
push dword [ebx + 0x18]
call esi
jmp case.0x43db8a.14
mov eax, dword [ebx + 0x10e]
test eax, eax
jle case.0x43db8a.14
mov esi, dword [ebx + 0x116]
dec eax
push eax
mov ecx, ebx
mov dword [ebx + 0x116], 0
call fcn.00440f20
mov dword [ebx + 0x116], esi
test esi, esi
je case.0x43db8a.14
cmp dword [ebx + 0x126], 0x100
je 0x43dce3
mov esi, dword [ebx + 0x122]
mov ecx, ebx
call fcn.0043c130
push esi
mov ecx, ebx
mov dword [ebx + 0x122], esi
call fcn.0043ba90
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
cwde
test eax, 0x10000
jne 0x43dcfa
mov ecx, ebx
call fcn.0043c130
mov esi, dword [ebx + 0x10e]
mov ecx, ebx
push esi
call fcn.00440260
mov ecx, ebx
test eax, eax
jne 0x43dd16
push esi
call fcn.0043ba90
jmp 0x43dd21
push dword [ebx + 0x122]
call fcn.00440f00
mov eax, dword [ebx + 0x10e]
mov dword [ebx + 0x122], eax
mov dword [ebx + 0x126], 0x100
jmp case.0x43db8a.14
mov eax, dword [ebx + 0xbe]
mov ecx, dword [ebx + 0x10e]
dec eax
cmp ecx, eax
jge case.0x43db8a.14
mov esi, dword [ebx + 0x116]
lea eax, [ecx + 1]
push eax
mov ecx, ebx
mov dword [ebx + 0x116], 0
call fcn.00440f20
mov dword [ebx + 0x116], esi
test esi, esi
je case.0x43db8a.14
cmp dword [ebx + 0x126], 0x100
je 0x43dda1
mov esi, dword [ebx + 0x122]
mov ecx, ebx
call fcn.0043c130
push esi
mov ecx, ebx
mov dword [ebx + 0x122], esi
call fcn.0043ba90
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
cwde
test eax, 0x10000
jne 0x43ddb8
mov ecx, ebx
call fcn.0043c130
mov esi, dword [ebx + 0x10e]
mov ecx, ebx
push esi
call fcn.00440260
mov ecx, ebx
test eax, eax
jne 0x43ddd4
push esi
call fcn.0043ba90
jmp 0x43dddf
push dword [ebx + 0x122]
call fcn.00440f00
mov esi, dword [ebx + 0x10e]
mov ecx, ebx
push esi
call fcn.004401c0
test eax, eax
je 0x43de32
cmp dword [ebx + 0x164], 0
jne 0x43de32
push esi
mov ecx, ebx
call fcn.00440f00
mov eax, dword [ebx + 0x10e]
mov ecx, ebx
dec eax
push eax
call fcn.00440f20
cmp dword [ebx + 0x10e], 0
jge 0x43de38
push 0
mov ecx, ebx
call fcn.00440f20
mov dword [ebx + 0x126], 0x100
jmp case.0x43db8a.14
mov dword [ebx + 0x122], esi
mov dword [ebx + 0x126], 0x100
jmp case.0x43db8a.14
mov eax, dword [ebx + 0xb2]
test eax, eax
je case.0x43db8a.14
push eax
push 2
push 0x115
push dword [ebx + 0x18]
call esi
jmp case.0x43db8a.14
mov eax, dword [ebx + 0xb2]
test eax, eax
je case.0x43db8a.14
push eax
push 3
push 0x115
push dword [ebx + 0x18]
call esi
jmp case.0x43db8a.14
cmp dword [ebx + 0x116], 0
je 0x43df34
cmp dword [ebx + 0x126], 0x100
mov esi, dword [ebx + 0x122]
jne 0x43deed
mov eax, dword [ebx + 0xbe]
lea edi, [eax - 1]
test edi, edi
js 0x43dec9
push edi
mov ecx, ebx
call fcn.00440260
test eax, eax
cmovne esi, edi
dec edi
jns 0x43deb3
mov eax, dword [ebx + 0xbe]
cmp esi, dword [ebx + 0x122]
jne 0x43deed
xor edi, edi
test eax, eax
jle 0x43deed
push edi
mov ecx, ebx
call fcn.00440260
test eax, eax
cmovne esi, edi
inc edi
cmp edi, dword [ebx + 0xbe]
jl 0x43ded7
mov ecx, ebx
call fcn.0043c130
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
cwde
test eax, 0x10000
je 0x43df15
test esi, esi
jle 0x43df15
push esi
mov ecx, ebx
call fcn.0043ba90
dec esi
test esi, esi
jg 0x43df08
push 0
mov ecx, ebx
call fcn.00440f20
mov eax, dword [ebx + 0x10e]
mov dword [ebx + 0x122], eax
mov dword [ebx + 0x126], 0x100
mov eax, dword [ebx + 0xb2]
test eax, eax
je 0x43e0a6
push 1
push 1
push 2
push eax
jmp 0x43e0a0
cmp dword [ebx + 0x116], 0
je 0x43e078
cmp dword [ebx + 0x126], 0x100
mov esi, dword [ebx + 0x122]
jne 0x43dfb7
mov eax, dword [ebx + 0xbe]
xor edi, edi
test eax, eax
jle 0x43df98
lea esp, [esp]
push edi
mov ecx, ebx
call fcn.00440260
test eax, eax
mov eax, dword [ebx + 0xbe]
cmovne esi, edi
inc edi
cmp edi, eax
jl 0x43df80
cmp esi, dword [ebx + 0x122]
jne 0x43dfb7
lea edi, [eax - 1]
test edi, edi
js 0x43dfb7
push edi
mov ecx, ebx
call fcn.00440260
test eax, eax
cmovne esi, edi
dec edi
jns 0x43dfa7
mov ecx, ebx
call fcn.0043c130
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
cwde
test eax, 0x10000
je 0x43e027
mov eax, dword [ebx + 0xbe]
mov edi, esi
dec eax
cmp esi, eax
jge 0x43dff4
jmp 0x43dfe0
push edi
mov ecx, ebx
call fcn.0043ba90
mov eax, dword [ebx + 0xbe]
inc edi
dec eax
cmp edi, eax
jl 0x43dfe0
mov edi, dword [ebx + 0xbe]
mov ecx, ebx
dec edi
push edi
call fcn.004401c0
test eax, eax
je 0x43e05a
cmp dword [ebx + 0x164], 0
jne 0x43e05a
cmp edi, esi
jle 0x43e062
push edi
mov ecx, ebx
call fcn.004401c0
test eax, eax
je 0x43e05a
dec edi
cmp edi, esi
jg 0x43e014
jmp 0x43e062
mov edi, dword [ebx + 0xbe]
mov ecx, ebx
dec edi
push edi
call fcn.004401c0
test eax, eax
je 0x43e05a
cmp dword [ebx + 0x164], 0
jne 0x43e05a
cmp edi, esi
jl 0x43e062
push edi
mov ecx, ebx
call fcn.004401c0
test eax, eax
je 0x43e05a
dec edi
cmp edi, esi
jge 0x43e047
jmp 0x43e062
push edi
mov ecx, ebx
call fcn.00440f20
mov eax, dword [ebx + 0x10e]
mov dword [ebx + 0x122], eax
mov dword [ebx + 0x126], 0x100
mov eax, dword [ebx + 0xb2]
test eax, eax
je 0x43e0a6
lea ecx, [ebp - 0x40]
push ecx
lea ecx, [ebp - 0x58]
push ecx
push 2
push eax
call dword [sym.imp.USER32.dll_GetScrollRange]
push 1
push dword [ebp - 0x40]
push 2
push dword [ebx + 0xb2]
call dword [sym.imp.USER32.dll_SetScrollPos]
push 0
push 0
push dword [ebx + 0x18]
call fcn.004246f0
add esp, 0xc
mov ecx, dword [ebp - 0x4c]
pop edi
pop esi
pop ebx
mov dword [ecx], 0
mov ecx, dword [ebp - 0x48]
mov dword [ecx], 0
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004520a4
mov esp, ebp
pop ebp
ret 0xc
mov eax, dword [ebx + 0x18]
cmp eax, dword [edi + 8]
jne case.0x43e57b.278
cmp word [edi + 0xc], 0
je case.0x43e57b.278
push dword [ebx + 0x7e]
call dword [sym.imp.USER32.dll_SetCursor]
mov ecx, dword [ebp - 0x4c]
mov dword [ecx], 1
jmp 0x43fe6d
mov ecx, ebx
call fcn.00440440
mov ecx, dword [ebp - 0x4c]
mov dword [ecx], 0
jmp 0x43fe6d
push dword [ebx + 0x18]
mov ecx, dword [ebx + 0x1c]
call fcn.00431440
cmp eax, 0xffffffff
je 0x43e136
mov ecx, dword [ebx + 0x1c]
push eax
call fcn.00438c00
mov ecx, dword [ebp - 0x4c]
mov dword [ecx], 0
jmp 0x43fe6d
mov eax, dword [ebx + 0xae]
mov esi, dword [sym.imp.USER32.dll_DestroyWindow]
test eax, eax
je 0x43e157
push eax
call esi
mov eax, dword [ebx + 0xb2]
test eax, eax
je case.0x43e57b.278
push eax
call esi
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004520a4
mov esp, ebp
pop ebp
ret 0xc
cmp dword [ebx + 0x28], 0
je 0x43e50a
push 2
push dword [ebx + 0x18]
call dword [sym.imp.USER32.dll_KillTimer]
mov dword [ebx + 0x28], 0
call dword [sym.imp.USER32.dll_GetActiveWindow]
mov ecx, dword [ebx + 0x1c]
cmp eax, dword [ecx + 0x60]
jne case.0x43e57b.278
lea eax, [ebp - 0x70]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
mov eax, dword [ebp - 0x70]
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x6c]
mov dword [ebp - 0x4c], eax
lea eax, [ebp - 0x70]
push eax
push dword [ebx + 0x18]
call dword [sym.imp.USER32.dll_ScreenToClient]
movsx eax, word [ebp - 0x70]
mov dword [ebp - 0x50], eax
cmp eax, dword [ebx + 0x9e]
jle case.0x43e57b.278
cmp eax, dword [ebx + 0xa6]
jge case.0x43e57b.278
movsx edi, word [ebp - 0x6c]
mov dword [ebp - 0x40], edi
cmp edi, dword [ebx + 0xa2]
jle case.0x43e57b.278
cmp edi, dword [ebx + 0xaa]
jge case.0x43e57b.278
mov ecx, dword [ebx + 0x1c]
push 0x39
mov ecx, dword [ecx]
call fcn.0042bb10
add eax, dword [ebx + 0xa2]
cmp edi, eax
jle case.0x43e57b.278
xor ecx, ecx
xor esi, esi
mov dword [ebp - 0x54], ecx
cmp dword [ebx + 0x8e], ecx
jle 0x43e278
xor edi, edi
jmp 0x43e240
mov eax, dword [ebx + 0x8a]
cmp dword [eax + edi + 0xa0], 1
jne 0x43e266
mov ecx, dword [ebx + 0x1c]
push dword [eax + edi + 0x42]
mov ecx, dword [ecx]
call fcn.0042baa0
mov ecx, dword [ebp - 0x54]
add ecx, eax
mov dword [ebp - 0x54], ecx
inc esi
add edi, 0xb1
cmp esi, dword [ebx + 0x8e]
jl 0x43e240
mov edi, dword [ebp - 0x40]
cmp dword [ebp - 0x50], ecx
jge case.0x43e57b.278
mov ecx, dword [ebx + 0x1c]
push 0x39
mov ecx, dword [ecx]
call fcn.0042bb10
sub edi, dword [ebx + 0xa2]
mov ecx, eax
mov eax, edi
cdq
idiv ecx
mov ecx, dword [ebx + 0xb2]
lea esi, [eax - 1]
mov eax, 1
test ecx, ecx
je 0x43e2b5
push 2
push ecx
call dword [sym.imp.USER32.dll_GetScrollPos]
lea ecx, [ebp - 0x40]
dec eax
push ecx
add eax, esi
mov ecx, ebx
push eax
call fcn.0043d610
mov dword [ebx + 0x2c], eax
cmp eax, dword [ebx + 0xbe]
jge 0x43e4f0
mov ecx, dword [ebx + 0x34]
test ecx, ecx
je 0x43e4f0
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0x60], eax
test eax, eax
je 0x43e4f0
cmp byte [eax], 0
je 0x43e4f0
mov esi, eax
lea ecx, [esi + 1]
lea ebx, [ebx]
mov al, byte [esi]
inc esi
test al, al
jne 0x43e300
push 0
sub esi, ecx
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x5c], 0
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov ecx, dword [ebx + 0x1c]
mov edi, eax
push 0
mov dword [ebp - 0x54], edi
mov ecx, dword [ecx]
call fcn.00428670
push eax
push edi
call dword [sym.imp.GDI32.dll_SelectObject]
xor edi, edi
test esi, esi
jle 0x43e3bf
mov ecx, dword [ebp - 0x60]
mov eax, 2
sub eax, ecx
xor ebx, ebx
mov dword [ebp - 0x50], eax
mov dl, byte [edi + ecx]
lea eax, [edi + ecx]
mov dword [ebp - 0x40], eax
cmp dl, 0xd
je 0x43e36e
lea eax, [esi - 1]
cmp edi, eax
jne 0x43e3b4
cmp dl, 0xa
je 0x43e3b4
mov edx, dword [ebp - 0x5c]
mov eax, edi
sub eax, edx
jne 0x43e384
lea eax, [ebp - 0xc]
push eax
push 1
push 0x485638
jmp 0x43e38f
lea ecx, [ebp - 0xc]
push ecx
push eax
mov eax, dword [ebp - 0x60]
add eax, edx
push eax
push dword [ebp - 0x54]
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32A]
cmp ebx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x48]
cmovl ebx, dword [ebp - 0xc]
add eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x60]
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x40]
add eax, dword [ebp - 0x50]
mov dword [ebp - 0x5c], eax
inc edi
cmp edi, esi
jl 0x43e354
mov dword [ebp - 0x68], ebx
mov ebx, dword [ebp - 0x58]
mov ecx, dword [ebx + 0x1c]
call fcn.004306c0
mov esi, dword [sym.imp.USER32.dll_GetSystemMetrics]
push 0
mov dword [ebp - 0x5c], eax
mov byte [eax + 0x7e], 1
call esi
push 1
mov dword [ebp - 0x40], eax
call esi
push 0xd
mov edi, eax
call esi
push 0xe
mov dword [ebp - 0x54], eax
call esi
mov eax, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x48]
mov esi, dword [ebp - 0x68]
add ecx, 2
cdq
add esi, 2
sub eax, edx
mov edx, dword [ebp - 0x4c]
sar eax, 1
add ecx, edx
add eax, dword [ebp - 0x64]
add esi, eax
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x48], ecx
cmp ecx, edi
jle 0x43e423
sub ecx, edx
mov dword [ebp - 0x48], edx
mov eax, ecx
sub edx, eax
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x4c], edx
cmp esi, dword [ebp - 0x40]
jle 0x43e443
sub esi, eax
mov eax, dword [ebp - 0x54]
cdq
mov ecx, esi
mov esi, dword [ebp - 0x64]
and edx, 3
add eax, edx
sar eax, 2
sub esi, eax
mov edi, esi
sub edi, ecx
jmp 0x43e446
mov edi, dword [ebp - 0x50]
push dword [ebp - 0x60]
mov ecx, dword [ebp - 0x5c]
call fcn.0043aac0
push dword [ebx + 0x1c]
mov ecx, dword [ebp - 0x5c]
call fcn.0043a1f0
mov ecx, dword [ebp - 0x5c]
push 0
push 0
call fcn.0043aa90
mov edx, dword [ebx + 0x1c]
push dword [ebp - 0x48]
push esi
mov eax, dword [edx + 0x14]
push dword [ebp - 0x4c]
push edi
lea ecx, [eax*8]
sub ecx, eax
mov eax, dword [edx + 0x10]
lea eax, [eax + ecx*4]
add eax, 0xffffffec
push eax
call dword [sym.imp.USER32.dll_SetRect]
mov edx, dword [ebx + 0x1c]
sub esi, edi
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x48]
push 0x10
sub eax, ecx
push eax
mov eax, dword [edx + 0x14]
push esi
push ecx
push edi
lea ecx, [eax*8]
sub ecx, eax
mov eax, dword [edx + 0x10]
push 0xffffffffffffffff
push dword [eax + ecx*4 - 0x1c]
call dword [sym.imp.USER32.dll_SetWindowPos]
mov esi, dword [ebp - 0x5c]
push 4
push dword [esi + 8]
call dword [sym.imp.USER32.dll_ShowWindow]
mov eax, dword [ebx + 0x18]
mov dword [esi + 0x7f], eax
push dword [ebx + 0x18]
call dword [sym.imp.USER32.dll_SetCapture]
pop edi
mov dword [ebx + 0x30], esi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004520a4
mov esp, ebp
pop ebp
ret 0xc
pop edi
pop esi
mov dword [ebx + 0x2c], 0xffffffff
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004520a4
mov esp, ebp
pop ebp
ret 0xc
push 1
push dword [ebx + 0x18]
call dword [sym.imp.USER32.dll_KillTimer]
lea eax, [ebp - 0xc]
mov dword [ebx + 0x72], 0
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
lea eax, [ebp - 0xc]
push eax
push dword [ebx + 0x18]
call dword [sym.imp.USER32.dll_ScreenToClient]
movzx ecx, word [ebp - 8]
movzx eax, word [ebp - 0xc]
shl ecx, 0x10
or ecx, eax
push ecx
push 0
push 0x200
push dword [ebx + 0x18]
call dword [sym.imp.USER32.dll_PostMessageA]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004520a4
mov esp, ebp
pop ebp
ret 0xc
sub eax, 0x114
cmp eax, 0xef
ja case.0x43e57b.278
movzx eax, byte [eax + 0x440060]
jmp dword [eax*4 + 0x440044]
cmp dword [ebx + 0x30], 0
je 0x43e58f
mov ecx, ebx
call fcn.0043c5a0
push dword [ebx + 0x18]
mov ecx, dword [ebx + 0x1c]
call fcn.00431310
mov ecx, dword [ebx + 0x1c]
push eax
call fcn.004393f0
mov esi, dword [edi + 0xc]
movzx eax, word [edi + 8]
push 2
push esi
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x50], esi
call dword [sym.imp.USER32.dll_GetScrollPos]
lea eax, [ebp - 0x20]
mov dword [ebp - 8], 0
push eax
xorps xmm0, xmm0
push 2
push dword [ebx + 0xb2]
movdqu xmmword [ebp - 0x20], xmm0
mov dword [ebp - 0x20], 0x1c
movq qword [ebp - 0x10], xmm0
mov dword [ebp - 0x1c], 0x17
call dword [sym.imp.USER32.dll_GetScrollInfo]
mov eax, dword [ebp - 0x40]
cmp eax, 5
ja case.default.0x43e946
jmp dword [eax*4 + 0x440150]
mov eax, dword [ebp - 0xc]
push 1
inc eax
push eax
jmp 0x43e8a9
mov eax, dword [ebp - 0xc]
push 1
dec eax
push eax
jmp 0x43e8a9
mov eax, dword [ebp - 0xc]
mov edi, eax
mov edx, dword [ebp - 0x10]
sub edi, edx
cmp dword [ebx + 0x116], 0
je 0x43e731
cmp dword [ebx + 0x126], 0x115
je 0x43e731
lea edi, [eax - 1]
mov eax, dword [ebx + 0x122]
mov ecx, eax
sub ecx, edx
mov edx, 0
cmovs ecx, edx
cmp eax, edi
cmovle edi, ecx
cmp dword [ebx + 0x126], 0x100
je 0x43e66e
cmp dword [ebx + 0x11e], 1
jg 0x43e67e
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
cwde
test eax, 0x10000
jne 0x43e691
mov esi, dword [ebx + 0x122]
mov ecx, ebx
call fcn.0043c130
mov dword [ebx + 0x122], esi
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
cwde
test eax, 0x10000
je 0x43e70f
mov esi, dword [ebx + 0x122]
mov byte [ebp - 0x41], 0
cmp esi, edi
jle 0x43e6e9
nop
push esi
mov ecx, ebx
call fcn.00440260
mov ecx, ebx
push esi
test eax, eax
jne 0x43e6db
call fcn.0043ba90
cmp byte [ebp - 0x41], 0
je 0x43e6d5
lea eax, [esi + 1]
mov ecx, ebx
push eax
call fcn.0043ba90
mov byte [ebp - 0x41], 0
jmp 0x43e6e4
call fcn.00440f00
mov byte [ebp - 0x41], 1
dec esi
cmp esi, edi
jg 0x43e6b0
mov esi, dword [ebx + 0x122]
mov ecx, ebx
lea eax, [esi - 1]
push eax
call fcn.00440260
test eax, eax
jne 0x43e707
cmp esi, 1
jne 0x43e70f
test edi, edi
jne 0x43e70f
push esi
mov ecx, ebx
call fcn.0043ba90
push edi
mov ecx, ebx
call fcn.00440f20
mov eax, dword [ebx + 0x10e]
inc edi
mov esi, dword [ebp - 0x50]
mov dword [ebx + 0x122], eax
mov dword [ebx + 0x126], 0x100
push 1
push edi
jmp 0x43e8a9
mov edi, dword [ebp - 0xc]
mov edx, dword [ebp - 0x10]
add edi, edx
cmp dword [ebx + 0x116], 0
je 0x43e89f
cmp dword [ebx + 0x126], 0x115
je 0x43e89f
mov ecx, dword [ebx + 0x122]
dec edi
mov eax, dword [ebx + 0xbe]
add edx, ecx
dec eax
cmp edx, eax
cmovg edx, eax
cmp edi, eax
cmovg edi, eax
cmp ecx, edi
cmovge edi, edx
cmp dword [ebx + 0x126], 0x100
je 0x43e792
cmp dword [ebx + 0x11e], 1
jg 0x43e7a2
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
cwde
test eax, 0x10000
jne 0x43e7b5
mov esi, dword [ebx + 0x122]
mov ecx, ebx
call fcn.0043c130
mov dword [ebx + 0x122], esi
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
cwde
test eax, 0x10000
je 0x43e851
mov esi, dword [ebx + 0x122]
mov byte [ebp - 0x41], 0
cmp esi, edi
jge 0x43e820
push esi
mov ecx, ebx
call fcn.00440260
mov ecx, ebx
test eax, eax
jne 0x43e802
push esi
call fcn.0043ba90
cmp byte [ebp - 0x41], 0
je 0x43e7fc
lea eax, [esi - 1]
mov ecx, ebx
push eax
call fcn.0043ba90
mov byte [ebp - 0x41], 0
jmp 0x43e81b
lea eax, [esi + 1]
push eax
call fcn.004401c0
test eax, eax
jne 0x43e81b
push esi
mov ecx, ebx
call fcn.00440f00
mov byte [ebp - 0x41], 1
inc esi
cmp esi, edi
jl 0x43e7d7
mov esi, dword [ebx + 0x122]
mov ecx, ebx
lea eax, [esi + 1]
push eax
call fcn.00440260
test eax, eax
jne 0x43e849
mov ecx, dword [ebx + 0xbe]
lea eax, [ecx - 2]
cmp esi, eax
jne 0x43e851
lea eax, [ecx - 1]
cmp edi, eax
jne 0x43e851
push esi
mov ecx, ebx
call fcn.0043ba90
push edi
mov ecx, ebx
call fcn.004401c0
test eax, eax
je 0x43e87a
lea esi, [edi - 1]
cmp edi, dword [ebx + 0x122]
jle 0x43e882
push esi
mov ecx, ebx
call fcn.004401c0
test eax, eax
je 0x43e877
dec esi
jmp 0x43e868
push esi
jmp 0x43e87b
push edi
mov ecx, ebx
call fcn.00440f20
sub edi, dword [ebp - 0x10]
mov eax, dword [ebx + 0x10e]
inc edi
mov esi, dword [ebp - 0x50]
mov dword [ebx + 0x122], eax
mov dword [ebx + 0x126], 0x100
push 1
push edi
jmp 0x43e8a9
push 1
push dword [ebp - 8]
push 2
push esi
call dword [sym.imp.USER32.dll_SetScrollPos]
push 0
lea eax, [ebx + 0x9e]
push eax
push dword [ebx + 0x18]
call fcn.004246f0
add esp, 0xc
jmp 0x43fe6d
cmp dword [ebx + 0x30], 0
je 0x43e8d8
mov ecx, ebx
call fcn.0043c5a0
push dword [ebx + 0x18]
mov ecx, dword [ebx + 0x1c]
call fcn.00431310
mov ecx, dword [ebx + 0x1c]
push eax
call fcn.004393f0
movzx eax, word [edi + 8]
mov esi, dword [edi + 0xc]
mov dword [ebp - 0x40], eax
movzx eax, word [edi + 0xa]
push 2
push esi
mov dword [ebp - 0x58], eax
call dword [sym.imp.USER32.dll_GetScrollPos]
lea eax, [ebp - 0x20]
mov dword [ebp - 8], 0
push eax
xorps xmm0, xmm0
push 2
push dword [ebx + 0xae]
movdqu xmmword [ebp - 0x20], xmm0
mov dword [ebp - 0x20], 0x1c
movq qword [ebp - 0x10], xmm0
mov dword [ebp - 0x1c], 7
call dword [sym.imp.USER32.dll_GetScrollInfo]
mov eax, dword [ebp - 0x40]
cmp eax, 5
ja case.default.0x43e946
jmp dword [eax*4 + 0x440168]
mov ecx, dword [ebx + 0x1c]
push 1
mov ecx, dword [ecx]
call fcn.00427e80
add eax, dword [ebp - 0xc]
movzx eax, ax
push 1
cwde
push eax
jmp 0x43e8a9
mov ecx, dword [ebx + 0x1c]
push 1
mov ecx, dword [ecx]
call fcn.00427e80
mov ecx, dword [ebp - 0xc]
sub ecx, eax
movzx eax, cx
push 1
cwde
push eax
jmp 0x43e8a9
mov eax, dword [ebp - 0xc]
sub eax, dword [ebp - 0x10]
push 1
cwde
push eax
jmp 0x43e8a9
mov eax, dword [ebp - 0x10]
add eax, dword [ebp - 0xc]
push 1
cwde
push eax
jmp 0x43e8a9
mov eax, dword [ebp - 0x58]
push 1
cwde
push eax
jmp 0x43e8a9
cmp byte [ebx + 0x17d], 0
je 0x43e9c4
mov ecx, ebx
call fcn.0043c180
jmp 0x43fe6d
mov eax, dword [edi + 8]
movzx esi, word [edi + 0xc]
movzx ecx, word [edi + 0xe]
mov dword [ebp - 0x68], eax
movsx eax, si
mov dword [ebp - 0x64], esi
mov dword [ebp - 0x50], ecx
cmp eax, dword [ebx + 0x9e]
jle 0x43fe6d
cmp eax, dword [ebx + 0xa6]
jge 0x43fe6d
movsx edi, cx
mov dword [ebp - 0x40], edi
cmp edi, dword [ebx + 0xa2]
jle 0x43fe6d
cmp edi, dword [ebx + 0xaa]
jge 0x43fe6d
mov ecx, dword [ebx + 0x1c]
push 0x39
mov ecx, dword [ecx]
call fcn.0042bb10
add eax, dword [ebx + 0xa2]
cmp edi, eax
jle 0x43ece7
xor ecx, ecx
xor esi, esi
mov dword [ebp - 0x50], ecx
cmp dword [ebx + 0x8e], ecx
jle 0x43ea78
xor edi, edi
lea esp, [esp]
mov eax, dword [ebx + 0x8a]
cmp dword [eax + edi + 0xa0], 1
jne 0x43ea66
mov ecx, dword [ebx + 0x1c]
push dword [eax + edi + 0x42]
mov ecx, dword [ecx]
call fcn.0042baa0
mov ecx, dword [ebp - 0x50]
add ecx, eax
mov dword [ebp - 0x50], ecx
inc esi
add edi, 0xb1
cmp esi, dword [ebx + 0x8e]
jl 0x43ea40
mov edi, dword [ebp - 0x40]
mov edx, dword [ebp - 0x64]
movsx eax, dx
cmp eax, ecx
jge 0x43fe6d
mov ecx, dword [ebx + 0x1c]
push 0x39
mov ecx, dword [ecx]
call fcn.0042bb10
sub edi, dword [ebx + 0xa2]
mov ecx, eax
mov eax, edi
cdq
idiv ecx
mov ecx, dword [ebx + 0xb2]
mov esi, eax
mov eax, 1
test ecx, ecx
je 0x43eab9
push 2
push ecx
call dword [sym.imp.USER32.dll_GetScrollPos]
lea edi, [esi - 2]
mov ecx, ebx
add edi, eax
lea eax, [ebp - 0x40]
push eax
push edi
call fcn.0043d610
cmp dword [ebx + 0x6e], 0
mov esi, eax
je 0x43eaea
test esi, esi
js 0x43eaea
cmp esi, dword [ebx + 0x6a]
je 0x43eaea
push dword [ebx + 0x18]
call dword [sym.imp.USER32.dll_SetCapture]
mov dword [ebx + 0x62], esi
mov dword [ebx + 0x66], esi
cmp esi, dword [ebx + 0xbe]
jge 0x43fe6d
mov eax, dword [ebx + 0x10e]
mov ecx, ebx
mov dword [ebp - 0x50], eax
lea eax, [ebp - 0x40]
push eax
push edi
call fcn.0043d610
cmp byte [ebx + 0x178], 0
mov dword [ebx + 0x10e], eax
je 0x43ec0b
cmp dword [ebx + 0xa2], 0xffffffff
je 0x43ec0b
lea eax, [ebx + 0x9e]
push eax
lea eax, [ebp - 0x14]
push eax
call dword [sym.imp.USER32.dll_CopyRect]
mov eax, dword [ebx + 0xae]
test eax, eax
je 0x43eb59
push 2
push eax
call dword [sym.imp.USER32.dll_GetScrollPos]
mov ecx, 1
sub ecx, eax
add dword [ebp - 0x14], ecx
xor esi, esi
cmp esi, dword [ebx + 0x8e]
jge 0x43ec02
xor edi, edi
lea esp, [esp]
mov eax, dword [ebx + 0x8a]
cmp dword [eax + edi + 0xa0], 0
je 0x43ebbd
mov ecx, dword [ebx + 0x1c]
push dword [eax + edi + 0x42]
mov ecx, dword [ecx]
call fcn.0042baa0
mov ebx, dword [ebp - 0x64]
add eax, dword [ebp - 0x14]
movsx edx, bx
mov ebx, dword [ebp - 0x58]
mov dword [ebp - 0xc], eax
cmp edx, dword [ebp - 0x14]
jl 0x43eba6
cmp edx, eax
jle 0x43ebcc
mov eax, dword [ebx + 0x8a]
mov ecx, dword [ebx + 0x1c]
push dword [eax + edi + 0x42]
mov ecx, dword [ecx]
call fcn.0042baa0
add dword [ebp - 0x14], eax
inc esi
add edi, 0xb1
cmp esi, dword [ebx + 0x8e]
jl 0x43eb70
cmp esi, dword [ebx + 0x8e]
jge 0x43ec02
push esi
push dword [ebx + 0x10e]
mov ecx, ebx
call fcn.0043d3d0
mov ecx, dword [ebx + 0x8a]
imul edx, esi, 0xb1
cmp dword [edx + ecx + 0x4e], 0
je 0x43ebfa
cmp byte [eax], 0
je 0x43ec02
mov dword [ebx + 0x179], esi
jmp 0x43ec0b
mov eax, dword [ebp - 0x50]
mov dword [ebx + 0x10e], eax
push 0
lea eax, [ebx + 0x9e]
push eax
push dword [ebx + 0x18]
call fcn.004246f0
add esp, 0xc
cmp dword [ebx + 0x116], 0
je 0x43ecc2
mov eax, dword [ebp - 0x68]
test al, 0xc
jne 0x43ec47
mov ecx, ebx
call fcn.0043c130
mov eax, dword [ebp - 0x68]
mov dword [ebx + 0x122], 0xffffffff
test al, 4
je 0x43ec8b
mov esi, dword [ebx + 0x122]
test esi, esi
js 0x43ec8b
mov eax, dword [ebx + 0x10e]
cmp eax, esi
jle 0x43ec63
mov edi, eax
jmp 0x43ec67
mov edi, esi
mov esi, eax
cmp esi, edi
jg 0x43ecac
jmp 0x43ec70
push esi
mov ecx, ebx
call fcn.00440260
test eax, eax
jne 0x43ec84
push esi
mov ecx, ebx
call fcn.0043ba90
inc esi
cmp esi, edi
jle 0x43ec70
jmp 0x43ecac
mov esi, dword [ebx + 0x10e]
mov ecx, ebx
push esi
call fcn.00440260
mov ecx, ebx
push esi
test eax, eax
je 0x43eca7
call fcn.00440f00
jmp 0x43ecac
call fcn.0043ba90
mov eax, dword [ebx + 0x10e]
mov dword [ebx + 0x122], eax
mov dword [ebx + 0x126], 0x201
cmp dword [ebx + 8], 0
je 0x43fe6d
cmp dword [ebx + 0x30], 0
je 0x43ecd9
mov ecx, ebx
call fcn.0043c5a0
mov eax, dword [ebx + 8]
push ebx
call eax
add esp, 4
jmp 0x43fe6d
mov edi, dword [ebp - 0x50]
mov ecx, ebx
push edi
push esi
call fcn.0043d7b0
mov dword [ebp - 0x40], eax
cmp eax, 0xffffffff
je 0x43ed13
push dword [ebx + 0x18]
call dword [sym.imp.USER32.dll_SetCapture]
mov eax, dword [ebp - 0x40]
mov dword [ebx + 0x50], eax
mov word [ebx + 0x5c], si
jmp 0x43fe6d
cmp dword [ebx + 0x58], 0
je 0x43ed51
lea eax, [ebp - 0x58]
mov dword [ebp - 0x58], 0
push eax
push edi
push esi
mov ecx, ebx
call fcn.0043d230
mov esi, eax
cmp esi, 0xffffffff
je 0x43fe6d
push dword [ebx + 0x18]
call dword [sym.imp.USER32.dll_SetCapture]
mov ax, word [ebp - 0x58]
mov dword [ebx + 0x54], esi
mov word [ebx + 0x5c], ax
jmp 0x43fe6d
cmp dword [ebx + 0x12a], 0
je 0x43fe6d
cmp dword [ebx + 0xbe], 0
je 0x43fe6d
lea eax, [ebp - 0x40]
mov dword [ebp - 0x40], 0
push eax
push edi
push esi
mov ecx, ebx
call fcn.0043d230
mov ecx, dword [ebx + 0x8a]
xor edx, edx
imul esi, eax, 0xb1
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x40], esi
mov edi, dword [ecx + esi + 0xa4]
cmp dword [ebx + 0x8e], edx
jle 0x43ee03
xor ecx, ecx
jmp 0x43edb0
mov esi, dword [ebx + 0x8a]
mov eax, dword [esi + ecx + 0xa4]
test eax, eax
js 0x43edf1
cmp eax, edi
jl 0x43edc9
test edi, edi
jns 0x43edf1
inc eax
mov dword [esi + ecx + 0xa4], eax
mov esi, dword [ebx + 0x8a]
mov eax, dword [esi + ecx + 0xa4]
cmp eax, dword [ebx + 0x8e]
jl 0x43edf1
mov dword [esi + ecx + 0xa4], 0xffffffff
inc edx
add ecx, 0xb1
cmp edx, dword [ebx + 0x8e]
jl 0x43edb0
mov esi, dword [ebp - 0x40]
mov eax, dword [ebx + 0x8a]
mov dword [eax + esi + 0xa4], 0
mov eax, dword [ebx + 0x8a]
inc dword [eax + esi + 0xa8]
mov eax, dword [ebx + 0x8a]
cmp dword [eax + esi + 0xa8], 2
jle 0x43ee3c
mov dword [eax + esi + 0xa8], 1
mov eax, dword [ebp - 0x58]
mov ecx, ebx
mov dword [ebx + 0x12e], eax
call fcn.00441790
jmp case.default.0x43e946
movzx eax, word [edi + 0xc]
movzx ecx, word [edi + 0xe]
cwde
cmp eax, dword [ebx + 0x9e]
jle case.0x43e57b.278
cmp eax, dword [ebx + 0xa6]
jge case.0x43e57b.278
movsx esi, cx
cmp esi, dword [ebx + 0xa2]
jle case.0x43e57b.278
cmp esi, dword [ebx + 0xaa]
jge case.0x43e57b.278
mov ecx, dword [ebx + 0x1c]
push 0x39
mov ecx, dword [ecx]
call fcn.0042bb10
add eax, dword [ebx + 0xa2]
cmp esi, eax
jle case.0x43e57b.278
mov ecx, dword [ebx + 0x10e]
test ecx, ecx
js case.0x43e57b.278
mov eax, dword [ebx + 0xbe]
dec eax
cmp ecx, eax
jle 0x43eed7
push 0x2040
push str.Error_2
push str.Invalid_row_selection.
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
cmp dword [ebx + 4], 0
je case.0x43e57b.278
cmp dword [ebx + 0x30], 0
je 0x43eeee
mov ecx, ebx
call fcn.0043c5a0
mov eax, dword [ebx + 4]
push ebx
call eax
add esp, 4
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004520a4
mov esp, ebp
pop ebp
ret 0xc
lea eax, [ebp - 0xc]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
lea eax, [ebp - 0xc]
push eax
push dword [ebx + 0x18]
call dword [sym.imp.USER32.dll_ScreenToClient]
cmp dword [ebx + 0x28], 0
movzx edi, word [ebp - 0xc]
movzx esi, word [ebp - 8]
mov eax, dword [sym.imp.USER32.dll_KillTimer]
mov dword [ebp - 0x5c], edi
mov dword [ebp - 0x4c], esi
je 0x43ef4d
push 2
push dword [ebx + 0x18]
call eax
mov eax, dword [sym.imp.USER32.dll_KillTimer]
mov dword [ebx + 0x28], 0
cmp dword [ebx + 0x6e], 0
je 0x43f602
cmp dword [ebx + 0x62], 0xffffffff
je 0x43f602
cmp dword [ebx + 0x72], 0
je 0x43ef6e
push 1
push dword [ebx + 0x18]
call eax
mov ecx, dword [ebx + 0x1c]
push 0x39
movsx esi, si
mov ecx, dword [ecx]
call fcn.0042bb10
mov ecx, eax
mov eax, esi
sub eax, dword [ebx + 0xa2]
cdq
idiv ecx
mov ecx, dword [ebx + 0xb2]
mov edi, eax
mov eax, 1
test ecx, ecx
je 0x43efa4
push 2
push ecx
call dword [sym.imp.USER32.dll_GetScrollPos]
lea ecx, [ebp - 0x40]
sub edi, 2
push ecx
add eax, edi
mov ecx, ebx
push eax
call fcn.0043d610
mov ecx, dword [ebx + 0xa2]
mov edi, eax
cmp esi, ecx
jg 0x43f166
sub ecx, esi
mov eax, 1
cdq
inc ecx
idiv ecx
push 0
push eax
mov eax, dword [sym.imp.USER32.dll_SetTimer]
push 1
push dword [ebx + 0x18]
call eax
mov edi, dword [ebx + 0x62]
mov dword [ebx + 0x72], eax
dec edi
mov esi, dword [ebp - 0x4c]
test edi, edi
js 0x43f4ac
cmp edi, dword [ebx + 0xbe]
jge 0x43f4ac
mov eax, dword [ebx + 0x62]
mov dword [ebp - 0x60], eax
cmp edi, eax
je 0x43f4ac
cmp edi, dword [ebx + 0x6a]
je 0x43f4ac
mov esi, dword [ebx + 0xe6]
push 1
push esi
call fcn.00452d0e
mov ecx, dword [ebp - 0x60]
imul ecx, esi
push esi
mov dword [ebp - 0x58], eax
add ecx, dword [ebx + 0xc2]
push ecx
push eax
call fcn.00452510
mov esi, dword [ebx + 0x34]
add esp, 0x14
mov dword [ebp - 0x40], 0
test esi, esi
je 0x43f07f
mov eax, dword [ebp - 0x60]
mov esi, dword [esi + eax*4]
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x43f055
sub ecx, edx
push 1
lea eax, [ecx + 1]
push eax
call fcn.00452d0e
add esp, 8
mov dword [ebp - 0x40], eax
mov edx, eax
mov cl, byte [esi]
lea esi, [esi + 1]
mov byte [edx], cl
lea edx, [edx + 1]
test cl, cl
jne 0x43f071
mov esi, dword [ebx + 0x8e]
push 4
push esi
call fcn.00452d0e
add esp, 8
mov edx, eax
cmp dword [ebx + 0xca], 0
mov dword [ebp - 0x50], edx
je 0x43f0bd
lea ecx, [esi*4]
imul esi, dword [ebp - 0x60]
push ecx
mov ecx, dword [ebx + 0xc6]
lea eax, [ecx + esi*4]
push eax
push edx
call fcn.00452510
add esp, 0xc
cmp dword [ebx + 0xd2], 0
mov dword [ebp - 0x54], 0
je 0x43f0fd
mov esi, dword [ebx + 0x8e]
push 4
push esi
call fcn.00452d0e
lea ecx, [esi*4]
mov dword [ebp - 0x54], eax
imul esi, dword [ebp - 0x60]
push ecx
mov ecx, dword [ebx + 0xce]
lea ecx, [ecx + esi*4]
push ecx
push eax
call fcn.00452510
add esp, 0x14
cmp dword [ebx + 0xda], 0
mov dword [ebp - 0x64], 0
je 0x43f133
mov esi, dword [ebx + 0x8e]
push 1
push esi
call fcn.00452d0e
push esi
imul esi, dword [ebp - 0x60]
mov dword [ebp - 0x64], eax
add esi, dword [ebx + 0xd6]
push esi
push eax
call fcn.00452510
add esp, 0x14
cmp dword [ebx + 0xe2], 0
mov dword [ebp - 0x68], 0
je 0x43f1c2
push 1
push 1
call fcn.00452d0e
mov ecx, dword [ebx + 0xde]
add esp, 8
mov esi, dword [ebp - 0x60]
mov dword [ebp - 0x68], eax
mov cl, byte [esi + ecx]
mov byte [eax], cl
jmp 0x43f1c5
mov edx, dword [ebx + 0xaa]
cmp esi, edx
jge 0x43f18d
mov ecx, dword [ebx + 0xbe]
lea eax, [ecx - 1]
cmp edi, eax
jne 0x43efe6
lea eax, [ecx - 2]
cmp dword [ebx + 0x62], eax
je 0x43efe6
sub esi, edx
inc esi
mov esi, dword [ebp - 0x4c]
jne 0x43f199
inc esi
mov dword [ebp - 0x4c], esi
movsx ecx, si
mov eax, 1
sub ecx, edx
cdq
inc ecx
idiv ecx
push 0
push eax
mov eax, dword [sym.imp.USER32.dll_SetTimer]
push 1
push dword [ebx + 0x18]
call eax
mov edi, dword [ebx + 0x62]
mov dword [ebx + 0x72], eax
inc edi
jmp 0x43efe9
mov esi, dword [ebp - 0x60]
push 4
push 1
call fcn.00452d0e
mov ecx, dword [ebx + 0x112]
add esp, 8
mov dword [ebp - 0x60], eax
test ecx, ecx
je 0x43f1e9
cmp dword [ebx + 0x18], 0
je 0x43f1e9
mov ecx, dword [ecx + esi*4]
mov dword [eax], ecx
push esi
mov ecx, ebx
call fcn.00440d10
mov eax, dword [ebx + 0xbe]
lea esi, [edi + 1]
mov edx, dword [ebx + 0xe6]
inc eax
mov ecx, dword [ebx + 0xc2]
mov dword [ebx + 0xbe], eax
sub eax, edi
dec eax
imul eax, edx
push eax
mov eax, edi
imul eax, edx
imul edx, esi
add eax, ecx
push eax
add edx, ecx
push edx
call fcn.00451a60
mov ecx, dword [ebx + 0xe6]
mov eax, edi
imul eax, ecx
push ecx
push dword [ebp - 0x58]
add eax, dword [ebx + 0xc2]
push eax
call fcn.00452510
push dword [ebp - 0x58]
call fcn.00452d4e
add esp, 0x1c
cmp dword [ebx + 0xca], 1
jne 0x43f2ad
mov eax, dword [ebx + 0xbe]
mov edx, dword [ebx + 0x8e]
sub eax, edi
mov ecx, dword [ebx + 0xc6]
dec eax
imul eax, edx
shl eax, 2
push eax
mov eax, edx
imul edx, esi
imul eax, edi
lea eax, [ecx + eax*4]
push eax
lea eax, [ecx + edx*4]
push eax
call fcn.00451a60
mov ecx, dword [ebx + 0x8e]
lea eax, [ecx*4]
imul ecx, edi
push eax
mov eax, dword [ebx + 0xc6]
push dword [ebp - 0x50]
lea eax, [eax + ecx*4]
push eax
call fcn.00452510
add esp, 0x18
push dword [ebp - 0x50]
call fcn.00451917
add esp, 4
cmp dword [ebx + 0xd2], 1
jne 0x43f320
mov eax, dword [ebx + 0xbe]
mov edx, dword [ebx + 0x8e]
sub eax, edi
mov ecx, dword [ebx + 0xce]
dec eax
imul eax, edx
shl eax, 2
push eax
mov eax, edx
imul edx, esi
imul eax, edi
lea eax, [ecx + eax*4]
push eax
lea eax, [ecx + edx*4]
push eax
call fcn.00451a60
mov ecx, dword [ebx + 0x8e]
lea eax, [ecx*4]
imul ecx, edi
push eax
mov eax, dword [ebx + 0xce]
push dword [ebp - 0x54]
lea eax, [eax + ecx*4]
push eax
call fcn.00452510
push dword [ebp - 0x54]
call fcn.00451917
add esp, 0x1c
cmp dword [ebx + 0xda], 1
jne 0x43f378
mov eax, dword [ebx + 0xbe]
mov edx, dword [ebx + 0x8e]
sub eax, edi
mov ecx, dword [ebx + 0xd6]
dec eax
imul eax, edx
push eax
mov eax, edx
imul edx, esi
imul eax, edi
add edx, ecx
add eax, ecx
push eax
push edx
call fcn.00451a60
mov eax, dword [ebx + 0x8e]
mov esi, dword [ebp - 0x64]
push eax
imul eax, edi
push esi
add eax, dword [ebx + 0xd6]
push eax
call fcn.00452510
push esi
call fcn.00451917
add esp, 0x1c
cmp dword [ebx + 0xe2], 1
jne 0x43f3b4
mov eax, dword [ebx + 0xbe]
mov ecx, dword [ebx + 0xde]
sub eax, edi
add ecx, edi
dec eax
push eax
push ecx
lea eax, [ecx + 1]
push eax
call fcn.00451a60
mov edx, dword [ebp - 0x68]
mov ecx, dword [ebx + 0xde]
push edx
mov al, byte [edx]
mov byte [edi + ecx], al
call fcn.00451917
add esp, 0x10
mov eax, dword [ebx + 0x112]
test eax, eax
je 0x43f3fc
cmp dword [ebx + 0x18], 0
je 0x43f3fc
lea ecx, [eax + edi*4]
mov eax, dword [ebx + 0xbe]
sub eax, edi
lea eax, [eax*4 - 4]
push eax
push ecx
lea eax, [ecx + 4]
push eax
call fcn.00451a60
mov edx, dword [ebp - 0x60]
add esp, 0xc
mov ecx, dword [ebx + 0x112]
mov eax, dword [edx]
mov dword [ecx + edi*4], eax
mov eax, dword [edx]
add dword [ebx + 0x10a], eax
jmp 0x43f3ff
mov edx, dword [ebp - 0x60]
push edx
call fcn.00451917
add esp, 4
cmp dword [ebx + 0x116], 0
je 0x43f418
mov ecx, ebx
call fcn.0043c130
mov eax, dword [ebx + 0x34]
test eax, eax
je 0x43f448
lea ecx, [eax + edi*4]
mov eax, dword [ebx + 0xbe]
sub eax, edi
lea eax, [eax*4 - 4]
push eax
push ecx
lea eax, [ecx + 4]
push eax
call fcn.00451a60
mov eax, dword [ebx + 0x34]
add esp, 0xc
mov ecx, dword [ebp - 0x40]
mov dword [eax + edi*4], ecx
push edi
mov ecx, ebx
call fcn.00440f20
mov eax, dword [ebx + 0xbe]
dec eax
mov dword [ebx + 0x62], edi
cmp edi, eax
jne 0x43f48c
mov eax, dword [ebx + 0xb2]
test eax, eax
je 0x43f48c
lea ecx, [ebp - 0x40]
push ecx
lea ecx, [ebp - 0x58]
push ecx
push 2
push eax
call dword [sym.imp.USER32.dll_GetScrollRange]
push 1
push dword [ebp - 0x40]
push 2
push dword [ebx + 0xb2]
call dword [sym.imp.USER32.dll_SetScrollPos]
push 0
lea eax, [ebx + 0x9e]
push eax
push dword [ebx + 0x18]
call fcn.004246f0
add esp, 0xc
push dword [ebx + 0x18]
call dword [sym.imp.USER32.dll_UpdateWindow]
mov esi, dword [ebp - 0x4c]
mov edi, dword [ebp - 0x5c]
cmp dword [ebx + 0x24], 0
je 0x43fe6d
xor eax, eax
mov ecx, 1
cmp dword [ebx + 0x30], eax
cmovne eax, ecx
cmp dword [ebx + 0x28], 0
mov dword [ebp - 0x50], eax
je 0x43f4da
push 2
push dword [ebx + 0x18]
call dword [sym.imp.USER32.dll_KillTimer]
movsx eax, di
mov dword [ebx + 0x28], 0
cmp eax, dword [ebx + 0x9e]
jle 0x43f8aa
cmp eax, dword [ebx + 0xa6]
jge 0x43f8aa
movsx esi, si
mov dword [ebp - 0x58], esi
cmp esi, dword [ebx + 0xa2]
jle 0x43f8aa
cmp esi, dword [ebx + 0xaa]
jge 0x43f8aa
mov ecx, dword [ebx + 0x1c]
push 0x39
mov ecx, dword [ecx]
call fcn.0042bb10
add eax, dword [ebx + 0xa2]
cmp esi, eax
jle 0x43f8b1
xor ecx, ecx
xor edi, edi
mov dword [ebp - 0x40], ecx
cmp dword [ebx + 0x8e], ecx
jle 0x43f588
xor esi, esi
jmp 0x43f550
mov eax, dword [ebx + 0x8a]
cmp dword [eax + esi + 0xa0], 1
jne 0x43f576
mov ecx, dword [ebx + 0x1c]
push dword [eax + esi + 0x42]
mov ecx, dword [ecx]
call fcn.0042baa0
mov ecx, dword [ebp - 0x40]
add ecx, eax
mov dword [ebp - 0x40], ecx
inc edi
add esi, 0xb1
cmp edi, dword [ebx + 0x8e]
jl 0x43f550
mov esi, dword [ebp - 0x58]
mov edx, dword [ebp - 0x5c]
movsx eax, dx
cmp eax, ecx
jge 0x43f8b1
mov ecx, dword [ebx + 0x1c]
push 0x39
mov ecx, dword [ecx]
call fcn.0042bb10
sub esi, dword [ebx + 0xa2]
mov ecx, eax
mov eax, esi
cdq
idiv ecx
mov ecx, dword [ebx + 0xb2]
lea esi, [eax - 1]
mov eax, 1
test ecx, ecx
je 0x43f5ca
push 2
push ecx
call dword [sym.imp.USER32.dll_GetScrollPos]
lea ecx, [ebp - 0x40]
dec eax
push ecx
add eax, esi
mov ecx, ebx
push eax
call fcn.0043d610
mov ecx, eax
mov eax, dword [ebx + 0xbe]
test eax, eax
jle 0x43f880
cmp ecx, eax
jge 0x43f880
xor eax, eax
mov edx, 1
test ecx, ecx
cmovns eax, edx
jmp 0x43f882
cmp dword [ebx + 0x54], 0xffffffff
jne 0x43f61a
push esi
push edi
mov ecx, ebx
call fcn.0043d7b0
cmp eax, 0xffffffff
jne 0x43f74c
cmp dword [ebx + 0x50], 0xffffffff
jne 0x43f74c
push 0x7f00
push 0
call dword [sym.imp.USER32.dll_LoadCursorA]
cmp dword [ebx + 0x54], 0xffffffff
mov dword [ebx + 0x7e], eax
je 0x43f4af
push esi
push edi
mov ecx, ebx
call fcn.0043d210
mov edx, eax
mov dword [ebp - 0x54], edx
cmp edx, 0xffffffff
je 0x43f4af
mov eax, dword [ebx + 0x54]
mov dword [ebp - 0x40], eax
cmp edx, eax
je 0x43f4af
imul ecx, eax, 0xb1
lea edi, [ebp - 0x124]
mov eax, dword [ebx + 0x8a]
add eax, ecx
mov ecx, 0x2c
mov esi, eax
mov dword [ebp - 0x58], eax
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp - 0x40]
movsb byte es:[edi], byte [esi]
mov esi, dword [ebx + 0x8e]
lea eax, [ecx + 1]
cmp esi, eax
jle 0x43f6b8
sub esi, ecx
mov ecx, dword [ebp - 0x58]
imul eax, esi, 0xb1
sub eax, 0xb1
push eax
lea eax, [ecx + 0xb1]
push eax
push ecx
call fcn.00451a60
mov edx, dword [ebp - 0x54]
add esp, 0xc
mov esi, dword [ebx + 0x8e]
dec esi
mov dword [ebx + 0x54], edx
mov dword [ebx + 0x8e], esi
cmp esi, edx
jle 0x43f6f2
sub esi, dword [ebp - 0x54]
imul edx, edx, 0xb1
imul eax, esi, 0xb1
add edx, dword [ebx + 0x8a]
push eax
push edx
lea eax, [edx + 0xb1]
push eax
call fcn.00451a60
add esp, 0xc
imul edi, dword [ebx + 0x54], 0xb1
lea esi, [ebp - 0x124]
inc dword [ebx + 0x8e]
lea eax, [ebx + 0x9e]
mov ecx, 0x2c
push 0
push eax
add edi, dword [ebx + 0x8a]
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
push dword [ebx + 0x18]
call fcn.004246f0
add esp, 0xc
push dword [ebx + 0x18]
call dword [sym.imp.USER32.dll_UpdateWindow]
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x43f4a9
push dword [ebp - 0x54]
push dword [ebp - 0x40]
push ebx
call eax
add esp, 0xc
jmp 0x43f4a9
call fcn.0040b2e0
cmp dword [ebx + 0x50], 0xffffffff
mov dword [ebx + 0x7e], eax
je 0x43f4af
movsx ecx, word [ebx + 0x5c]
movsx eax, di
sub ecx, eax
push ecx
mov ecx, dword [ebx + 0x1c]
mov ecx, dword [ecx]
call fcn.00427e80
mov dword [ebp - 0x40], eax
mov edi, 1
test eax, eax
jle 0x43f7c7
lea eax, [ebp - 0x3c]
mov dword [ebp - 0x24], 0
push eax
xorps xmm0, xmm0
push 2
push dword [ebx + 0xae]
movdqu xmmword [ebp - 0x3c], xmm0
mov dword [ebp - 0x3c], 0x1c
movq qword [ebp - 0x2c], xmm0
mov dword [ebp - 0x38], 7
call dword [sym.imp.USER32.dll_GetScrollInfo]
mov eax, dword [ebp - 0x30]
sub eax, dword [ebp - 0x2c]
inc eax
cmp dword [ebp - 0x28], eax
jne 0x43f7c7
xor edi, edi
mov dword [ebx + 0x5e], 1
imul ecx, dword [ebx + 0x50], 0xb1
mov eax, dword [ebx + 0x8a]
push 0x10
mov esi, dword [ecx + eax + 0x42]
mov ecx, dword [ebx + 0x1c]
sub esi, dword [ebp - 0x40]
mov ecx, dword [ecx]
call fcn.00427e80
cmp esi, eax
jle 0x43f7f8
test edi, edi
mov edi, dword [ebp - 0x5c]
je 0x43f831
mov word [ebx + 0x5c], di
jmp 0x43f831
test edi, edi
je 0x43f820
mov ecx, dword [ebx + 0x1c]
push 0x10
mov ecx, dword [ecx]
call fcn.00427e80
mov ecx, dword [ebx + 0x1c]
sub eax, esi
push eax
mov ecx, dword [ecx]
call fcn.0042baa0
mov edi, dword [ebp - 0x5c]
add eax, edi
mov word [ebx + 0x5c], ax
jmp 0x43f823
mov edi, dword [ebp - 0x5c]
mov ecx, dword [ebx + 0x1c]
push 0x10
mov ecx, dword [ecx]
call fcn.00427e80
mov esi, eax
imul edx, dword [ebx + 0x50], 0xb1
mov ecx, dword [ebx + 0x8a]
mov dword [edx + ecx + 0x42], esi
imul ecx, dword [ebx + 0x50], 0xb1
mov eax, dword [ebx + 0x8a]
mov eax, dword [ecx + eax + 0x36]
cmp eax, 3
je 0x43f85d
cmp eax, 0x10
jne 0x43f864
mov ecx, ebx
call fcn.00440fc0
push 0
lea eax, [ebx + 0x9e]
push eax
push dword [ebx + 0x18]
call fcn.004246f0
mov esi, dword [ebp - 0x4c]
add esp, 0xc
jmp 0x43f4af
xor eax, eax
cmp dword [ebx + 0x30], 0
je 0x43f891
cmp ecx, dword [ebx + 0x2c]
je 0x43fe6d
test eax, eax
je 0x43f8b1
push 0
push dword [ebx + 0x38]
push 2
push dword [ebx + 0x18]
call dword [sym.imp.USER32.dll_SetTimer]
mov dword [ebx + 0x28], eax
jmp 0x43f8b1
mov dword [ebx + 0x2c], 0xffffffff
cmp dword [ebp - 0x50], 0
je 0x43fe6d
mov ecx, ebx
call fcn.0043c5a0
jmp 0x43fe6d
cmp dword [ebx + 0x54], 0xffffffff
movzx esi, word [edi + 0xc]
movzx eax, word [edi + 0xe]
mov dword [ebp - 0x4c], esi
mov dword [ebp - 0x54], eax
mov dword [ebx + 0x50], 0xffffffff
je 0x43f909
push 0
lea eax, [ebx + 0x9e]
mov dword [ebx + 0x54], 0xffffffff
push eax
push dword [ebx + 0x18]
call fcn.004246f0
add esp, 0xc
push dword [ebx + 0x18]
call dword [sym.imp.USER32.dll_UpdateWindow]
mov eax, dword [ebp - 0x54]
mov edi, dword [ebx + 0x62]
cmp edi, 0xffffffff
je 0x43fd94
cwde
cmp eax, dword [ebx + 0xaa]
jg 0x43f95c
cmp eax, dword [ebx + 0xa2]
jl 0x43f95c
movsx eax, si
cmp eax, dword [ebx + 0x9e]
jl 0x43f95c
cmp eax, dword [ebx + 0xa6]
jg 0x43f95c
mov eax, dword [ebx + 0x10]
test eax, eax
je 0x43fd69
mov ecx, dword [ebx + 0x66]
cmp ecx, edi
je 0x43fd69
push edi
push ecx
push ebx
call eax
add esp, 0xc
jmp 0x43fd69
mov esi, dword [ebx + 0xe6]
push 1
push esi
call fcn.00452d0e
push esi
imul esi, edi
mov dword [ebp - 0x60], eax
add esi, dword [ebx + 0xc2]
push esi
push eax
call fcn.00452510
mov esi, dword [ebx + 0x34]
add esp, 0x14
mov dword [ebp - 0x68], 0
test esi, esi
je 0x43f9ce
mov eax, dword [ebx + 0x66]
mov esi, dword [esi + eax*4]
mov ecx, esi
lea edx, [ecx + 1]
lea ebx, [ebx]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x43f9a0
sub ecx, edx
push 1
lea eax, [ecx + 1]
push eax
call fcn.00452d0e
add esp, 8
mov dword [ebp - 0x68], eax
mov edx, eax
lea esp, [esp]
mov cl, byte [esi]
lea esi, [esi + 1]
mov byte [edx], cl
lea edx, [edx + 1]
test cl, cl
jne 0x43f9c0
mov esi, dword [ebx + 0x8e]
push 4
push esi
call fcn.00452d0e
add esp, 8
mov edi, eax
cmp dword [ebx + 0xca], 0
mov dword [ebp - 0x40], edi
je 0x43fa0e
mov edx, dword [ebx + 0x62]
lea ecx, [esi*4]
imul edx, esi
push ecx
mov ecx, dword [ebx + 0xc6]
lea eax, [ecx + edx*4]
push eax
push edi
call fcn.00452510
add esp, 0xc
cmp dword [ebx + 0xd2], 0
mov dword [ebp - 0x58], 0
je 0x43fa52
mov esi, dword [ebx + 0x8e]
push 4
push esi
call fcn.00452d0e
mov edx, dword [ebx + 0x62]
lea ecx, [esi*4]
push ecx
mov ecx, dword [ebx + 0xce]
mov edi, eax
imul edx, esi
mov dword [ebp - 0x58], edi
lea ecx, [ecx + edx*4]
push ecx
push edi
call fcn.00452510
add esp, 0x14
cmp dword [ebx + 0xda], 0
mov dword [ebp - 0x50], 0
je 0x43fa8c
mov esi, dword [ebx + 0x8e]
push 1
push esi
call fcn.00452d0e
mov ecx, dword [ebx + 0x62]
mov edi, eax
imul ecx, esi
push esi
mov dword [ebp - 0x50], edi
add ecx, dword [ebx + 0xd6]
push ecx
push edi
call fcn.00452510
add esp, 0x14
cmp dword [ebx + 0xe2], 0
mov dword [ebp - 0x64], 0
je 0x43fabb
push 1
push 1
call fcn.00452d0e
mov edx, dword [ebx + 0xde]
mov esi, eax
mov ecx, dword [ebx + 0x62]
add esp, 8
mov dword [ebp - 0x64], esi
mov cl, byte [edx + ecx]
mov byte [esi], cl
push 4
push 1
call fcn.00452d0e
mov edi, eax
add esp, 8
mov eax, dword [ebx + 0x112]
test eax, eax
je 0x43fae1
cmp dword [ebx + 0x18], 0
je 0x43fae1
mov ecx, dword [ebx + 0x62]
mov eax, dword [eax + ecx*4]
mov dword [edi], eax
push dword [ebx + 0x62]
mov ecx, ebx
call fcn.00440d10
mov eax, dword [ebx + 0xbe]
mov ecx, dword [ebx + 0x66]
inc eax
mov edx, dword [ebx + 0xe6]
mov esi, dword [ebx + 0xc2]
mov dword [ebx + 0xbe], eax
sub eax, ecx
dec eax
imul eax, edx
push eax
mov eax, ecx
imul eax, edx
add eax, esi
push eax
lea eax, [ecx + 1]
imul eax, edx
add eax, esi
push eax
call fcn.00451a60
mov ecx, dword [ebx + 0xe6]
mov eax, dword [ebx + 0x66]
mov esi, dword [ebp - 0x60]
imul eax, ecx
push ecx
push esi
add eax, dword [ebx + 0xc2]
push eax
call fcn.00452510
push esi
call fcn.00452d4e
add esp, 0x1c
cmp dword [ebx + 0xca], 1
jne 0x43fbb6
mov edx, dword [ebx + 0x66]
mov eax, dword [ebx + 0xbe]
mov esi, dword [ebx + 0x8e]
sub eax, edx
mov ecx, dword [ebx + 0xc6]
dec eax
imul eax, esi
shl eax, 2
push eax
mov eax, esi
imul eax, edx
lea eax, [ecx + eax*4]
push eax
lea eax, [edx + 1]
imul eax, esi
lea eax, [ecx + eax*4]
push eax
call fcn.00451a60
mov edx, dword [ebx + 0x8e]
mov ecx, dword [ebx + 0x66]
mov esi, dword [ebp - 0x40]
imul ecx, edx
lea eax, [edx*4]
push eax
mov eax, dword [ebx + 0xc6]
push esi
lea eax, [eax + ecx*4]
push eax
call fcn.00452510
add esp, 0x18
jmp 0x43fbb9
mov esi, dword [ebp - 0x40]
push esi
call fcn.00451917
add esp, 4
cmp dword [ebx + 0xd2], 1
jne 0x43fc32
mov edx, dword [ebx + 0x66]
mov eax, dword [ebx + 0xbe]
mov esi, dword [ebx + 0x8e]
sub eax, edx
mov ecx, dword [ebx + 0xce]
dec eax
imul eax, esi
shl eax, 2
push eax
mov eax, esi
imul eax, edx
lea eax, [ecx + eax*4]
push eax
lea eax, [edx + 1]
imul eax, esi
lea eax, [ecx + eax*4]
push eax
call fcn.00451a60
mov edx, dword [ebx + 0x8e]
mov ecx, dword [ebx + 0x66]
mov esi, dword [ebp - 0x58]
imul ecx, edx
lea eax, [edx*4]
push eax
mov eax, dword [ebx + 0xce]
push esi
lea eax, [eax + ecx*4]
push eax
call fcn.00452510
push esi
call fcn.00451917
add esp, 0x1c
cmp dword [ebx + 0xda], 1
jne 0x43fc93
mov edx, dword [ebx + 0x66]
mov eax, dword [ebx + 0xbe]
mov esi, dword [ebx + 0x8e]
sub eax, edx
mov ecx, dword [ebx + 0xd6]
dec eax
imul eax, esi
push eax
mov eax, esi
imul eax, edx
add eax, ecx
push eax
lea eax, [edx + 1]
imul eax, esi
add eax, ecx
push eax
call fcn.00451a60
mov ecx, dword [ebx + 0x8e]
mov eax, dword [ebx + 0x66]
mov esi, dword [ebp - 0x50]
imul eax, ecx
push ecx
push esi
add eax, dword [ebx + 0xd6]
push eax
call fcn.00452510
push esi
call fcn.00451917
add esp, 0x1c
cmp dword [ebx + 0xe2], 1
jne 0x43fcd4
mov eax, dword [ebx + 0xbe]
mov edx, dword [ebx + 0xde]
sub eax, dword [ebx + 0x66]
add edx, dword [ebx + 0x66]
dec eax
push eax
push edx
lea eax, [edx + 1]
push eax
call fcn.00451a60
mov esi, dword [ebp - 0x64]
mov edx, dword [ebx + 0x66]
mov ecx, dword [ebx + 0xde]
push esi
mov al, byte [esi]
mov byte [edx + ecx], al
call fcn.00451917
add esp, 0x10
mov eax, dword [ebx + 0x112]
test eax, eax
je 0x43fd1d
cmp dword [ebx + 0x18], 0
je 0x43fd1d
mov ecx, dword [ebx + 0x66]
lea edx, [eax + ecx*4]
mov eax, dword [ebx + 0xbe]
sub eax, ecx
lea eax, [eax*4 - 4]
push eax
push edx
lea eax, [edx + 4]
push eax
call fcn.00451a60
mov edx, dword [ebx + 0x66]
add esp, 0xc
mov ecx, dword [ebx + 0x112]
mov eax, dword [edi]
mov dword [ecx + edx*4], eax
mov eax, dword [edi]
add dword [ebx + 0x10a], eax
push edi
call fcn.00451917
mov eax, dword [ebx + 0x34]
add esp, 4
test eax, eax
je 0x43fd5c
mov ecx, dword [ebx + 0x66]
lea edx, [eax + ecx*4]
mov eax, dword [ebx + 0xbe]
sub eax, ecx
lea eax, [eax*4 - 4]
push eax
push edx
lea eax, [edx + 4]
push eax
call fcn.00451a60
mov ecx, dword [ebx + 0x66]
add esp, 0xc
mov eax, dword [ebx + 0x34]
mov edx, dword [ebp - 0x68]
mov dword [eax + ecx*4], edx
push dword [ebx + 0x66]
mov ecx, ebx
call fcn.00440f20
mov esi, dword [ebp - 0x4c]
push 0
lea eax, [ebx + 0x9e]
mov dword [ebx + 0x62], 0xffffffff
push eax
push dword [ebx + 0x18]
mov dword [ebx + 0x66], 0xffffffff
call fcn.004246f0
add esp, 0xc
push dword [ebx + 0x18]
call dword [sym.imp.USER32.dll_UpdateWindow]
call dword [sym.imp.USER32.dll_ReleaseCapture]
push dword [ebp - 0x54]
mov ecx, ebx
push esi
call fcn.0043d7b0
cmp eax, 0xffffffff
je 0x43fdb7
call fcn.0040b2e0
mov dword [ebx + 0x7e], eax
jmp 0x43fe6d
push 0x7f00
push 0
call dword [sym.imp.USER32.dll_LoadCursorA]
mov dword [ebx + 0x7e], eax
jmp 0x43fe6d
mov ecx, dword [ebx + 0xae]
mov edx, dword [sym.imp.USER32.dll_SetWindowLongA]
cmp eax, ecx
jne 0x43fe16
cmp dword [edi + 4], 2
jne 0x43fdf7
push dword [ebx + 0xb6]
push 0xfffffffffffffffc
push ecx
call edx
mov dword [ebx + 0xae], 0
push dword [edi + 0xc]
push dword [edi + 8]
push dword [edi + 4]
push dword [edi]
push dword [ebx + 0xb6]
call dword [sym.imp.USER32.dll_CallWindowProcA]
mov edx, dword [sym.imp.USER32.dll_SetWindowLongA]
mov dword [esi], eax
mov eax, dword [ebx + 0xb2]
cmp dword [edi], eax
jne 0x43fe6d
cmp dword [edi + 4], 2
jne 0x43fe3b
push dword [ebx + 0xba]
push 0xfffffffffffffffc
push eax
call edx
mov dword [ebx + 0xb2], 0
mov esi, dword [ebx + 0x126]
mov dword [ebx + 0x126], 0x115
push dword [edi + 0xc]
push dword [edi + 8]
push dword [edi + 4]
push dword [edi]
push dword [ebx + 0xba]
call dword [sym.imp.USER32.dll_CallWindowProcA]
mov ecx, dword [ebp - 0x4c]
mov dword [ecx], eax
mov dword [ebx + 0x126], esi
mov eax, dword [ebp - 0x48]
mov dword [eax], 0
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004520a4
mov esp, ebp
pop ebp
ret 0xc