Function at 0x43c710
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 0x43c755
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.0x43d31b.278
mov eax, dword [ebx]
test eax, eax
je 0x43c772
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.0x43d31b.278
cmp dword [edi + 4], 0x201
jne 0x43c7cf
push dword [ebx + 0x18]
mov ecx, dword [ebx + 0x1c]
call fcn.00430040
mov ecx, dword [ebx + 0x1c]
mov esi, eax
cmp dword [ecx + 8], esi
je 0x43c7c9
push esi
call fcn.00438150
mov eax, dword [ebx + 0x1c]
cmp dword [eax + 8], esi
jne 0x43c7b3
cmp dword [eax + 0xfa], 0
je 0x43c7c9
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.0x43d31b.278
mov eax, dword [edi]
cmp eax, dword [ebx + 0x18]
jne 0x43eb6c
mov eax, dword [edi + 4]
mov esi, dword [sym.imp.USER32.dll_SendMessageA]
cmp eax, 0x20a
je 0x43c806
cmp eax, dword [0x4ad3a4]
jne 0x43c8e4
cmp eax, 0x20a
jne 0x43c80c
movzx eax, word [edi + 0xa]
jmp 0x43c810
movzx eax, word [edi + 8]
mov ecx, dword [0x4acd24]
cwde
add ecx, eax
mov dword [0x4acd24], ecx
cmp ecx, 0x78
jl 0x43c87c
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 0x43c8da
xor edi, edi
mov eax, dword [ebx + 0xb2]
test eax, eax
je 0x43c860
push eax
push 0
push 0x115
push dword [ebx + 0x18]
call esi
mov ecx, dword [0x4acd24]
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 0x43c843
jmp 0x43c8d7
cmp ecx, 0xffffff88
jg 0x43c8e4
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 0x43c8da
xor edi, edi
lea esp, [esp]
mov eax, dword [ebx + 0xb2]
test eax, eax
je 0x43c8bd
push eax
push 1
push 0x115
push dword [ebx + 0x18]
call esi
mov ecx, dword [0x4acd24]
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 0x43c8a0
mov edi, dword [ebp - 0x54]
mov dword [0x4acd24], 0
mov eax, dword [edi + 4]
cmp eax, 0x113
ja 0x43d304
je 0x43cf1b
sub eax, 2
cmp eax, 0xfe
ja case.0x43d31b.278
movzx eax, byte [eax + 0x43ec44]
jmp dword [eax*4 + 0x43ec2c]
mov eax, dword [edi + 8]
add eax, 0xfffffff3
cmp eax, 0x6e
ja case.0x43c92a.14
movzx eax, byte [eax + 0x43ed74]
jmp dword [eax*4 + 0x43ed44]
cmp dword [ebx + 0x30], 0
je 0x43c93e
mov ecx, ebx
call fcn.0043b330
mov ecx, ebx
call fcn.0043ef20
jmp case.0x43c92a.14
cmp dword [ebx + 0x30], 0
je 0x43c957
mov ecx, ebx
call fcn.0043b330
mov ecx, dword [ebx + 0x1c]
push dword [ebx + 0x14]
push ecx
mov ecx, dword [ecx]
call fcn.00478a20
mov eax, dword [ebp - 0x48]
mov dword [eax], 0
jmp case.0x43c92a.14
cmp byte [ebx + 0x17d], 0
je 0x43c991
mov ecx, ebx
call fcn.0043af10
mov eax, dword [ebp - 0x48]
mov dword [eax], 0
jmp case.0x43c92a.14
cmp dword [ebx + 0x10e], 0
jl case.0x43c92a.14
cmp dword [ebx + 0x30], 0
je 0x43c9ab
mov ecx, ebx
call fcn.0043b330
mov eax, dword [ebx + 0xbe]
dec eax
cmp dword [ebx + 0x10e], eax
jle 0x43c9d1
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.0x43c92a.14
push ebx
call eax
add esp, 4
jmp case.0x43c92a.14
mov eax, dword [ebx + 0xae]
test eax, eax
je case.0x43c92a.14
push eax
push 0
push 0x114
push dword [ebx + 0x18]
call esi
jmp case.0x43c92a.14
mov eax, dword [ebx + 0xae]
test eax, eax
je case.0x43c92a.14
push eax
push 1
push 0x114
push dword [ebx + 0x18]
call esi
jmp case.0x43c92a.14
mov eax, dword [ebx + 0x10e]
test eax, eax
jle case.0x43c92a.14
mov esi, dword [ebx + 0x116]
dec eax
push eax
mov ecx, ebx
mov dword [ebx + 0x116], 0
call fcn.0043fcc0
mov dword [ebx + 0x116], esi
test esi, esi
je case.0x43c92a.14
cmp dword [ebx + 0x126], 0x100
je 0x43ca83
mov esi, dword [ebx + 0x122]
mov ecx, ebx
call fcn.0043aec0
push esi
mov ecx, ebx
mov dword [ebx + 0x122], esi
call fcn.0043a820
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
cwde
test eax, 0x10000
jne 0x43ca9a
mov ecx, ebx
call fcn.0043aec0
mov esi, dword [ebx + 0x10e]
mov ecx, ebx
push esi
call fcn.0043f000
mov ecx, ebx
test eax, eax
jne 0x43cab6
push esi
call fcn.0043a820
jmp 0x43cac1
push dword [ebx + 0x122]
call fcn.0043fca0
mov eax, dword [ebx + 0x10e]
mov dword [ebx + 0x122], eax
mov dword [ebx + 0x126], 0x100
jmp case.0x43c92a.14
mov eax, dword [ebx + 0xbe]
mov ecx, dword [ebx + 0x10e]
dec eax
cmp ecx, eax
jge case.0x43c92a.14
mov esi, dword [ebx + 0x116]
lea eax, [ecx + 1]
push eax
mov ecx, ebx
mov dword [ebx + 0x116], 0
call fcn.0043fcc0
mov dword [ebx + 0x116], esi
test esi, esi
je case.0x43c92a.14
cmp dword [ebx + 0x126], 0x100
je 0x43cb41
mov esi, dword [ebx + 0x122]
mov ecx, ebx
call fcn.0043aec0
push esi
mov ecx, ebx
mov dword [ebx + 0x122], esi
call fcn.0043a820
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
cwde
test eax, 0x10000
jne 0x43cb58
mov ecx, ebx
call fcn.0043aec0
mov esi, dword [ebx + 0x10e]
mov ecx, ebx
push esi
call fcn.0043f000
mov ecx, ebx
test eax, eax
jne 0x43cb74
push esi
call fcn.0043a820
jmp 0x43cb7f
push dword [ebx + 0x122]
call fcn.0043fca0
mov esi, dword [ebx + 0x10e]
mov ecx, ebx
push esi
call fcn.0043ef60
test eax, eax
je 0x43cbd2
cmp dword [ebx + 0x164], 0
jne 0x43cbd2
push esi
mov ecx, ebx
call fcn.0043fca0
mov eax, dword [ebx + 0x10e]
mov ecx, ebx
dec eax
push eax
call fcn.0043fcc0
cmp dword [ebx + 0x10e], 0
jge 0x43cbd8
push 0
mov ecx, ebx
call fcn.0043fcc0
mov dword [ebx + 0x126], 0x100
jmp case.0x43c92a.14
mov dword [ebx + 0x122], esi
mov dword [ebx + 0x126], 0x100
jmp case.0x43c92a.14
mov eax, dword [ebx + 0xb2]
test eax, eax
je case.0x43c92a.14
push eax
push 2
push 0x115
push dword [ebx + 0x18]
call esi
jmp case.0x43c92a.14
mov eax, dword [ebx + 0xb2]
test eax, eax
je case.0x43c92a.14
push eax
push 3
push 0x115
push dword [ebx + 0x18]
call esi
jmp case.0x43c92a.14
cmp dword [ebx + 0x116], 0
je 0x43ccd4
cmp dword [ebx + 0x126], 0x100
mov esi, dword [ebx + 0x122]
jne 0x43cc8d
mov eax, dword [ebx + 0xbe]
lea edi, [eax - 1]
test edi, edi
js 0x43cc69
push edi
mov ecx, ebx
call fcn.0043f000
test eax, eax
cmovne esi, edi
dec edi
jns 0x43cc53
mov eax, dword [ebx + 0xbe]
cmp esi, dword [ebx + 0x122]
jne 0x43cc8d
xor edi, edi
test eax, eax
jle 0x43cc8d
push edi
mov ecx, ebx
call fcn.0043f000
test eax, eax
cmovne esi, edi
inc edi
cmp edi, dword [ebx + 0xbe]
jl 0x43cc77
mov ecx, ebx
call fcn.0043aec0
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
cwde
test eax, 0x10000
je 0x43ccb5
test esi, esi
jle 0x43ccb5
push esi
mov ecx, ebx
call fcn.0043a820
dec esi
test esi, esi
jg 0x43cca8
push 0
mov ecx, ebx
call fcn.0043fcc0
mov eax, dword [ebx + 0x10e]
mov dword [ebx + 0x122], eax
mov dword [ebx + 0x126], 0x100
mov eax, dword [ebx + 0xb2]
test eax, eax
je 0x43ce46
push 1
push 1
push 2
push eax
jmp 0x43ce40
cmp dword [ebx + 0x116], 0
je 0x43ce18
cmp dword [ebx + 0x126], 0x100
mov esi, dword [ebx + 0x122]
jne 0x43cd57
mov eax, dword [ebx + 0xbe]
xor edi, edi
test eax, eax
jle 0x43cd38
lea esp, [esp]
push edi
mov ecx, ebx
call fcn.0043f000
test eax, eax
mov eax, dword [ebx + 0xbe]
cmovne esi, edi
inc edi
cmp edi, eax
jl 0x43cd20
cmp esi, dword [ebx + 0x122]
jne 0x43cd57
lea edi, [eax - 1]
test edi, edi
js 0x43cd57
push edi
mov ecx, ebx
call fcn.0043f000
test eax, eax
cmovne esi, edi
dec edi
jns 0x43cd47
mov ecx, ebx
call fcn.0043aec0
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
cwde
test eax, 0x10000
je 0x43cdc7
mov eax, dword [ebx + 0xbe]
mov edi, esi
dec eax
cmp esi, eax
jge 0x43cd94
jmp 0x43cd80
push edi
mov ecx, ebx
call fcn.0043a820
mov eax, dword [ebx + 0xbe]
inc edi
dec eax
cmp edi, eax
jl 0x43cd80
mov edi, dword [ebx + 0xbe]
mov ecx, ebx
dec edi
push edi
call fcn.0043ef60
test eax, eax
je 0x43cdfa
cmp dword [ebx + 0x164], 0
jne 0x43cdfa
cmp edi, esi
jle 0x43ce02
push edi
mov ecx, ebx
call fcn.0043ef60
test eax, eax
je 0x43cdfa
dec edi
cmp edi, esi
jg 0x43cdb4
jmp 0x43ce02
mov edi, dword [ebx + 0xbe]
mov ecx, ebx
dec edi
push edi
call fcn.0043ef60
test eax, eax
je 0x43cdfa
cmp dword [ebx + 0x164], 0
jne 0x43cdfa
cmp edi, esi
jl 0x43ce02
push edi
mov ecx, ebx
call fcn.0043ef60
test eax, eax
je 0x43cdfa
dec edi
cmp edi, esi
jge 0x43cde7
jmp 0x43ce02
push edi
mov ecx, ebx
call fcn.0043fcc0
mov eax, dword [ebx + 0x10e]
mov dword [ebx + 0x122], eax
mov dword [ebx + 0x126], 0x100
mov eax, dword [ebx + 0xb2]
test eax, eax
je 0x43ce46
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.00423670
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.00452f44
mov esp, ebp
pop ebp
ret 0xc
mov eax, dword [ebx + 0x18]
cmp eax, dword [edi + 8]
jne case.0x43d31b.278
cmp word [edi + 0xc], 0
je case.0x43d31b.278
push dword [ebx + 0x7e]
call dword [sym.imp.USER32.dll_SetCursor]
mov ecx, dword [ebp - 0x4c]
mov dword [ecx], 1
jmp 0x43ec0d
mov ecx, ebx
call fcn.0043f1e0
mov ecx, dword [ebp - 0x4c]
mov dword [ecx], 0
jmp 0x43ec0d
push dword [ebx + 0x18]
mov ecx, dword [ebx + 0x1c]
call fcn.00430170
cmp eax, 0xffffffff
je 0x43ced6
mov ecx, dword [ebx + 0x1c]
push eax
call fcn.00437960
mov ecx, dword [ebp - 0x4c]
mov dword [ecx], 0
jmp 0x43ec0d
mov eax, dword [ebx + 0xae]
mov esi, dword [sym.imp.USER32.dll_DestroyWindow]
test eax, eax
je 0x43cef7
push eax
call esi
mov eax, dword [ebx + 0xb2]
test eax, eax
je case.0x43d31b.278
push eax
call esi
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00452f44
mov esp, ebp
pop ebp
ret 0xc
cmp dword [ebx + 0x28], 0
je 0x43d2aa
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.0x43d31b.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.0x43d31b.278
cmp eax, dword [ebx + 0xa6]
jge case.0x43d31b.278
movsx edi, word [ebp - 0x6c]
mov dword [ebp - 0x40], edi
cmp edi, dword [ebx + 0xa2]
jle case.0x43d31b.278
cmp edi, dword [ebx + 0xaa]
jge case.0x43d31b.278
mov ecx, dword [ebx + 0x1c]
push 0x39
mov ecx, dword [ecx]
call fcn.0042a8f0
add eax, dword [ebx + 0xa2]
cmp edi, eax
jle case.0x43d31b.278
xor ecx, ecx
xor esi, esi
mov dword [ebp - 0x54], ecx
cmp dword [ebx + 0x8e], ecx
jle 0x43d018
xor edi, edi
jmp 0x43cfe0
mov eax, dword [ebx + 0x8a]
cmp dword [eax + edi + 0xa0], 1
jne 0x43d006
mov ecx, dword [ebx + 0x1c]
push dword [eax + edi + 0x42]
mov ecx, dword [ecx]
call fcn.0042a880
mov ecx, dword [ebp - 0x54]
add ecx, eax
mov dword [ebp - 0x54], ecx
inc esi
add edi, 0xb1
cmp esi, dword [ebx + 0x8e]
jl 0x43cfe0
mov edi, dword [ebp - 0x40]
cmp dword [ebp - 0x50], ecx
jge case.0x43d31b.278
mov ecx, dword [ebx + 0x1c]
push 0x39
mov ecx, dword [ecx]
call fcn.0042a8f0
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 0x43d055
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.0043c3b0
mov dword [ebx + 0x2c], eax
cmp eax, dword [ebx + 0xbe]
jge 0x43d290
mov ecx, dword [ebx + 0x34]
test ecx, ecx
je 0x43d290
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0x60], eax
test eax, eax
je 0x43d290
cmp byte [eax], 0
je 0x43d290
mov esi, eax
lea ecx, [esi + 1]
lea ebx, [ebx]
mov al, byte [esi]
inc esi
test al, al
jne 0x43d0a0
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.00427560
push eax
push edi
call dword [sym.imp.GDI32.dll_SelectObject]
xor edi, edi
test esi, esi
je 0x43d15f
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 0x43d10e
lea eax, [esi - 1]
cmp edi, eax
jne 0x43d154
cmp dl, 0xa
je 0x43d154
mov edx, dword [ebp - 0x5c]
mov eax, edi
sub eax, edx
jne 0x43d124
lea eax, [ebp - 0xc]
push eax
push 1
push 0x4865b0
jmp 0x43d12f
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 0x43d0f4
mov dword [ebp - 0x68], ebx
mov ebx, dword [ebp - 0x58]
mov ecx, dword [ebx + 0x1c]
call fcn.0042f3f0
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 0x43d1c3
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 0x43d1e3
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 0x43d1e6
mov edi, dword [ebp - 0x50]
push dword [ebp - 0x60]
mov ecx, dword [ebp - 0x5c]
call fcn.00439810
push dword [ebx + 0x1c]
mov ecx, dword [ebp - 0x5c]
call fcn.00438f40
mov ecx, dword [ebp - 0x5c]
push 0
push 0
call fcn.004397e0
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.00452f44
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.00452f44
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.00452f44
mov esp, ebp
pop ebp
ret 0xc
sub eax, 0x114
cmp eax, 0xef
ja case.0x43d31b.278
movzx eax, byte [eax + 0x43ee00]
jmp dword [eax*4 + 0x43ede4]
cmp dword [ebx + 0x30], 0
je 0x43d32f
mov ecx, ebx
call fcn.0043b330
push dword [ebx + 0x18]
mov ecx, dword [ebx + 0x1c]
call fcn.00430040
mov ecx, dword [ebx + 0x1c]
push eax
call fcn.00438150
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.0x43d6e6
jmp dword [eax*4 + 0x43eef0]
mov eax, dword [ebp - 0xc]
push 1
inc eax
push eax
jmp 0x43d649
mov eax, dword [ebp - 0xc]
push 1
dec eax
push eax
jmp 0x43d649
mov eax, dword [ebp - 0xc]
mov edi, eax
mov edx, dword [ebp - 0x10]
sub edi, edx
cmp dword [ebx + 0x116], 0
je 0x43d4d1
cmp dword [ebx + 0x126], 0x115
je 0x43d4d1
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 0x43d40e
cmp dword [ebx + 0x11e], 1
jg 0x43d41e
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
cwde
test eax, 0x10000
jne 0x43d431
mov esi, dword [ebx + 0x122]
mov ecx, ebx
call fcn.0043aec0
mov dword [ebx + 0x122], esi
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
cwde
test eax, 0x10000
je 0x43d4af
mov esi, dword [ebx + 0x122]
mov byte [ebp - 0x41], 0
cmp esi, edi
jle 0x43d489
nop
push esi
mov ecx, ebx
call fcn.0043f000
mov ecx, ebx
push esi
test eax, eax
jne 0x43d47b
call fcn.0043a820
cmp byte [ebp - 0x41], 0
je 0x43d475
lea eax, [esi + 1]
mov ecx, ebx
push eax
call fcn.0043a820
mov byte [ebp - 0x41], 0
jmp 0x43d484
call fcn.0043fca0
mov byte [ebp - 0x41], 1
dec esi
cmp esi, edi
jg 0x43d450
mov esi, dword [ebx + 0x122]
mov ecx, ebx
lea eax, [esi - 1]
push eax
call fcn.0043f000
test eax, eax
jne 0x43d4a7
cmp esi, 1
jne 0x43d4af
test edi, edi
jne 0x43d4af
push esi
mov ecx, ebx
call fcn.0043a820
push edi
mov ecx, ebx
call fcn.0043fcc0
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 0x43d649
mov edi, dword [ebp - 0xc]
mov edx, dword [ebp - 0x10]
add edi, edx
cmp dword [ebx + 0x116], 0
je 0x43d63f
cmp dword [ebx + 0x126], 0x115
je 0x43d63f
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 0x43d532
cmp dword [ebx + 0x11e], 1
jg 0x43d542
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
cwde
test eax, 0x10000
jne 0x43d555
mov esi, dword [ebx + 0x122]
mov ecx, ebx
call fcn.0043aec0
mov dword [ebx + 0x122], esi
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
cwde
test eax, 0x10000
je 0x43d5f1
mov esi, dword [ebx + 0x122]
mov byte [ebp - 0x41], 0
cmp esi, edi
jge 0x43d5c0
push esi
mov ecx, ebx
call fcn.0043f000
mov ecx, ebx
test eax, eax
jne 0x43d5a2
push esi
call fcn.0043a820
cmp byte [ebp - 0x41], 0
je 0x43d59c
lea eax, [esi - 1]
mov ecx, ebx
push eax
call fcn.0043a820
mov byte [ebp - 0x41], 0
jmp 0x43d5bb
lea eax, [esi + 1]
push eax
call fcn.0043ef60
test eax, eax
jne 0x43d5bb
push esi
mov ecx, ebx
call fcn.0043fca0
mov byte [ebp - 0x41], 1
inc esi
cmp esi, edi
jl 0x43d577
mov esi, dword [ebx + 0x122]
mov ecx, ebx
lea eax, [esi + 1]
push eax
call fcn.0043f000
test eax, eax
jne 0x43d5e9
mov ecx, dword [ebx + 0xbe]
lea eax, [ecx - 2]
cmp esi, eax
jne 0x43d5f1
lea eax, [ecx - 1]
cmp edi, eax
jne 0x43d5f1
push esi
mov ecx, ebx
call fcn.0043a820
push edi
mov ecx, ebx
call fcn.0043ef60
test eax, eax
je 0x43d61a
lea esi, [edi - 1]
cmp edi, dword [ebx + 0x122]
jle 0x43d622
push esi
mov ecx, ebx
call fcn.0043ef60
test eax, eax
je 0x43d617
dec esi
jmp 0x43d608
push esi
jmp 0x43d61b
push edi
mov ecx, ebx
call fcn.0043fcc0
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 0x43d649
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.00423670
add esp, 0xc
jmp 0x43ec0d
cmp dword [ebx + 0x30], 0
je 0x43d678
mov ecx, ebx
call fcn.0043b330
push dword [ebx + 0x18]
mov ecx, dword [ebx + 0x1c]
call fcn.00430040
mov ecx, dword [ebx + 0x1c]
push eax
call fcn.00438150
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.0x43d6e6
jmp dword [eax*4 + 0x43ef08]
mov ecx, dword [ebx + 0x1c]
push 1
mov ecx, dword [ecx]
call fcn.00426d80
add eax, dword [ebp - 0xc]
movzx eax, ax
push 1
cwde
push eax
jmp 0x43d649
mov ecx, dword [ebx + 0x1c]
push 1
mov ecx, dword [ecx]
call fcn.00426d80
mov ecx, dword [ebp - 0xc]
sub ecx, eax
movzx eax, cx
push 1
cwde
push eax
jmp 0x43d649
mov eax, dword [ebp - 0xc]
sub eax, dword [ebp - 0x10]
push 1
cwde
push eax
jmp 0x43d649
mov eax, dword [ebp - 0x10]
add eax, dword [ebp - 0xc]
push 1
cwde
push eax
jmp 0x43d649
mov eax, dword [ebp - 0x58]
push 1
cwde
push eax
jmp 0x43d649
cmp byte [ebx + 0x17d], 0
je 0x43d764
mov ecx, ebx
call fcn.0043af10
jmp 0x43ec0d
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 0x43ec0d
cmp eax, dword [ebx + 0xa6]
jge 0x43ec0d
movsx edi, cx
mov dword [ebp - 0x40], edi
cmp edi, dword [ebx + 0xa2]
jle 0x43ec0d
cmp edi, dword [ebx + 0xaa]
jge 0x43ec0d
mov ecx, dword [ebx + 0x1c]
push 0x39
mov ecx, dword [ecx]
call fcn.0042a8f0
add eax, dword [ebx + 0xa2]
cmp edi, eax
jle 0x43da87
xor ecx, ecx
xor esi, esi
mov dword [ebp - 0x50], ecx
cmp dword [ebx + 0x8e], ecx
jle 0x43d818
xor edi, edi
lea esp, [esp]
mov eax, dword [ebx + 0x8a]
cmp dword [eax + edi + 0xa0], 1
jne 0x43d806
mov ecx, dword [ebx + 0x1c]
push dword [eax + edi + 0x42]
mov ecx, dword [ecx]
call fcn.0042a880
mov ecx, dword [ebp - 0x50]
add ecx, eax
mov dword [ebp - 0x50], ecx
inc esi
add edi, 0xb1
cmp esi, dword [ebx + 0x8e]
jl 0x43d7e0
mov edi, dword [ebp - 0x40]
mov edx, dword [ebp - 0x64]
movsx eax, dx
cmp eax, ecx
jge 0x43ec0d
mov ecx, dword [ebx + 0x1c]
push 0x39
mov ecx, dword [ecx]
call fcn.0042a8f0
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 0x43d859
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.0043c3b0
cmp dword [ebx + 0x6e], 0
mov esi, eax
je 0x43d88a
test esi, esi
js 0x43d88a
cmp esi, dword [ebx + 0x6a]
je 0x43d88a
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 0x43ec0d
mov eax, dword [ebx + 0x10e]
mov ecx, ebx
mov dword [ebp - 0x50], eax
lea eax, [ebp - 0x40]
push eax
push edi
call fcn.0043c3b0
cmp byte [ebx + 0x178], 0
mov dword [ebx + 0x10e], eax
je 0x43d9ab
cmp dword [ebx + 0xa2], 0xffffffff
je 0x43d9ab
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 0x43d8f9
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 0x43d9a2
xor edi, edi
lea esp, [esp]
mov eax, dword [ebx + 0x8a]
cmp dword [eax + edi + 0xa0], 0
je 0x43d95d
mov ecx, dword [ebx + 0x1c]
push dword [eax + edi + 0x42]
mov ecx, dword [ecx]
call fcn.0042a880
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 0x43d946
cmp edx, eax
jle 0x43d96c
mov eax, dword [ebx + 0x8a]
mov ecx, dword [ebx + 0x1c]
push dword [eax + edi + 0x42]
mov ecx, dword [ecx]
call fcn.0042a880
add dword [ebp - 0x14], eax
inc esi
add edi, 0xb1
cmp esi, dword [ebx + 0x8e]
jl 0x43d910
cmp esi, dword [ebx + 0x8e]
jge 0x43d9a2
push esi
push dword [ebx + 0x10e]
mov ecx, ebx
call fcn.0043c170
mov ecx, dword [ebx + 0x8a]
imul edx, esi, 0xb1
cmp dword [edx + ecx + 0x4e], 0
je 0x43d99a
cmp byte [eax], 0
je 0x43d9a2
mov dword [ebx + 0x179], esi
jmp 0x43d9ab
mov eax, dword [ebp - 0x50]
mov dword [ebx + 0x10e], eax
push 0
lea eax, [ebx + 0x9e]
push eax
push dword [ebx + 0x18]
call fcn.00423670
add esp, 0xc
cmp dword [ebx + 0x116], 0
je 0x43da62
mov eax, dword [ebp - 0x68]
test al, 0xc
jne 0x43d9e7
mov ecx, ebx
call fcn.0043aec0
mov eax, dword [ebp - 0x68]
mov dword [ebx + 0x122], 0xffffffff
test al, 4
je 0x43da2b
mov esi, dword [ebx + 0x122]
test esi, esi
js 0x43da2b
mov eax, dword [ebx + 0x10e]
cmp eax, esi
jle 0x43da03
mov edi, eax
jmp 0x43da07
mov edi, esi
mov esi, eax
cmp esi, edi
jg 0x43da4c
jmp 0x43da10
push esi
mov ecx, ebx
call fcn.0043f000
test eax, eax
jne 0x43da24
push esi
mov ecx, ebx
call fcn.0043a820
inc esi
cmp esi, edi
jle 0x43da10
jmp 0x43da4c
mov esi, dword [ebx + 0x10e]
mov ecx, ebx
push esi
call fcn.0043f000
mov ecx, ebx
push esi
test eax, eax
je 0x43da47
call fcn.0043fca0
jmp 0x43da4c
call fcn.0043a820
mov eax, dword [ebx + 0x10e]
mov dword [ebx + 0x122], eax
mov dword [ebx + 0x126], 0x201
cmp dword [ebx + 8], 0
je 0x43ec0d
cmp dword [ebx + 0x30], 0
je 0x43da79
mov ecx, ebx
call fcn.0043b330
mov eax, dword [ebx + 8]
push ebx
call eax
add esp, 4
jmp 0x43ec0d
mov edi, dword [ebp - 0x50]
mov ecx, ebx
push edi
push esi
call fcn.0043c550
mov dword [ebp - 0x40], eax
cmp eax, 0xffffffff
je 0x43dab3
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 0x43ec0d
cmp dword [ebx + 0x58], 0
je 0x43daf1
lea eax, [ebp - 0x58]
mov dword [ebp - 0x58], 0
push eax
push edi
push esi
mov ecx, ebx
call fcn.0043bfc0
mov esi, eax
cmp esi, 0xffffffff
je 0x43ec0d
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 0x43ec0d
cmp dword [ebx + 0x12a], 0
je 0x43ec0d
cmp dword [ebx + 0xbe], 0
je 0x43ec0d
lea eax, [ebp - 0x40]
mov dword [ebp - 0x40], 0
push eax
push edi
push esi
mov ecx, ebx
call fcn.0043bfc0
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 0x43dba3
xor ecx, ecx
jmp 0x43db50
mov esi, dword [ebx + 0x8a]
mov eax, dword [esi + ecx + 0xa4]
test eax, eax
js 0x43db91
cmp eax, edi
jl 0x43db69
test edi, edi
jns 0x43db91
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 0x43db91
mov dword [esi + ecx + 0xa4], 0xffffffff
inc edx
add ecx, 0xb1
cmp edx, dword [ebx + 0x8e]
jl 0x43db50
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 0x43dbdc
mov dword [eax + esi + 0xa8], 1
mov eax, dword [ebp - 0x58]
mov ecx, ebx
mov dword [ebx + 0x12e], eax
call fcn.00440530
jmp case.default.0x43d6e6
movzx eax, word [edi + 0xc]
movzx ecx, word [edi + 0xe]
cwde
cmp eax, dword [ebx + 0x9e]
jle case.0x43d31b.278
cmp eax, dword [ebx + 0xa6]
jge case.0x43d31b.278
movsx esi, cx
cmp esi, dword [ebx + 0xa2]
jle case.0x43d31b.278
cmp esi, dword [ebx + 0xaa]
jge case.0x43d31b.278
mov ecx, dword [ebx + 0x1c]
push 0x39
mov ecx, dword [ecx]
call fcn.0042a8f0
add eax, dword [ebx + 0xa2]
cmp esi, eax
jle case.0x43d31b.278
mov ecx, dword [ebx + 0x10e]
test ecx, ecx
js case.0x43d31b.278
mov eax, dword [ebx + 0xbe]
dec eax
cmp ecx, eax
jle 0x43dc77
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.0x43d31b.278
cmp dword [ebx + 0x30], 0
je 0x43dc8e
mov ecx, ebx
call fcn.0043b330
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.00452f44
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 0x43dced
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 0x43e3a2
cmp dword [ebx + 0x62], 0xffffffff
je 0x43e3a2
cmp dword [ebx + 0x72], 0
je 0x43dd0e
push 1
push dword [ebx + 0x18]
call eax
mov ecx, dword [ebx + 0x1c]
push 0x39
movsx esi, si
mov ecx, dword [ecx]
call fcn.0042a8f0
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 0x43dd44
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.0043c3b0
mov ecx, dword [ebx + 0xa2]
mov edi, eax
cmp esi, ecx
jg 0x43df06
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 0x43e24c
cmp edi, dword [ebx + 0xbe]
jge 0x43e24c
mov eax, dword [ebx + 0x62]
mov dword [ebp - 0x60], eax
cmp edi, eax
je 0x43e24c
cmp edi, dword [ebx + 0x6a]
je 0x43e24c
mov esi, dword [ebx + 0xe6]
push 1
push esi
call fcn.00453bae
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.004533b0
mov esi, dword [ebx + 0x34]
add esp, 0x14
mov dword [ebp - 0x40], 0
test esi, esi
je 0x43de1f
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 0x43ddf5
sub ecx, edx
push 1
lea eax, [ecx + 1]
push eax
call fcn.00453bae
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 0x43de11
mov esi, dword [ebx + 0x8e]
push 4
push esi
call fcn.00453bae
add esp, 8
mov edx, eax
cmp dword [ebx + 0xca], 0
mov dword [ebp - 0x50], edx
je 0x43de5d
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.004533b0
add esp, 0xc
cmp dword [ebx + 0xd2], 0
mov dword [ebp - 0x54], 0
je 0x43de9d
mov esi, dword [ebx + 0x8e]
push 4
push esi
call fcn.00453bae
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.004533b0
add esp, 0x14
cmp dword [ebx + 0xda], 0
mov dword [ebp - 0x64], 0
je 0x43ded3
mov esi, dword [ebx + 0x8e]
push 1
push esi
call fcn.00453bae
push esi
imul esi, dword [ebp - 0x60]
mov dword [ebp - 0x64], eax
add esi, dword [ebx + 0xd6]
push esi
push eax
call fcn.004533b0
add esp, 0x14
cmp dword [ebx + 0xe2], 0
mov dword [ebp - 0x68], 0
je 0x43df62
push 1
push 1
call fcn.00453bae
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 0x43df65
mov edx, dword [ebx + 0xaa]
cmp esi, edx
jge 0x43df2d
mov ecx, dword [ebx + 0xbe]
lea eax, [ecx - 1]
cmp edi, eax
jne 0x43dd86
lea eax, [ecx - 2]
cmp dword [ebx + 0x62], eax
je 0x43dd86
sub esi, edx
inc esi
mov esi, dword [ebp - 0x4c]
jne 0x43df39
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 0x43dd89
mov esi, dword [ebp - 0x60]
push 4
push 1
call fcn.00453bae
mov ecx, dword [ebx + 0x112]
add esp, 8
mov dword [ebp - 0x60], eax
test ecx, ecx
je 0x43df89
cmp dword [ebx + 0x18], 0
je 0x43df89
mov ecx, dword [ecx + esi*4]
mov dword [eax], ecx
push esi
mov ecx, ebx
call fcn.0043fab0
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.00452900
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.004533b0
push dword [ebp - 0x58]
call fcn.00453bee
add esp, 0x1c
cmp dword [ebx + 0xca], 1
jne 0x43e04d
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.00452900
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.004533b0
add esp, 0x18
push dword [ebp - 0x50]
call fcn.004527ac
add esp, 4
cmp dword [ebx + 0xd2], 1
jne 0x43e0c0
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.00452900
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.004533b0
push dword [ebp - 0x54]
call fcn.004527ac
add esp, 0x1c
cmp dword [ebx + 0xda], 1
jne 0x43e118
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.00452900
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.004533b0
push esi
call fcn.004527ac
add esp, 0x1c
cmp dword [ebx + 0xe2], 1
jne 0x43e154
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.00452900
mov edx, dword [ebp - 0x68]
mov ecx, dword [ebx + 0xde]
push edx
mov al, byte [edx]
mov byte [edi + ecx], al
call fcn.004527ac
add esp, 0x10
mov eax, dword [ebx + 0x112]
test eax, eax
je 0x43e19c
cmp dword [ebx + 0x18], 0
je 0x43e19c
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.00452900
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 0x43e19f
mov edx, dword [ebp - 0x60]
push edx
call fcn.004527ac
add esp, 4
cmp dword [ebx + 0x116], 0
je 0x43e1b8
mov ecx, ebx
call fcn.0043aec0
mov eax, dword [ebx + 0x34]
test eax, eax
je 0x43e1e8
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.00452900
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.0043fcc0
mov eax, dword [ebx + 0xbe]
dec eax
mov dword [ebx + 0x62], edi
cmp edi, eax
jne 0x43e22c
mov eax, dword [ebx + 0xb2]
test eax, eax
je 0x43e22c
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.00423670
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 0x43ec0d
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 0x43e27a
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 0x43e64a
cmp eax, dword [ebx + 0xa6]
jge 0x43e64a
movsx esi, si
mov dword [ebp - 0x58], esi
cmp esi, dword [ebx + 0xa2]
jle 0x43e64a
cmp esi, dword [ebx + 0xaa]
jge 0x43e64a
mov ecx, dword [ebx + 0x1c]
push 0x39
mov ecx, dword [ecx]
call fcn.0042a8f0
add eax, dword [ebx + 0xa2]
cmp esi, eax
jle 0x43e651
xor ecx, ecx
xor edi, edi
mov dword [ebp - 0x40], ecx
cmp dword [ebx + 0x8e], ecx
jle 0x43e328
xor esi, esi
jmp 0x43e2f0
mov eax, dword [ebx + 0x8a]
cmp dword [eax + esi + 0xa0], 1
jne 0x43e316
mov ecx, dword [ebx + 0x1c]
push dword [eax + esi + 0x42]
mov ecx, dword [ecx]
call fcn.0042a880
mov ecx, dword [ebp - 0x40]
add ecx, eax
mov dword [ebp - 0x40], ecx
inc edi
add esi, 0xb1
cmp edi, dword [ebx + 0x8e]
jl 0x43e2f0
mov esi, dword [ebp - 0x58]
mov edx, dword [ebp - 0x5c]
movsx eax, dx
cmp eax, ecx
jge 0x43e651
mov ecx, dword [ebx + 0x1c]
push 0x39
mov ecx, dword [ecx]
call fcn.0042a8f0
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 0x43e36a
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.0043c3b0
mov ecx, eax
mov eax, dword [ebx + 0xbe]
test eax, eax
jle 0x43e620
cmp ecx, eax
jge 0x43e620
xor eax, eax
mov edx, 1
test ecx, ecx
cmovns eax, edx
jmp 0x43e622
cmp dword [ebx + 0x54], 0xffffffff
jne 0x43e3ba
push esi
push edi
mov ecx, ebx
call fcn.0043c550
cmp eax, 0xffffffff
jne 0x43e4ec
cmp dword [ebx + 0x50], 0xffffffff
jne 0x43e4ec
push 0x7f00
push 0
call dword [sym.imp.USER32.dll_LoadCursorA]
cmp dword [ebx + 0x54], 0xffffffff
mov dword [ebx + 0x7e], eax
je 0x43e24f
push esi
push edi
mov ecx, ebx
call fcn.0043bfa0
mov edx, eax
mov dword [ebp - 0x54], edx
cmp edx, 0xffffffff
je 0x43e24f
mov eax, dword [ebx + 0x54]
mov dword [ebp - 0x40], eax
cmp edx, eax
je 0x43e24f
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 0x43e458
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.00452900
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 0x43e492
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.00452900
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.00423670
add esp, 0xc
push dword [ebx + 0x18]
call dword [sym.imp.USER32.dll_UpdateWindow]
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x43e249
push dword [ebp - 0x54]
push dword [ebp - 0x40]
push ebx
call eax
add esp, 0xc
jmp 0x43e249
call fcn.0040a790
cmp dword [ebx + 0x50], 0xffffffff
mov dword [ebx + 0x7e], eax
je 0x43e24f
movsx ecx, word [ebx + 0x5c]
movsx eax, di
sub ecx, eax
push ecx
mov ecx, dword [ebx + 0x1c]
mov ecx, dword [ecx]
call fcn.00426d80
mov dword [ebp - 0x40], eax
mov edi, 1
test eax, eax
jle 0x43e567
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 0x43e567
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.00426d80
cmp esi, eax
jle 0x43e598
test edi, edi
mov edi, dword [ebp - 0x5c]
je 0x43e5d1
mov word [ebx + 0x5c], di
jmp 0x43e5d1
test edi, edi
je 0x43e5c0
mov ecx, dword [ebx + 0x1c]
push 0x10
mov ecx, dword [ecx]
call fcn.00426d80
mov ecx, dword [ebx + 0x1c]
sub eax, esi
push eax
mov ecx, dword [ecx]
call fcn.0042a880
mov edi, dword [ebp - 0x5c]
add eax, edi
mov word [ebx + 0x5c], ax
jmp 0x43e5c3
mov edi, dword [ebp - 0x5c]
mov ecx, dword [ebx + 0x1c]
push 0x10
mov ecx, dword [ecx]
call fcn.00426d80
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 0x43e5fd
cmp eax, 0x10
jne 0x43e604
mov ecx, ebx
call fcn.0043fd60
push 0
lea eax, [ebx + 0x9e]
push eax
push dword [ebx + 0x18]
call fcn.00423670
mov esi, dword [ebp - 0x4c]
add esp, 0xc
jmp 0x43e24f
xor eax, eax
cmp dword [ebx + 0x30], 0
je 0x43e631
cmp ecx, dword [ebx + 0x2c]
je 0x43ec0d
test eax, eax
je 0x43e651
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 0x43e651
mov dword [ebx + 0x2c], 0xffffffff
cmp dword [ebp - 0x50], 0
je 0x43ec0d
mov ecx, ebx
call fcn.0043b330
jmp 0x43ec0d
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 0x43e6a9
push 0
lea eax, [ebx + 0x9e]
mov dword [ebx + 0x54], 0xffffffff
push eax
push dword [ebx + 0x18]
call fcn.00423670
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 0x43eb34
cwde
cmp eax, dword [ebx + 0xaa]
jg 0x43e6fc
cmp eax, dword [ebx + 0xa2]
jl 0x43e6fc
movsx eax, si
cmp eax, dword [ebx + 0x9e]
jl 0x43e6fc
cmp eax, dword [ebx + 0xa6]
jg 0x43e6fc
mov eax, dword [ebx + 0x10]
test eax, eax
je 0x43eb09
mov ecx, dword [ebx + 0x66]
cmp ecx, edi
je 0x43eb09
push edi
push ecx
push ebx
call eax
add esp, 0xc
jmp 0x43eb09
mov esi, dword [ebx + 0xe6]
push 1
push esi
call fcn.00453bae
push esi
imul esi, edi
mov dword [ebp - 0x60], eax
add esi, dword [ebx + 0xc2]
push esi
push eax
call fcn.004533b0
mov esi, dword [ebx + 0x34]
add esp, 0x14
mov dword [ebp - 0x68], 0
test esi, esi
je 0x43e76e
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 0x43e740
sub ecx, edx
push 1
lea eax, [ecx + 1]
push eax
call fcn.00453bae
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 0x43e760
mov esi, dword [ebx + 0x8e]
push 4
push esi
call fcn.00453bae
add esp, 8
mov edi, eax
cmp dword [ebx + 0xca], 0
mov dword [ebp - 0x40], edi
je 0x43e7ae
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.004533b0
add esp, 0xc
cmp dword [ebx + 0xd2], 0
mov dword [ebp - 0x58], 0
je 0x43e7f2
mov esi, dword [ebx + 0x8e]
push 4
push esi
call fcn.00453bae
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.004533b0
add esp, 0x14
cmp dword [ebx + 0xda], 0
mov dword [ebp - 0x50], 0
je 0x43e82c
mov esi, dword [ebx + 0x8e]
push 1
push esi
call fcn.00453bae
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.004533b0
add esp, 0x14
cmp dword [ebx + 0xe2], 0
mov dword [ebp - 0x64], 0
je 0x43e85b
push 1
push 1
call fcn.00453bae
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.00453bae
mov edi, eax
add esp, 8
mov eax, dword [ebx + 0x112]
test eax, eax
je 0x43e881
cmp dword [ebx + 0x18], 0
je 0x43e881
mov ecx, dword [ebx + 0x62]
mov eax, dword [eax + ecx*4]
mov dword [edi], eax
push dword [ebx + 0x62]
mov ecx, ebx
call fcn.0043fab0
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.00452900
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.004533b0
push esi
call fcn.00453bee
add esp, 0x1c
cmp dword [ebx + 0xca], 1
jne 0x43e956
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.00452900
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.004533b0
add esp, 0x18
jmp 0x43e959
mov esi, dword [ebp - 0x40]
push esi
call fcn.004527ac
add esp, 4
cmp dword [ebx + 0xd2], 1
jne 0x43e9d2
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.00452900
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.004533b0
push esi
call fcn.004527ac
add esp, 0x1c
cmp dword [ebx + 0xda], 1
jne 0x43ea33
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.00452900
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.004533b0
push esi
call fcn.004527ac
add esp, 0x1c
cmp dword [ebx + 0xe2], 1
jne 0x43ea74
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.00452900
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.004527ac
add esp, 0x10
mov eax, dword [ebx + 0x112]
test eax, eax
je 0x43eabd
cmp dword [ebx + 0x18], 0
je 0x43eabd
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.00452900
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.004527ac
mov eax, dword [ebx + 0x34]
add esp, 4
test eax, eax
je 0x43eafc
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.00452900
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.0043fcc0
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.00423670
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.0043c550
cmp eax, 0xffffffff
je 0x43eb57
call fcn.0040a790
mov dword [ebx + 0x7e], eax
jmp 0x43ec0d
push 0x7f00
push 0
call dword [sym.imp.USER32.dll_LoadCursorA]
mov dword [ebx + 0x7e], eax
jmp 0x43ec0d
mov ecx, dword [ebx + 0xae]
mov edx, dword [sym.imp.USER32.dll_SetWindowLongA]
cmp eax, ecx
jne 0x43ebb6
cmp dword [edi + 4], 2
jne 0x43eb97
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 0x43ec0d
cmp dword [edi + 4], 2
jne 0x43ebdb
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.00452f44
mov esp, ebp
pop ebp
ret 0xc