Function at 0x43da60
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 [0x4a9d30]
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 0x43daa5
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.0x43e66b.278
mov eax, dword [ebx]
test eax, eax
je 0x43dac2
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.0x43e66b.278
cmp dword [edi + 4], 0x201
jne 0x43db1f
push dword [ebx + 0x18]
mov ecx, dword [ebx + 0x1c]
call fcn.00431040
mov ecx, dword [ebx + 0x1c]
mov esi, eax
cmp dword [ecx + 8], esi
je 0x43db19
push esi
call fcn.00439150
mov eax, dword [ebx + 0x1c]
cmp dword [eax + 8], esi
jne 0x43db03
cmp dword [eax + 0xfa], 0
je 0x43db19
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.0x43e66b.278
mov eax, dword [edi]
cmp eax, dword [ebx + 0x18]
jne 0x43febc
mov eax, dword [edi + 4]
mov esi, dword [sym.imp.USER32.dll_SendMessageA]
cmp eax, 0x20a
je 0x43db56
cmp eax, dword [0x4ad434]
jne 0x43dc34
cmp eax, 0x20a
jne 0x43db5c
movzx eax, word [edi + 0xa]
jmp 0x43db60
movzx eax, word [edi + 8]
mov ecx, dword [0x4acdb0]
cwde
add ecx, eax
mov dword [0x4acdb0], ecx
cmp ecx, 0x78
jl 0x43dbcc
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 0x43dc2a
xor edi, edi
mov eax, dword [ebx + 0xb2]
test eax, eax
je 0x43dbb0
push eax
push 0
push 0x115
push dword [ebx + 0x18]
call esi
mov ecx, dword [0x4acdb0]
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 0x43db93
jmp 0x43dc27
cmp ecx, 0xffffff88
jg 0x43dc34
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 0x43dc2a
xor edi, edi
lea esp, [esp]
mov eax, dword [ebx + 0xb2]
test eax, eax
je 0x43dc0d
push eax
push 1
push 0x115
push dword [ebx + 0x18]
call esi
mov ecx, dword [0x4acdb0]
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 0x43dbf0
mov edi, dword [ebp - 0x54]
mov dword [0x4acdb0], 0
mov eax, dword [edi + 4]
cmp eax, 0x113
ja 0x43e654
je 0x43e26b
sub eax, 2
cmp eax, 0xfe
ja case.0x43e66b.278
movzx eax, byte [eax + 0x43ff94]
jmp dword [eax*4 + 0x43ff7c]
mov eax, dword [edi + 8]
add eax, 0xfffffff3
cmp eax, 0x6e
ja case.0x43dc7a.14
movzx eax, byte [eax + 0x4400c4]
jmp dword [eax*4 + 0x440094]
cmp dword [ebx + 0x30], 0
je 0x43dc8e
mov ecx, ebx
call fcn.0043c670
mov ecx, ebx
call fcn.00440270
jmp case.0x43dc7a.14
cmp dword [ebx + 0x30], 0
je 0x43dca7
mov ecx, ebx
call fcn.0043c670
mov ecx, dword [ebx + 0x1c]
push dword [ebx + 0x14]
push ecx
mov ecx, dword [ecx]
call fcn.00469440
mov eax, dword [ebp - 0x48]
mov dword [eax], 0
jmp case.0x43dc7a.14
cmp byte [ebx + 0x17d], 0
je 0x43dce1
mov ecx, ebx
call fcn.0043c250
mov eax, dword [ebp - 0x48]
mov dword [eax], 0
jmp case.0x43dc7a.14
cmp dword [ebx + 0x10e], 0
jl case.0x43dc7a.14
cmp dword [ebx + 0x30], 0
je 0x43dcfb
mov ecx, ebx
call fcn.0043c670
mov eax, dword [ebx + 0xbe]
dec eax
cmp dword [ebx + 0x10e], eax
jle 0x43dd21
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.0x43dc7a.14
push ebx
call eax
add esp, 4
jmp case.0x43dc7a.14
mov eax, dword [ebx + 0xae]
test eax, eax
je case.0x43dc7a.14
push eax
push 0
push 0x114
push dword [ebx + 0x18]
call esi
jmp case.0x43dc7a.14
mov eax, dword [ebx + 0xae]
test eax, eax
je case.0x43dc7a.14
push eax
push 1
push 0x114
push dword [ebx + 0x18]
call esi
jmp case.0x43dc7a.14
mov eax, dword [ebx + 0x10e]
test eax, eax
jle case.0x43dc7a.14
mov esi, dword [ebx + 0x116]
dec eax
push eax
mov ecx, ebx
mov dword [ebx + 0x116], 0
call fcn.00441010
mov dword [ebx + 0x116], esi
test esi, esi
je case.0x43dc7a.14
cmp dword [ebx + 0x126], 0x100
je 0x43ddd3
mov esi, dword [ebx + 0x122]
mov ecx, ebx
call fcn.0043c200
push esi
mov ecx, ebx
mov dword [ebx + 0x122], esi
call fcn.0043bb60
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
cwde
test eax, 0x10000
jne 0x43ddea
mov ecx, ebx
call fcn.0043c200
mov esi, dword [ebx + 0x10e]
mov ecx, ebx
push esi
call fcn.00440350
mov ecx, ebx
test eax, eax
jne 0x43de06
push esi
call fcn.0043bb60
jmp 0x43de11
push dword [ebx + 0x122]
call fcn.00440ff0
mov eax, dword [ebx + 0x10e]
mov dword [ebx + 0x122], eax
mov dword [ebx + 0x126], 0x100
jmp case.0x43dc7a.14
mov eax, dword [ebx + 0xbe]
mov ecx, dword [ebx + 0x10e]
dec eax
cmp ecx, eax
jge case.0x43dc7a.14
mov esi, dword [ebx + 0x116]
lea eax, [ecx + 1]
push eax
mov ecx, ebx
mov dword [ebx + 0x116], 0
call fcn.00441010
mov dword [ebx + 0x116], esi
test esi, esi
je case.0x43dc7a.14
cmp dword [ebx + 0x126], 0x100
je 0x43de91
mov esi, dword [ebx + 0x122]
mov ecx, ebx
call fcn.0043c200
push esi
mov ecx, ebx
mov dword [ebx + 0x122], esi
call fcn.0043bb60
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
cwde
test eax, 0x10000
jne 0x43dea8
mov ecx, ebx
call fcn.0043c200
mov esi, dword [ebx + 0x10e]
mov ecx, ebx
push esi
call fcn.00440350
mov ecx, ebx
test eax, eax
jne 0x43dec4
push esi
call fcn.0043bb60
jmp 0x43decf
push dword [ebx + 0x122]
call fcn.00440ff0
mov esi, dword [ebx + 0x10e]
mov ecx, ebx
push esi
call fcn.004402b0
test eax, eax
je 0x43df22
cmp dword [ebx + 0x164], 0
jne 0x43df22
push esi
mov ecx, ebx
call fcn.00440ff0
mov eax, dword [ebx + 0x10e]
mov ecx, ebx
dec eax
push eax
call fcn.00441010
cmp dword [ebx + 0x10e], 0
jge 0x43df28
push 0
mov ecx, ebx
call fcn.00441010
mov dword [ebx + 0x126], 0x100
jmp case.0x43dc7a.14
mov dword [ebx + 0x122], esi
mov dword [ebx + 0x126], 0x100
jmp case.0x43dc7a.14
mov eax, dword [ebx + 0xb2]
test eax, eax
je case.0x43dc7a.14
push eax
push 2
push 0x115
push dword [ebx + 0x18]
call esi
jmp case.0x43dc7a.14
mov eax, dword [ebx + 0xb2]
test eax, eax
je case.0x43dc7a.14
push eax
push 3
push 0x115
push dword [ebx + 0x18]
call esi
jmp case.0x43dc7a.14
cmp dword [ebx + 0x116], 0
je 0x43e024
cmp dword [ebx + 0x126], 0x100
mov esi, dword [ebx + 0x122]
jne 0x43dfdd
mov eax, dword [ebx + 0xbe]
lea edi, [eax - 1]
test edi, edi
js 0x43dfb9
push edi
mov ecx, ebx
call fcn.00440350
test eax, eax
cmovne esi, edi
dec edi
jns 0x43dfa3
mov eax, dword [ebx + 0xbe]
cmp esi, dword [ebx + 0x122]
jne 0x43dfdd
xor edi, edi
test eax, eax
jle 0x43dfdd
push edi
mov ecx, ebx
call fcn.00440350
test eax, eax
cmovne esi, edi
inc edi
cmp edi, dword [ebx + 0xbe]
jl 0x43dfc7
mov ecx, ebx
call fcn.0043c200
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
cwde
test eax, 0x10000
je 0x43e005
test esi, esi
jle 0x43e005
push esi
mov ecx, ebx
call fcn.0043bb60
dec esi
test esi, esi
jg 0x43dff8
push 0
mov ecx, ebx
call fcn.00441010
mov eax, dword [ebx + 0x10e]
mov dword [ebx + 0x122], eax
mov dword [ebx + 0x126], 0x100
mov eax, dword [ebx + 0xb2]
test eax, eax
je 0x43e196
push 1
push 1
push 2
push eax
jmp 0x43e190
cmp dword [ebx + 0x116], 0
je 0x43e168
cmp dword [ebx + 0x126], 0x100
mov esi, dword [ebx + 0x122]
jne 0x43e0a7
mov eax, dword [ebx + 0xbe]
xor edi, edi
test eax, eax
jle 0x43e088
lea esp, [esp]
push edi
mov ecx, ebx
call fcn.00440350
test eax, eax
mov eax, dword [ebx + 0xbe]
cmovne esi, edi
inc edi
cmp edi, eax
jl 0x43e070
cmp esi, dword [ebx + 0x122]
jne 0x43e0a7
lea edi, [eax - 1]
test edi, edi
js 0x43e0a7
push edi
mov ecx, ebx
call fcn.00440350
test eax, eax
cmovne esi, edi
dec edi
jns 0x43e097
mov ecx, ebx
call fcn.0043c200
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
cwde
test eax, 0x10000
je 0x43e117
mov eax, dword [ebx + 0xbe]
mov edi, esi
dec eax
cmp esi, eax
jge 0x43e0e4
jmp 0x43e0d0
push edi
mov ecx, ebx
call fcn.0043bb60
mov eax, dword [ebx + 0xbe]
inc edi
dec eax
cmp edi, eax
jl 0x43e0d0
mov edi, dword [ebx + 0xbe]
mov ecx, ebx
dec edi
push edi
call fcn.004402b0
test eax, eax
je 0x43e14a
cmp dword [ebx + 0x164], 0
jne 0x43e14a
cmp edi, esi
jle 0x43e152
push edi
mov ecx, ebx
call fcn.004402b0
test eax, eax
je 0x43e14a
dec edi
cmp edi, esi
jg 0x43e104
jmp 0x43e152
mov edi, dword [ebx + 0xbe]
mov ecx, ebx
dec edi
push edi
call fcn.004402b0
test eax, eax
je 0x43e14a
cmp dword [ebx + 0x164], 0
jne 0x43e14a
cmp edi, esi
jl 0x43e152
push edi
mov ecx, ebx
call fcn.004402b0
test eax, eax
je 0x43e14a
dec edi
cmp edi, esi
jge 0x43e137
jmp 0x43e152
push edi
mov ecx, ebx
call fcn.00441010
mov eax, dword [ebx + 0x10e]
mov dword [ebx + 0x122], eax
mov dword [ebx + 0x126], 0x100
mov eax, dword [ebx + 0xb2]
test eax, eax
je 0x43e196
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.00424490
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.004530e4
mov esp, ebp
pop ebp
ret 0xc
mov eax, dword [ebx + 0x18]
cmp eax, dword [edi + 8]
jne case.0x43e66b.278
cmp word [edi + 0xc], 0
je case.0x43e66b.278
push dword [ebx + 0x7e]
call dword [sym.imp.USER32.dll_SetCursor]
mov ecx, dword [ebp - 0x4c]
mov dword [ecx], 1
jmp 0x43ff5d
mov ecx, ebx
call fcn.00440530
mov ecx, dword [ebp - 0x4c]
mov dword [ecx], 0
jmp 0x43ff5d
push dword [ebx + 0x18]
mov ecx, dword [ebx + 0x1c]
call fcn.00431170
cmp eax, 0xffffffff
je 0x43e226
mov ecx, dword [ebx + 0x1c]
push eax
call fcn.00438960
mov ecx, dword [ebp - 0x4c]
mov dword [ecx], 0
jmp 0x43ff5d
mov eax, dword [ebx + 0xae]
mov esi, dword [sym.imp.USER32.dll_DestroyWindow]
test eax, eax
je 0x43e247
push eax
call esi
mov eax, dword [ebx + 0xb2]
test eax, eax
je case.0x43e66b.278
push eax
call esi
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004530e4
mov esp, ebp
pop ebp
ret 0xc
cmp dword [ebx + 0x28], 0
je 0x43e5fa
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.0x43e66b.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.0x43e66b.278
cmp eax, dword [ebx + 0xa6]
jge case.0x43e66b.278
movsx edi, word [ebp - 0x6c]
mov dword [ebp - 0x40], edi
cmp edi, dword [ebx + 0xa2]
jle case.0x43e66b.278
cmp edi, dword [ebx + 0xaa]
jge case.0x43e66b.278
mov ecx, dword [ebx + 0x1c]
push 0x39
mov ecx, dword [ecx]
call fcn.0042b860
add eax, dword [ebx + 0xa2]
cmp edi, eax
jle case.0x43e66b.278
xor ecx, ecx
xor esi, esi
mov dword [ebp - 0x54], ecx
cmp dword [ebx + 0x8e], ecx
jle 0x43e368
xor edi, edi
jmp 0x43e330
mov eax, dword [ebx + 0x8a]
cmp dword [eax + edi + 0xa0], 1
jne 0x43e356
mov ecx, dword [ebx + 0x1c]
push dword [eax + edi + 0x42]
mov ecx, dword [ecx]
call fcn.0042b7f0
mov ecx, dword [ebp - 0x54]
add ecx, eax
mov dword [ebp - 0x54], ecx
inc esi
add edi, 0xb1
cmp esi, dword [ebx + 0x8e]
jl 0x43e330
mov edi, dword [ebp - 0x40]
cmp dword [ebp - 0x50], ecx
jge case.0x43e66b.278
mov ecx, dword [ebx + 0x1c]
push 0x39
mov ecx, dword [ecx]
call fcn.0042b860
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 0x43e3a5
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.0043d6e0
mov dword [ebx + 0x2c], eax
cmp eax, dword [ebx + 0xbe]
jge 0x43e5e0
mov ecx, dword [ebx + 0x34]
test ecx, ecx
je 0x43e5e0
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0x60], eax
test eax, eax
je 0x43e5e0
cmp byte [eax], 0
je 0x43e5e0
mov esi, eax
lea ecx, [esi + 1]
lea ebx, [ebx]
mov al, byte [esi]
inc esi
test al, al
jne 0x43e3f0
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.004283d0
push eax
push edi
call dword [sym.imp.GDI32.dll_SelectObject]
xor edi, edi
test esi, esi
je 0x43e4af
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 0x43e45e
lea eax, [esi - 1]
cmp edi, eax
jne 0x43e4a4
cmp dl, 0xa
je 0x43e4a4
mov edx, dword [ebp - 0x5c]
mov eax, edi
sub eax, edx
jne 0x43e474
lea eax, [ebp - 0xc]
push eax
push 1
push 0x486638
jmp 0x43e47f
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
jb 0x43e444
mov dword [ebp - 0x68], ebx
mov ebx, dword [ebp - 0x58]
mov ecx, dword [ebx + 0x1c]
call fcn.004303f0
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 0x43e513
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 0x43e533
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 0x43e536
mov edi, dword [ebp - 0x50]
push dword [ebp - 0x60]
mov ecx, dword [ebp - 0x5c]
call fcn.0043ab50
push dword [ebx + 0x1c]
mov ecx, dword [ebp - 0x5c]
call fcn.0043a280
mov ecx, dword [ebp - 0x5c]
push 0
push 0
call fcn.0043ab20
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.004530e4
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.004530e4
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.004530e4
mov esp, ebp
pop ebp
ret 0xc
sub eax, 0x114
cmp eax, 0xef
ja case.0x43e66b.278
movzx eax, byte [eax + 0x440150]
jmp dword [eax*4 + 0x440134]
cmp dword [ebx + 0x30], 0
je 0x43e67f
mov ecx, ebx
call fcn.0043c670
push dword [ebx + 0x18]
mov ecx, dword [ebx + 0x1c]
call fcn.00431040
mov ecx, dword [ebx + 0x1c]
push eax
call fcn.00439150
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.0x43ea36
jmp dword [eax*4 + 0x440240]
mov eax, dword [ebp - 0xc]
push 1
inc eax
push eax
jmp 0x43e999
mov eax, dword [ebp - 0xc]
push 1
dec eax
push eax
jmp 0x43e999
mov eax, dword [ebp - 0xc]
mov edi, eax
mov edx, dword [ebp - 0x10]
sub edi, edx
cmp dword [ebx + 0x116], 0
je 0x43e821
cmp dword [ebx + 0x126], 0x115
je 0x43e821
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 0x43e75e
cmp dword [ebx + 0x11e], 1
jg 0x43e76e
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
cwde
test eax, 0x10000
jne 0x43e781
mov esi, dword [ebx + 0x122]
mov ecx, ebx
call fcn.0043c200
mov dword [ebx + 0x122], esi
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
cwde
test eax, 0x10000
je 0x43e7ff
mov esi, dword [ebx + 0x122]
mov byte [ebp - 0x41], 0
cmp esi, edi
jle 0x43e7d9
nop
push esi
mov ecx, ebx
call fcn.00440350
mov ecx, ebx
push esi
test eax, eax
jne 0x43e7cb
call fcn.0043bb60
cmp byte [ebp - 0x41], 0
je 0x43e7c5
lea eax, [esi + 1]
mov ecx, ebx
push eax
call fcn.0043bb60
mov byte [ebp - 0x41], 0
jmp 0x43e7d4
call fcn.00440ff0
mov byte [ebp - 0x41], 1
dec esi
cmp esi, edi
jg 0x43e7a0
mov esi, dword [ebx + 0x122]
mov ecx, ebx
lea eax, [esi - 1]
push eax
call fcn.00440350
test eax, eax
jne 0x43e7f7
cmp esi, 1
jne 0x43e7ff
test edi, edi
jne 0x43e7ff
push esi
mov ecx, ebx
call fcn.0043bb60
push edi
mov ecx, ebx
call fcn.00441010
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 0x43e999
mov edi, dword [ebp - 0xc]
mov edx, dword [ebp - 0x10]
add edi, edx
cmp dword [ebx + 0x116], 0
je 0x43e98f
cmp dword [ebx + 0x126], 0x115
je 0x43e98f
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 0x43e882
cmp dword [ebx + 0x11e], 1
jg 0x43e892
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
cwde
test eax, 0x10000
jne 0x43e8a5
mov esi, dword [ebx + 0x122]
mov ecx, ebx
call fcn.0043c200
mov dword [ebx + 0x122], esi
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
cwde
test eax, 0x10000
je 0x43e941
mov esi, dword [ebx + 0x122]
mov byte [ebp - 0x41], 0
cmp esi, edi
jge 0x43e910
push esi
mov ecx, ebx
call fcn.00440350
mov ecx, ebx
test eax, eax
jne 0x43e8f2
push esi
call fcn.0043bb60
cmp byte [ebp - 0x41], 0
je 0x43e8ec
lea eax, [esi - 1]
mov ecx, ebx
push eax
call fcn.0043bb60
mov byte [ebp - 0x41], 0
jmp 0x43e90b
lea eax, [esi + 1]
push eax
call fcn.004402b0
test eax, eax
jne 0x43e90b
push esi
mov ecx, ebx
call fcn.00440ff0
mov byte [ebp - 0x41], 1
inc esi
cmp esi, edi
jl 0x43e8c7
mov esi, dword [ebx + 0x122]
mov ecx, ebx
lea eax, [esi + 1]
push eax
call fcn.00440350
test eax, eax
jne 0x43e939
mov ecx, dword [ebx + 0xbe]
lea eax, [ecx - 2]
cmp esi, eax
jne 0x43e941
lea eax, [ecx - 1]
cmp edi, eax
jne 0x43e941
push esi
mov ecx, ebx
call fcn.0043bb60
push edi
mov ecx, ebx
call fcn.004402b0
test eax, eax
je 0x43e96a
lea esi, [edi - 1]
cmp edi, dword [ebx + 0x122]
jle 0x43e972
push esi
mov ecx, ebx
call fcn.004402b0
test eax, eax
je 0x43e967
dec esi
jmp 0x43e958
push esi
jmp 0x43e96b
push edi
mov ecx, ebx
call fcn.00441010
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 0x43e999
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.00424490
add esp, 0xc
jmp 0x43ff5d
cmp dword [ebx + 0x30], 0
je 0x43e9c8
mov ecx, ebx
call fcn.0043c670
push dword [ebx + 0x18]
mov ecx, dword [ebx + 0x1c]
call fcn.00431040
mov ecx, dword [ebx + 0x1c]
push eax
call fcn.00439150
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.0x43ea36
jmp dword [eax*4 + 0x440258]
mov ecx, dword [ebx + 0x1c]
push 1
mov ecx, dword [ecx]
call fcn.00427bf0
add eax, dword [ebp - 0xc]
movzx eax, ax
push 1
cwde
push eax
jmp 0x43e999
mov ecx, dword [ebx + 0x1c]
push 1
mov ecx, dword [ecx]
call fcn.00427bf0
mov ecx, dword [ebp - 0xc]
sub ecx, eax
movzx eax, cx
push 1
cwde
push eax
jmp 0x43e999
mov eax, dword [ebp - 0xc]
sub eax, dword [ebp - 0x10]
push 1
cwde
push eax
jmp 0x43e999
mov eax, dword [ebp - 0x10]
add eax, dword [ebp - 0xc]
push 1
cwde
push eax
jmp 0x43e999
mov eax, dword [ebp - 0x58]
push 1
cwde
push eax
jmp 0x43e999
cmp byte [ebx + 0x17d], 0
je 0x43eab4
mov ecx, ebx
call fcn.0043c250
jmp 0x43ff5d
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 0x43ff5d
cmp eax, dword [ebx + 0xa6]
jge 0x43ff5d
movsx edi, cx
mov dword [ebp - 0x40], edi
cmp edi, dword [ebx + 0xa2]
jle 0x43ff5d
cmp edi, dword [ebx + 0xaa]
jge 0x43ff5d
mov ecx, dword [ebx + 0x1c]
push 0x39
mov ecx, dword [ecx]
call fcn.0042b860
add eax, dword [ebx + 0xa2]
cmp edi, eax
jle 0x43edd7
xor ecx, ecx
xor esi, esi
mov dword [ebp - 0x50], ecx
cmp dword [ebx + 0x8e], ecx
jle 0x43eb68
xor edi, edi
lea esp, [esp]
mov eax, dword [ebx + 0x8a]
cmp dword [eax + edi + 0xa0], 1
jne 0x43eb56
mov ecx, dword [ebx + 0x1c]
push dword [eax + edi + 0x42]
mov ecx, dword [ecx]
call fcn.0042b7f0
mov ecx, dword [ebp - 0x50]
add ecx, eax
mov dword [ebp - 0x50], ecx
inc esi
add edi, 0xb1
cmp esi, dword [ebx + 0x8e]
jl 0x43eb30
mov edi, dword [ebp - 0x40]
mov edx, dword [ebp - 0x64]
movsx eax, dx
cmp eax, ecx
jge 0x43ff5d
mov ecx, dword [ebx + 0x1c]
push 0x39
mov ecx, dword [ecx]
call fcn.0042b860
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 0x43eba9
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.0043d6e0
cmp dword [ebx + 0x6e], 0
mov esi, eax
je 0x43ebda
test esi, esi
js 0x43ebda
cmp esi, dword [ebx + 0x6a]
je 0x43ebda
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 0x43ff5d
mov eax, dword [ebx + 0x10e]
mov ecx, ebx
mov dword [ebp - 0x50], eax
lea eax, [ebp - 0x40]
push eax
push edi
call fcn.0043d6e0
cmp byte [ebx + 0x178], 0
mov dword [ebx + 0x10e], eax
je 0x43ecfb
cmp dword [ebx + 0xa2], 0xffffffff
je 0x43ecfb
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 0x43ec49
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 0x43ecf2
xor edi, edi
lea esp, [esp]
mov eax, dword [ebx + 0x8a]
cmp dword [eax + edi + 0xa0], 0
je 0x43ecad
mov ecx, dword [ebx + 0x1c]
push dword [eax + edi + 0x42]
mov ecx, dword [ecx]
call fcn.0042b7f0
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 0x43ec96
cmp edx, eax
jle 0x43ecbc
mov eax, dword [ebx + 0x8a]
mov ecx, dword [ebx + 0x1c]
push dword [eax + edi + 0x42]
mov ecx, dword [ecx]
call fcn.0042b7f0
add dword [ebp - 0x14], eax
inc esi
add edi, 0xb1
cmp esi, dword [ebx + 0x8e]
jl 0x43ec60
cmp esi, dword [ebx + 0x8e]
jge 0x43ecf2
push esi
push dword [ebx + 0x10e]
mov ecx, ebx
call fcn.0043d4a0
mov ecx, dword [ebx + 0x8a]
imul edx, esi, 0xb1
cmp dword [edx + ecx + 0x4e], 0
je 0x43ecea
cmp byte [eax], 0
je 0x43ecf2
mov dword [ebx + 0x179], esi
jmp 0x43ecfb
mov eax, dword [ebp - 0x50]
mov dword [ebx + 0x10e], eax
push 0
lea eax, [ebx + 0x9e]
push eax
push dword [ebx + 0x18]
call fcn.00424490
add esp, 0xc
cmp dword [ebx + 0x116], 0
je 0x43edb2
mov eax, dword [ebp - 0x68]
test al, 0xc
jne 0x43ed37
mov ecx, ebx
call fcn.0043c200
mov eax, dword [ebp - 0x68]
mov dword [ebx + 0x122], 0xffffffff
test al, 4
je 0x43ed7b
mov esi, dword [ebx + 0x122]
test esi, esi
js 0x43ed7b
mov eax, dword [ebx + 0x10e]
cmp eax, esi
jle 0x43ed53
mov edi, eax
jmp 0x43ed57
mov edi, esi
mov esi, eax
cmp esi, edi
jg 0x43ed9c
jmp 0x43ed60
push esi
mov ecx, ebx
call fcn.00440350
test eax, eax
jne 0x43ed74
push esi
mov ecx, ebx
call fcn.0043bb60
inc esi
cmp esi, edi
jle 0x43ed60
jmp 0x43ed9c
mov esi, dword [ebx + 0x10e]
mov ecx, ebx
push esi
call fcn.00440350
mov ecx, ebx
push esi
test eax, eax
je 0x43ed97
call fcn.00440ff0
jmp 0x43ed9c
call fcn.0043bb60
mov eax, dword [ebx + 0x10e]
mov dword [ebx + 0x122], eax
mov dword [ebx + 0x126], 0x201
cmp dword [ebx + 8], 0
je 0x43ff5d
cmp dword [ebx + 0x30], 0
je 0x43edc9
mov ecx, ebx
call fcn.0043c670
mov eax, dword [ebx + 8]
push ebx
call eax
add esp, 4
jmp 0x43ff5d
mov edi, dword [ebp - 0x50]
mov ecx, ebx
push edi
push esi
call fcn.0043d880
mov dword [ebp - 0x40], eax
cmp eax, 0xffffffff
je 0x43ee03
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 0x43ff5d
cmp dword [ebx + 0x58], 0
je 0x43ee41
lea eax, [ebp - 0x58]
mov dword [ebp - 0x58], 0
push eax
push edi
push esi
mov ecx, ebx
call fcn.0043d300
mov esi, eax
cmp esi, 0xffffffff
je 0x43ff5d
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 0x43ff5d
cmp dword [ebx + 0x12a], 0
je 0x43ff5d
cmp dword [ebx + 0xbe], 0
je 0x43ff5d
lea eax, [ebp - 0x40]
mov dword [ebp - 0x40], 0
push eax
push edi
push esi
mov ecx, ebx
call fcn.0043d300
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 0x43eef3
xor ecx, ecx
jmp 0x43eea0
mov esi, dword [ebx + 0x8a]
mov eax, dword [esi + ecx + 0xa4]
test eax, eax
js 0x43eee1
cmp eax, edi
jl 0x43eeb9
test edi, edi
jns 0x43eee1
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 0x43eee1
mov dword [esi + ecx + 0xa4], 0xffffffff
inc edx
add ecx, 0xb1
cmp edx, dword [ebx + 0x8e]
jl 0x43eea0
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 0x43ef2c
mov dword [eax + esi + 0xa8], 1
mov eax, dword [ebp - 0x58]
mov ecx, ebx
mov dword [ebx + 0x12e], eax
call fcn.00441880
jmp case.default.0x43ea36
movzx eax, word [edi + 0xc]
movzx ecx, word [edi + 0xe]
cwde
cmp eax, dword [ebx + 0x9e]
jle case.0x43e66b.278
cmp eax, dword [ebx + 0xa6]
jge case.0x43e66b.278
movsx esi, cx
cmp esi, dword [ebx + 0xa2]
jle case.0x43e66b.278
cmp esi, dword [ebx + 0xaa]
jge case.0x43e66b.278
mov ecx, dword [ebx + 0x1c]
push 0x39
mov ecx, dword [ecx]
call fcn.0042b860
add eax, dword [ebx + 0xa2]
cmp esi, eax
jle case.0x43e66b.278
mov ecx, dword [ebx + 0x10e]
test ecx, ecx
js case.0x43e66b.278
mov eax, dword [ebx + 0xbe]
dec eax
cmp ecx, eax
jle 0x43efc7
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.0x43e66b.278
cmp dword [ebx + 0x30], 0
je 0x43efde
mov ecx, ebx
call fcn.0043c670
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.004530e4
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 0x43f03d
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 0x43f6f2
cmp dword [ebx + 0x62], 0xffffffff
je 0x43f6f2
cmp dword [ebx + 0x72], 0
je 0x43f05e
push 1
push dword [ebx + 0x18]
call eax
mov ecx, dword [ebx + 0x1c]
push 0x39
movsx esi, si
mov ecx, dword [ecx]
call fcn.0042b860
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 0x43f094
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.0043d6e0
mov ecx, dword [ebx + 0xa2]
mov edi, eax
cmp esi, ecx
jg 0x43f256
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 0x43f59c
cmp edi, dword [ebx + 0xbe]
jge 0x43f59c
mov eax, dword [ebx + 0x62]
mov dword [ebp - 0x60], eax
cmp edi, eax
je 0x43f59c
cmp edi, dword [ebx + 0x6a]
je 0x43f59c
mov esi, dword [ebx + 0xe6]
push 1
push esi
call fcn.00453d4e
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.00453550
mov esi, dword [ebx + 0x34]
add esp, 0x14
mov dword [ebp - 0x40], 0
test esi, esi
je 0x43f16f
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 0x43f145
sub ecx, edx
push 1
lea eax, [ecx + 1]
push eax
call fcn.00453d4e
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 0x43f161
mov esi, dword [ebx + 0x8e]
push 4
push esi
call fcn.00453d4e
add esp, 8
mov edx, eax
cmp dword [ebx + 0xca], 0
mov dword [ebp - 0x50], edx
je 0x43f1ad
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.00453550
add esp, 0xc
cmp dword [ebx + 0xd2], 0
mov dword [ebp - 0x54], 0
je 0x43f1ed
mov esi, dword [ebx + 0x8e]
push 4
push esi
call fcn.00453d4e
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.00453550
add esp, 0x14
cmp dword [ebx + 0xda], 0
mov dword [ebp - 0x64], 0
je 0x43f223
mov esi, dword [ebx + 0x8e]
push 1
push esi
call fcn.00453d4e
push esi
imul esi, dword [ebp - 0x60]
mov dword [ebp - 0x64], eax
add esi, dword [ebx + 0xd6]
push esi
push eax
call fcn.00453550
add esp, 0x14
cmp dword [ebx + 0xe2], 0
mov dword [ebp - 0x68], 0
je 0x43f2b2
push 1
push 1
call fcn.00453d4e
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 0x43f2b5
mov edx, dword [ebx + 0xaa]
cmp esi, edx
jge 0x43f27d
mov ecx, dword [ebx + 0xbe]
lea eax, [ecx - 1]
cmp edi, eax
jne 0x43f0d6
lea eax, [ecx - 2]
cmp dword [ebx + 0x62], eax
je 0x43f0d6
sub esi, edx
inc esi
mov esi, dword [ebp - 0x4c]
jne 0x43f289
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 0x43f0d9
mov esi, dword [ebp - 0x60]
push 4
push 1
call fcn.00453d4e
mov ecx, dword [ebx + 0x112]
add esp, 8
mov dword [ebp - 0x60], eax
test ecx, ecx
je 0x43f2d9
cmp dword [ebx + 0x18], 0
je 0x43f2d9
mov ecx, dword [ecx + esi*4]
mov dword [eax], ecx
push esi
mov ecx, ebx
call fcn.00440e00
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.00452aa0
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.00453550
push dword [ebp - 0x58]
call fcn.00453d8e
add esp, 0x1c
cmp dword [ebx + 0xca], 1
jne 0x43f39d
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.00452aa0
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.00453550
add esp, 0x18
push dword [ebp - 0x50]
call fcn.0045294c
add esp, 4
cmp dword [ebx + 0xd2], 1
jne 0x43f410
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.00452aa0
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.00453550
push dword [ebp - 0x54]
call fcn.0045294c
add esp, 0x1c
cmp dword [ebx + 0xda], 1
jne 0x43f468
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.00452aa0
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.00453550
push esi
call fcn.0045294c
add esp, 0x1c
cmp dword [ebx + 0xe2], 1
jne 0x43f4a4
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.00452aa0
mov edx, dword [ebp - 0x68]
mov ecx, dword [ebx + 0xde]
push edx
mov al, byte [edx]
mov byte [edi + ecx], al
call fcn.0045294c
add esp, 0x10
mov eax, dword [ebx + 0x112]
test eax, eax
je 0x43f4ec
cmp dword [ebx + 0x18], 0
je 0x43f4ec
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.00452aa0
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 0x43f4ef
mov edx, dword [ebp - 0x60]
push edx
call fcn.0045294c
add esp, 4
cmp dword [ebx + 0x116], 0
je 0x43f508
mov ecx, ebx
call fcn.0043c200
mov eax, dword [ebx + 0x34]
test eax, eax
je 0x43f538
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.00452aa0
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.00441010
mov eax, dword [ebx + 0xbe]
dec eax
mov dword [ebx + 0x62], edi
cmp edi, eax
jne 0x43f57c
mov eax, dword [ebx + 0xb2]
test eax, eax
je 0x43f57c
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.00424490
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 0x43ff5d
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 0x43f5ca
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 0x43f99a
cmp eax, dword [ebx + 0xa6]
jge 0x43f99a
movsx esi, si
mov dword [ebp - 0x58], esi
cmp esi, dword [ebx + 0xa2]
jle 0x43f99a
cmp esi, dword [ebx + 0xaa]
jge 0x43f99a
mov ecx, dword [ebx + 0x1c]
push 0x39
mov ecx, dword [ecx]
call fcn.0042b860
add eax, dword [ebx + 0xa2]
cmp esi, eax
jle 0x43f9a1
xor ecx, ecx
xor edi, edi
mov dword [ebp - 0x40], ecx
cmp dword [ebx + 0x8e], ecx
jle 0x43f678
xor esi, esi
jmp 0x43f640
mov eax, dword [ebx + 0x8a]
cmp dword [eax + esi + 0xa0], 1
jne 0x43f666
mov ecx, dword [ebx + 0x1c]
push dword [eax + esi + 0x42]
mov ecx, dword [ecx]
call fcn.0042b7f0
mov ecx, dword [ebp - 0x40]
add ecx, eax
mov dword [ebp - 0x40], ecx
inc edi
add esi, 0xb1
cmp edi, dword [ebx + 0x8e]
jl 0x43f640
mov esi, dword [ebp - 0x58]
mov edx, dword [ebp - 0x5c]
movsx eax, dx
cmp eax, ecx
jge 0x43f9a1
mov ecx, dword [ebx + 0x1c]
push 0x39
mov ecx, dword [ecx]
call fcn.0042b860
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 0x43f6ba
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.0043d6e0
mov ecx, eax
mov eax, dword [ebx + 0xbe]
test eax, eax
jle 0x43f970
cmp ecx, eax
jge 0x43f970
xor eax, eax
mov edx, 1
test ecx, ecx
cmovns eax, edx
jmp 0x43f972
cmp dword [ebx + 0x54], 0xffffffff
jne 0x43f70a
push esi
push edi
mov ecx, ebx
call fcn.0043d880
cmp eax, 0xffffffff
jne 0x43f83c
cmp dword [ebx + 0x50], 0xffffffff
jne 0x43f83c
push 0x7f00
push 0
call dword [sym.imp.USER32.dll_LoadCursorA]
cmp dword [ebx + 0x54], 0xffffffff
mov dword [ebx + 0x7e], eax
je 0x43f59f
push esi
push edi
mov ecx, ebx
call fcn.0043d2e0
mov edx, eax
mov dword [ebp - 0x54], edx
cmp edx, 0xffffffff
je 0x43f59f
mov eax, dword [ebx + 0x54]
mov dword [ebp - 0x40], eax
cmp edx, eax
je 0x43f59f
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 0x43f7a8
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.00452aa0
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 0x43f7e2
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.00452aa0
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.00424490
add esp, 0xc
push dword [ebx + 0x18]
call dword [sym.imp.USER32.dll_UpdateWindow]
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x43f599
push dword [ebp - 0x54]
push dword [ebp - 0x40]
push ebx
call eax
add esp, 0xc
jmp 0x43f599
call fcn.0040b290
cmp dword [ebx + 0x50], 0xffffffff
mov dword [ebx + 0x7e], eax
je 0x43f59f
movsx ecx, word [ebx + 0x5c]
movsx eax, di
sub ecx, eax
push ecx
mov ecx, dword [ebx + 0x1c]
mov ecx, dword [ecx]
call fcn.00427bf0
mov dword [ebp - 0x40], eax
mov edi, 1
test eax, eax
jle 0x43f8b7
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 0x43f8b7
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.00427bf0
cmp esi, eax
jle 0x43f8e8
test edi, edi
mov edi, dword [ebp - 0x5c]
je 0x43f921
mov word [ebx + 0x5c], di
jmp 0x43f921
test edi, edi
je 0x43f910
mov ecx, dword [ebx + 0x1c]
push 0x10
mov ecx, dword [ecx]
call fcn.00427bf0
mov ecx, dword [ebx + 0x1c]
sub eax, esi
push eax
mov ecx, dword [ecx]
call fcn.0042b7f0
mov edi, dword [ebp - 0x5c]
add eax, edi
mov word [ebx + 0x5c], ax
jmp 0x43f913
mov edi, dword [ebp - 0x5c]
mov ecx, dword [ebx + 0x1c]
push 0x10
mov ecx, dword [ecx]
call fcn.00427bf0
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 0x43f94d
cmp eax, 0x10
jne 0x43f954
mov ecx, ebx
call fcn.004410b0
push 0
lea eax, [ebx + 0x9e]
push eax
push dword [ebx + 0x18]
call fcn.00424490
mov esi, dword [ebp - 0x4c]
add esp, 0xc
jmp 0x43f59f
xor eax, eax
cmp dword [ebx + 0x30], 0
je 0x43f981
cmp ecx, dword [ebx + 0x2c]
je 0x43ff5d
test eax, eax
je 0x43f9a1
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 0x43f9a1
mov dword [ebx + 0x2c], 0xffffffff
cmp dword [ebp - 0x50], 0
je 0x43ff5d
mov ecx, ebx
call fcn.0043c670
jmp 0x43ff5d
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 0x43f9f9
push 0
lea eax, [ebx + 0x9e]
mov dword [ebx + 0x54], 0xffffffff
push eax
push dword [ebx + 0x18]
call fcn.00424490
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 0x43fe84
cwde
cmp eax, dword [ebx + 0xaa]
jg 0x43fa4c
cmp eax, dword [ebx + 0xa2]
jl 0x43fa4c
movsx eax, si
cmp eax, dword [ebx + 0x9e]
jl 0x43fa4c
cmp eax, dword [ebx + 0xa6]
jg 0x43fa4c
mov eax, dword [ebx + 0x10]
test eax, eax
je 0x43fe59
mov ecx, dword [ebx + 0x66]
cmp ecx, edi
je 0x43fe59
push edi
push ecx
push ebx
call eax
add esp, 0xc
jmp 0x43fe59
mov esi, dword [ebx + 0xe6]
push 1
push esi
call fcn.00453d4e
push esi
imul esi, edi
mov dword [ebp - 0x60], eax
add esi, dword [ebx + 0xc2]
push esi
push eax
call fcn.00453550
mov esi, dword [ebx + 0x34]
add esp, 0x14
mov dword [ebp - 0x68], 0
test esi, esi
je 0x43fabe
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 0x43fa90
sub ecx, edx
push 1
lea eax, [ecx + 1]
push eax
call fcn.00453d4e
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 0x43fab0
mov esi, dword [ebx + 0x8e]
push 4
push esi
call fcn.00453d4e
add esp, 8
mov edi, eax
cmp dword [ebx + 0xca], 0
mov dword [ebp - 0x40], edi
je 0x43fafe
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.00453550
add esp, 0xc
cmp dword [ebx + 0xd2], 0
mov dword [ebp - 0x58], 0
je 0x43fb42
mov esi, dword [ebx + 0x8e]
push 4
push esi
call fcn.00453d4e
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.00453550
add esp, 0x14
cmp dword [ebx + 0xda], 0
mov dword [ebp - 0x50], 0
je 0x43fb7c
mov esi, dword [ebx + 0x8e]
push 1
push esi
call fcn.00453d4e
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.00453550
add esp, 0x14
cmp dword [ebx + 0xe2], 0
mov dword [ebp - 0x64], 0
je 0x43fbab
push 1
push 1
call fcn.00453d4e
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.00453d4e
mov edi, eax
add esp, 8
mov eax, dword [ebx + 0x112]
test eax, eax
je 0x43fbd1
cmp dword [ebx + 0x18], 0
je 0x43fbd1
mov ecx, dword [ebx + 0x62]
mov eax, dword [eax + ecx*4]
mov dword [edi], eax
push dword [ebx + 0x62]
mov ecx, ebx
call fcn.00440e00
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.00452aa0
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.00453550
push esi
call fcn.00453d8e
add esp, 0x1c
cmp dword [ebx + 0xca], 1
jne 0x43fca6
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.00452aa0
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.00453550
add esp, 0x18
jmp 0x43fca9
mov esi, dword [ebp - 0x40]
push esi
call fcn.0045294c
add esp, 4
cmp dword [ebx + 0xd2], 1
jne 0x43fd22
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.00452aa0
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.00453550
push esi
call fcn.0045294c
add esp, 0x1c
cmp dword [ebx + 0xda], 1
jne 0x43fd83
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.00452aa0
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.00453550
push esi
call fcn.0045294c
add esp, 0x1c
cmp dword [ebx + 0xe2], 1
jne 0x43fdc4
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.00452aa0
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.0045294c
add esp, 0x10
mov eax, dword [ebx + 0x112]
test eax, eax
je 0x43fe0d
cmp dword [ebx + 0x18], 0
je 0x43fe0d
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.00452aa0
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.0045294c
mov eax, dword [ebx + 0x34]
add esp, 4
test eax, eax
je 0x43fe4c
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.00452aa0
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.00441010
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.00424490
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.0043d880
cmp eax, 0xffffffff
je 0x43fea7
call fcn.0040b290
mov dword [ebx + 0x7e], eax
jmp 0x43ff5d
push 0x7f00
push 0
call dword [sym.imp.USER32.dll_LoadCursorA]
mov dword [ebx + 0x7e], eax
jmp 0x43ff5d
mov ecx, dword [ebx + 0xae]
mov edx, dword [sym.imp.USER32.dll_SetWindowLongA]
cmp eax, ecx
jne 0x43ff06
cmp dword [edi + 4], 2
jne 0x43fee7
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 0x43ff5d
cmp dword [edi + 4], 2
jne 0x43ff2b
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.004530e4
mov esp, ebp
pop ebp
ret 0xc