Function at 0x45167c
Capabilities:
Check for unmoving mouse cursor
Get keyboard layout
Log keystrokes via input method manager
Log keystrokes via polling
Resolve function by parsing pe exports

Disassembly:
push ebp
lea ebp, [esp - 0x68]
sub esp, 0x28c
push ebx
mov ebx, dword [ebp + 0x70]
push esi
push edi
push ebx
push dword [0x45e4d4]
call fcn.00445281
mov edi, dword [ebp + 0x74]
pop ecx
xor esi, esi
cmp edi, 0x102
pop ecx
mov dword [0x45e4d4], ebx
je 0x4516c8
cmp edi, 8
jne 0x4516bb
mov dword [ebx + 0xd9c], esi
jmp 0x45173a
lea eax, [ebx + 0xd9c]
cmp dword [eax], 0xfffffffe
jne 0x4516c8
mov dword [eax], esi
mov eax, 0xc3b
cmp edi, eax
ja 0x4548d3
je 0x4548ac
mov eax, 0x44b
cmp edi, eax
mov edx, 0xb71
mov ecx, 0x438
ja 0x4538ba
je 0x453860
mov eax, 0xd3
cmp edi, eax
ja 0x452299
je 0x452239
add eax, 0xffffffdf
cmp edi, eax
ja 0x452047
je 0x452035
cmp edi, 0x14
ja 0x451d54
je 0x451aaa
cmp edi, 0xa
ja 0x4518a7
je 0x451809
mov eax, edi
dec eax
dec eax
je 0x4517eb
sub eax, 3
je 0x4517da
dec eax
dec eax
je 0x4517a3
dec eax
jne case.default.0x4548eb
push ebx
call fcn.00439565
lea eax, [ebx + 0xe04]
cmp dword [eax], 1
pop ecx
jne 0x451770
mov dword [eax], 2
mov eax, dword [ebx + 0x6f0]
test byte [eax + 8], 4
jne 0x451786
push 1
push ebx
call fcn.004384a7
pop ecx
pop ecx
mov dword [ebx + 0xd90], esi
call dword [sym.imp.USER32.dll_DestroyCaret]
push ebx
call fcn.00441769
push dword [ebp + 0x78]
push ebx
call fcn.00447e52
jmp 0x451820
xor eax, eax
inc eax
push eax
push ebx
mov dword [ebx + 0xd90], eax
call fcn.00443089
mov eax, dword [ebx + 0x6f0]
test byte [eax + 8], 4
pop ecx
pop ecx
jne 0x4517ca
push esi
push ebx
call fcn.004384a7
pop ecx
pop ecx
push dword [ebp + 0x78]
push ebx
call fcn.00447de9
pop ecx
pop ecx
jmp 0x454338
cmp dword [ebp + 0x7c], esi
je 0x454338
push ebx
call fcn.0044e506
jmp 0x4517d4
push dword [ebx + 0xd18]
call dword [sym.imp.ole32.dll_RevokeDragDrop]
push ebx
call fcn.0044df22
pop ecx
mov dword [0x45e4d4], esi
jmp 0x454338
cmp dword [ebp + 0x78], esi
je 0x451828
mov eax, dword [ebx + 0x6f0]
add eax, 0x78
push 1
push eax
push ebx
call fcn.0044d4f0
add esp, 0xc
jmp 0x454338
push 0x12
call dword [sym.imp.USER32.dll_GetSysColor]
push 0xf
mov edi, eax
call dword [sym.imp.USER32.dll_GetSysColor]
mov dword [ebp + 0x78], eax
mov eax, dword [ebx + 0x6f0]
lea ecx, [eax + 0x34]
push 0x44
push ecx
add eax, 0x78
push eax
call fcn.00434a7e
mov eax, dword [ebx + 0x6f0]
mov dword [eax + 0x78], 0xfc
mov eax, dword [ebx + 0x6f0]
mov eax, dword [eax + 0x78]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp + 0x78]
mov dword [ebp - 0x10], eax
mov dword [ebp - 8], eax
mov dword [ebp], eax
push 1
lea eax, [ebp - 0x1c]
push eax
push ebx
mov dword [ebp - 0x14], edi
mov dword [ebp - 0xc], edi
mov dword [ebp - 4], edi
call fcn.0044d4f0
add esp, 0x18
cmp dword [ebx + 0xd90], esi
je 0x454338
push esi
call dword [sym.imp.USER32.dll_SetFocus]
jmp 0x454338
mov eax, edi
sub eax, 0xc
je 0x451a7c
dec eax
je 0x451a30
dec eax
je 0x4519be
dec eax
jne case.default.0x4548eb
push esi
lea eax, [ebp + 0x58]
push eax
push dword [ebx + 0xd18]
call dword [sym.imp.USER32.dll_GetUpdateRect]
test eax, eax
je case.default.0x4548eb
lea eax, [ebp + 0x58]
push eax
push ebx
call fcn.00435928
test eax, eax
pop ecx
pop ecx
je 0x4518fc
lea eax, [ebp + 0x58]
push eax
push ebx
call fcn.0044100a
pop ecx
pop ecx
cmp edi, 0xf
jne case.default.0x4548eb
mov eax, dword [ebx + 0xd2c]
cmp eax, esi
mov dword [ebp + 0x7c], eax
mov dword [ebp + 0x78], esi
jne 0x451940
push dword [ebx + 0xd18]
call dword [sym.imp.USER32.dll_GetDC]
cmp eax, esi
mov dword [ebx + 0xd2c], eax
je 0x451940
mov ecx, dword [ebx + 0x14]
mov ecx, dword [ecx + 0x14]
cmp ecx, esi
je 0x451940
push ecx
push eax
call dword [sym.imp.GDI32.dll_SelectObject]
mov dword [ebp + 0x78], eax
cmp dword [ebx + 0xd2c], esi
je 0x454338
lea eax, [ebp + 0x58]
push eax
push ebx
call fcn.004491dd
lea edi, [ebx + 0xe2c]
cmp dword [edi], esi
pop ecx
pop ecx
je 0x451984
push ebx
call fcn.0043802f
pop ecx
push dword [ebx + 0xd18]
mov dword [edi], esi
call dword [sym.imp.USER32.dll_UpdateWindow]
push ebx
mov dword [edi], 1
call fcn.00437f56
pop ecx
cmp dword [ebp + 0x7c], esi
jne 0x454338
cmp dword [ebp + 0x78], esi
je 0x4519a1
push dword [ebp + 0x78]
push dword [ebx + 0xd2c]
call dword [sym.imp.GDI32.dll_SelectObject]
push dword [ebx + 0xd2c]
push dword [ebx + 0xd18]
call dword [sym.imp.USER32.dll_ReleaseDC]
mov dword [ebx + 0xd2c], esi
jmp 0x454338
mov eax, dword [ebx + 0x6f0]
mov eax, dword [eax + 0x14]
cmp eax, 3
jne 0x4519df
push esi
push esi
push eax
push esi
push esi
push ebx
call fcn.0043bcb6
add esp, 0x18
jmp 0x4547ec
cmp eax, 5
je 0x451a22
cmp eax, 6
je 0x451a22
cmp eax, 7
jne 0x451a02
mov ebx, dword [ebx + 0x14]
mov eax, dword [ebx + 0x108]
add eax, dword [ebx + 0x104]
jmp 0x456f1c
cmp eax, 8
jne 0x454338
mov ebx, dword [ebx + 0x14]
mov eax, dword [ebx + 0x108]
mov ecx, dword [ebx + 0x104]
lea eax, [ecx + eax*2]
jmp 0x456f1c
mov eax, dword [ebx + 0x14]
mov eax, dword [eax + 0x104]
jmp 0x456f1c
lea eax, [ebp + 0x50]
push eax
push esi
push 1
push ebx
call fcn.0043b774
lea eax, [ebp + 0x5c]
push eax
push esi
push 2
push ebx
call fcn.0043b774
add esp, 0x20
push esi
push esi
push 2
push dword [ebp + 0x78]
push dword [ebp + 0x7c]
cmp dword [ebx + 0xd24], esi
lea eax, [ebp + 0x5c]
push eax
lea eax, [ebp + 0x50]
push eax
jne 0x4543e2
push esi
push esi
push esi
push ebx
call fcn.00443704
add esp, 0x2c
jmp 0x456f1c
cmp dword [ebx + 0xd24], esi
jne 0x451a94
push 1
push 0xffffffffffffffff
push dword [ebp + 0x7c]
push esi
push ebx
call fcn.00450992
jmp 0x451aa2
push esi
push 1
push 0xffffffffffffffff
push dword [ebp + 0x7c]
push ebx
call fcn.0044e5fb
add esp, 0x14
jmp 0x4548cb
mov eax, dword [ebx + 0x6f0]
mov edi, dword [ebx + 0xd60]
push dword [eax + 0x40]
mov dword [ebp + 0x7c], edi
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
cmp edi, esi
mov ecx, dword [ebx + 0x6f0]
mov dword [ecx + 0xd0], eax
jne 0x451ae9
lea eax, [ebx + 0xd30]
push eax
push ebx
call fcn.0044100a
mov dword [ebp + 0x7c], eax
cmp eax, esi
jmp 0x451d28
mov eax, dword [ebp + 0x7c]
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0x10]
sub eax, ecx
test eax, eax
jle 0x451d17
mov eax, dword [ebp + 0x7c]
mov edx, dword [eax + 0x14]
sub edx, dword [eax + 0xc]
test edx, edx
jle 0x451d17
mov edx, dword [ebx + 0xd40]
cmp ecx, edx
jge 0x451b60
mov esi, eax
mov eax, dword [ebx + 0xd50]
add esi, 8
lea edi, [ebp + 0x58]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
cmp dword [ebp + 0x58], eax
jg 0x451b31
mov dword [ebp + 0x58], eax
cmp dword [ebp + 0x60], edx
jl 0x451b39
mov dword [ebp + 0x60], edx
mov eax, dword [ebx + 0x6f0]
push dword [eax + 0xd0]
lea eax, [ebp + 0x58]
push eax
push dword [ebp + 0x78]
push ebx
call fcn.0043781b
mov eax, dword [ebp + 0x7c]
mov ecx, dword [ebp + 0x60]
add esp, 0x10
add eax, 8
mov dword [eax], ecx
mov ecx, dword [ebx + 0xd44]
mov eax, dword [ebp + 0x7c]
cmp dword [eax + 0xc], ecx
jge 0x451bb5
mov esi, eax
mov eax, dword [ebx + 0xd54]
add esi, 8
lea edi, [ebp + 0x58]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
cmp dword [ebp + 0x5c], eax
jg 0x451b88
mov dword [ebp + 0x5c], eax
cmp dword [ebp + 0x64], ecx
jl 0x451b90
mov dword [ebp + 0x64], ecx
mov eax, dword [ebx + 0x6f0]
push dword [eax + 0xd0]
lea eax, [ebp + 0x58]
push eax
push dword [ebp + 0x78]
push ebx
call fcn.0043781b
mov eax, dword [ebp + 0x7c]
mov ecx, dword [ebp + 0x64]
add esp, 0x10
mov dword [eax + 0xc], ecx
mov eax, dword [ebx + 0xd48]
mov ecx, dword [ebp + 0x7c]
cmp dword [ecx + 0x10], eax
jle 0x451c0a
mov esi, ecx
add esi, 8
lea edi, [ebp + 0x58]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
cmp dword [ebp + 0x58], eax
jg 0x451bd7
mov dword [ebp + 0x58], eax
mov eax, dword [ebx + 0xd58]
cmp dword [ebp + 0x60], eax
jl 0x451be5
mov dword [ebp + 0x60], eax
mov eax, dword [ebx + 0x6f0]
push dword [eax + 0xd0]
lea eax, [ebp + 0x58]
push eax
push dword [ebp + 0x78]
push ebx
call fcn.0043781b
mov eax, dword [ebp + 0x7c]
mov ecx, dword [ebp + 0x58]
add esp, 0x10
mov dword [eax + 0x10], ecx
mov eax, dword [ebx + 0xd4c]
mov ecx, dword [ebp + 0x7c]
cmp dword [ecx + 0x14], eax
jle 0x451c5f
mov esi, ecx
add esi, 8
lea edi, [ebp + 0x58]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
cmp dword [ebp + 0x5c], eax
jg 0x451c2c
mov dword [ebp + 0x5c], eax
mov eax, dword [ebx + 0xd5c]
cmp dword [ebp + 0x64], eax
jl 0x451c3a
mov dword [ebp + 0x64], eax
mov eax, dword [ebx + 0x6f0]
push dword [eax + 0xd0]
lea eax, [ebp + 0x58]
push eax
push dword [ebp + 0x78]
push ebx
call fcn.0043781b
mov eax, dword [ebp + 0x7c]
mov ecx, dword [ebp + 0x5c]
add esp, 0x10
mov dword [eax + 0x14], ecx
mov esi, dword [ebp + 0x7c]
mov eax, dword [ebx + 0x14]
mov eax, dword [eax + 0x100]
sub eax, dword [ebx + 0xcf8]
mov ecx, dword [ebx + 0xd44]
add esi, 8
lea edi, [ebp + 0x58]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
add eax, ecx
movsd dword es:[edi], dword [esi]
cmp dword [ebp + 0x5c], eax
jg 0x451c8b
mov dword [ebp + 0x5c], eax
mov esi, dword [ebp + 0x64]
cmp dword [ebp + 0x5c], esi
jge 0x451d17
mov eax, dword [ebx + 0x6f0]
push dword [eax + 0xd0]
lea eax, [ebp + 0x58]
push eax
push dword [ebp + 0x78]
push ebx
call fcn.0043781b
mov eax, dword [ebx + 0x6f0]
add esp, 0x10
test byte [eax + 0xa], 0x80
jne 0x451ccf
push esi
push dword [ebp + 0x5c]
push dword [ebp + 0x78]
push ebx
call fcn.004381d8
add esp, 0x10
mov eax, dword [ebx + 0x6f0]
test byte [eax + 9], 4
je 0x451d17
mov eax, dword [ebx + 0xd78]
cmp eax, dword [ebp + 0x58]
jl 0x451d17
cmp eax, dword [ebp + 0x60]
jg 0x451d17
mov ecx, dword [ebx + 0x14]
mov ecx, dword [ecx + 0xc8]
lea eax, [ebx + 0xd7c]
add ecx, dword [eax]
cmp dword [ebp + 0x5c], ecx
jg 0x451d07
mov dword [eax], 0x80000001
push esi
push dword [ebp + 0x5c]
push dword [ebp + 0x78]
push ebx
call fcn.004380a7
add esp, 0x10
mov eax, dword [ebp + 0x7c]
mov esi, dword [eax]
push eax
push ebx
call fcn.00435969
mov dword [ebp + 0x7c], esi
test esi, esi
pop ecx
pop ecx
jne 0x451ae9
mov eax, dword [ebx + 0x6f0]
push dword [eax + 0xd0]
call dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, dword [ebx + 0x6f0]
and dword [eax + 0xd0], 0
jmp 0x4548cb
cmp edi, 0x31
ja 0x451f5c
je 0x451f3d
mov eax, edi
sub eax, 0x15
je 0x451f02
sub eax, 0xb
je 0x451ea3
dec eax
je 0x451e4f
sub eax, 0xf
jne case.default.0x4548eb
mov eax, dword [ebx + 0x6f0]
xor edi, edi
cmp dword [eax + 0x18], esi
jne 0x451d9d
push ebx
call fcn.004384d0
pop ecx
mov edi, eax
cmp dword [ebx + 0xd24], esi
push esi
push dword [ebp + 0x78]
push ebx
jne 0x451db1
call fcn.00441e49
jmp 0x451db6
call fcn.0044201a
add esp, 0xc
push ebx
call fcn.004360b7
mov ecx, dword [ebx + 0x14]
push 1
push ebx
mov dword [ecx + 0x100], eax
call fcn.0044a4b0
push 1
push esi
push esi
push ebx
call fcn.0044af84
push 0xe
push ebx
mov dword [ebx + 0xd04], esi
mov dword [ebx + 0xd08], esi
call fcn.00442770
mov eax, dword [ebx + 0x6f0]
add esp, 0x24
cmp dword [eax + 0x18], esi
jne 0x451e1a
push edi
push ebx
call fcn.00435eed
push esi
mov dword [ebp + 0x4c], eax
push esi
lea eax, [ebp + 0x48]
push eax
push 0x20220
push ebx
call fcn.0044a1e7
add esp, 0x1c
push dword [ebx + 0xd90]
push ebx
call fcn.00443089
mov eax, dword [ebx + 0x14]
mov eax, dword [eax + 0x120]
cmp eax, esi
pop ecx
pop ecx
je 0x451e41
push eax
push esi
push esi
push ebx
call fcn.0044e082
add esp, 0x10
xor eax, eax
cmp dword [ebp + 0x7c], esi
sete al
push eax
jmp 0x4555d3
cmp dword [ebx + 0xd24], esi
mov esi, dword [ebp + 0x7c]
push esi
push dword [ebp + 0x78]
push 0x21
push dword [ebx + 0xd18]
jne 0x451e6e
call dword [sym.imp.USER32.dll_DefWindowProcA]
jmp 0x451e74
call dword [sym.imp.USER32.dll_DefWindowProcW]
cmp eax, 2
je 0x456f1c
cmp eax, 4
je 0x456f1c
shr esi, 0x10
cmp si, 0x201
jne 0x456f1c
mov dword [ebx + 0xe04], 1
jmp 0x456f1c
cmp dword [ebx + 0xf4c], esi
jne 0x456ef7
cmp dword [ebx + 0xe08], esi
jne 0x456ef7
cmp dword [ebx + 0xe0c], esi
jne 0x456ef7
push ebx
call fcn.00447336
cmp eax, 3
pop ecx
mov dword [ebx + 0xe10], eax
jne 0x451ef1
lea eax, [ebx + 0xdb4]
push eax
push dword [ebp + 0x7c]
push dword [ebp + 0x78]
push 0x20
push ebx
call fcn.00448586
add esp, 0x14
cmp dword [ebx + 0xe10], esi
je 0x456ef7
jmp 0x4548cb
mov eax, dword [ebx + 0x6f0]
cmp dword [eax + 0xcc], esi
je 0x456ef7
xor edi, edi
inc edi
push edi
lea eax, [ebp - 0x1c]
push eax
push ebx
mov dword [ebp - 0x1c], 0x1ffff
call fcn.0044d4f0
mov eax, dword [ebx + 0x6f0]
add esp, 0xc
mov dword [eax + 0xcc], edi
jmp 0x456ef7
mov eax, dword [ebx + 0x14]
mov esi, dword [eax + 0x14]
push 0xd
call dword [sym.imp.GDI32.dll_GetStockObject]
mov ecx, eax
mov eax, esi
sub eax, ecx
neg eax
sbb eax, eax
and eax, esi
jmp 0x456f1c
mov eax, edi
mov ecx, 0x85
sub eax, ecx
je 0x4518c7
dec eax
dec eax
je 0x451fd5
sub eax, 0x29
je 0x451f8c
dec eax
jne case.default.0x4548eb
push dword [ebp + 0x7c]
push dword [ebp + 0x78]
push ebx
call fcn.00443ba3
jmp 0x451820
lea eax, [ebp + 0x4c]
push eax
lea eax, [ebp + 0x48]
push eax
push ebx
call fcn.00439671
mov eax, dword [ebp + 0x78]
mov edx, dword [ebp + 0x48]
add esp, 0xc
cmp eax, esi
je 0x451fa9
mov dword [eax], edx
mov eax, dword [ebp + 0x7c]
cmp eax, esi
mov ecx, dword [ebp + 0x4c]
je 0x451fb5
mov dword [eax], ecx
mov eax, 0xffff0000
cmp edx, eax
ja 0x4546c3
cmp ecx, eax
ja 0x4546c3
movzx eax, cx
movzx ecx, dx
jmp 0x4553f3
mov eax, dword [ebp + 0x7c]
cmp eax, esi
mov edi, 0x81
je 0x454c4b
cmp dword [eax + 4], 0x100
jne 0x454c4b
mov eax, dword [eax + 8]
cmp eax, 0xd
jne 0x452011
mov eax, dword [ebx + 0x6f0]
test byte [eax + 8], 8
je 0x454c4b
mov edi, ecx
jmp 0x454c4b
cmp eax, 9
jne 0x454c4b
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jge 0x454c4b
mov edi, 0x85
jmp 0x454c4b
mov edi, dword [ebp + 0x7c]
lea esi, [ebx + 0xd40]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
jmp 0x454338
lea eax, [edi - 0xb3]
cmp eax, 0x1c
ja case.default.0x4548eb
jmp dword [eax*4 + 0x456f26]
mov eax, dword [ebp + 0x78]
jmp 0x4536d4
mov eax, dword [ebx + 0x6f0]
test byte [eax + 8], 1
jne 0x454338
mov eax, dword [ebx + 0x14]
xor ecx, ecx
cmp dword [eax + 0x238], esi
setne cl
mov eax, ecx
jmp 0x456f1c
push ebx
call fcn.00439504
jmp 0x4517d4
mov eax, dword [ebx + 0x14]
mov eax, dword [eax + 0x108]
jmp 0x455234
push ebx
call fcn.004384d0
jmp 0x454418
push dword [ebp + 0x78]
jmp 0x4536c4
push dword [ebp + 0x78]
push 0x28
push ebx
call fcn.00441c98
jmp 0x4543fc
mov ecx, dword [ebx + 0x14]
xor eax, eax
lea edi, [ebp + 0x2c]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov eax, dword [ebp + 0x78]
cmp eax, dword [ecx + 0x104]
ja 0x454338
lea ecx, [ebp + 0x28]
push ecx
push eax
push ebx
call fcn.004419e9
mov eax, dword [ebp + 0x2c]
add esp, 0xc
cmp eax, esi
je 0x454338
jmp 0x45544b
mov edi, dword [ebp + 0x7c]
cmp edi, esi
mov eax, edi
mov dword [ebp + 0x7c], eax
je 0x452192
cmp dword [ebp + 0x78], esi
je 0x452143
mov eax, dword [ebx + 0xd40]
add eax, dword [edi]
mov dword [ebp + 0x58], eax
mov eax, dword [ebx + 0xd44]
add eax, dword [edi + 4]
mov dword [ebp + 0x5c], eax
mov eax, dword [ebx + 0xd48]
add eax, dword [edi + 8]
mov dword [ebp + 0x60], eax
mov eax, dword [ebx + 0xd4c]
add eax, dword [edi + 0xc]
mov dword [ebp + 0x64], eax
jmp 0x45218a
push 0xffffffffffffffec
push dword [ebx + 0xd18]
call dword [sym.imp.USER32.dll_GetWindowLongA]
test ah, 2
je 0x45218f
push 5
call dword [sym.imp.USER32.dll_GetSystemMetrics]
push 6
mov dword [ebp + 0x78], eax
call dword [sym.imp.USER32.dll_GetSystemMetrics]
mov ecx, dword [edi]
sub ecx, dword [ebp + 0x78]
mov dword [ebp + 0x58], ecx
mov ecx, dword [edi + 4]
sub ecx, eax
mov dword [ebp + 0x5c], ecx
mov ecx, dword [edi + 8]
add ecx, dword [ebp + 0x78]
mov dword [ebp + 0x60], ecx
mov ecx, dword [edi + 0xc]
add ecx, eax
mov dword [ebp + 0x64], ecx
lea eax, [ebp + 0x58]
jmp 0x452192
mov eax, dword [ebp + 0x7c]
xor ecx, ecx
cmp dword [ebp + 0x74], 0xb3
sete cl
push ecx
push eax
jmp 0x454de3
mov ecx, dword [ebp + 0x78]
xor eax, eax
xor edi, edi
cmp ecx, esi
je 0x4521bf
cmp ecx, 1
je 0x4521bf
cmp ecx, 2
je 0x4521bf
cmp ecx, 3
jne 0x4521d3
push esi
push ecx
push ebx
call fcn.0044909d
xor edi, edi
add esp, 0xc
inc edi
cmp eax, esi
jge 0x4521d3
neg eax
mov ecx, dword [ebx + 0x14]
cdq
idiv dword [ecx + 0xc8]
movzx ecx, di
shl ecx, 0x10
movzx eax, ax
jmp 0x4553f6
push 0x20
push dword [ebp + 0x7c]
push ebx
call fcn.004491ab
jmp 0x451820
push esi
push esi
lea eax, [ebx + 0xd04]
push eax
push ebx
call fcn.00449f2a
jmp 0x453094
mov eax, dword [ebx + 0xcf8]
jmp 0x456f1c
mov ebx, dword [ebx + 0x6f0]
xor eax, eax
inc eax
cmp dword [ebp + 0x78], esi
je 0x452230
or dword [ebx + 8], eax
jmp 0x456f1c
and dword [ebx + 8], 0xfffffffe
jmp 0x456f1c
test byte [ebp + 0x78], 1
mov eax, dword [ebp + 0x7c]
lea esi, [ebx + 0xd40]
lea edi, [ebp + 0x58]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
je 0x45225b
movzx ecx, ax
add ecx, dword [ebx + 0xd30]
mov dword [ebp + 0x58], ecx
test byte [ebp + 0x78], 2
je 0x45226f
mov ecx, dword [ebx + 0xd38]
shr eax, 0x10
sub ecx, eax
mov dword [ebp + 0x60], ecx
push 1
lea eax, [ebp + 0x58]
push eax
push ebx
call fcn.00436e9d
mov eax, dword [ebx + 0x14]
mov eax, dword [eax + 0x120]
add esp, 0xc
test eax, eax
je 0x454e0b
push eax
push 0
push 0
jmp 0x454dfc
mov eax, 0x300
cmp edi, eax
ja 0x453623
je 0x453615
mov eax, 0x115
cmp edi, eax
ja 0x45274c
je 0x452715
add eax, 0xfffffff8
cmp edi, eax
ja 0x452421
je 0x4523b2
mov eax, edi
sub eax, 0xd4
je 0x452388
dec eax
je case.0x4548eb.3261
dec eax
je 0x45231b
dec eax
jne case.default.0x4548eb
mov dword [ebp + 0x38], esi
xor eax, eax
lea edi, [ebp + 0x3c]
stosd dword es:[edi], eax
push esi
stosd dword es:[edi], eax
push esi
lea eax, [ebp + 0x38]
push eax
mov eax, dword [ebp + 0x7c]
push dword [eax + 4]
push dword [eax]
push ebx
call fcn.00438e38
lea eax, [ebp + 0x38]
push eax
push ebx
call fcn.004369f2
jmp 0x4543e8
xor eax, eax
cmp dword [ebp + 0x7c], esi
mov dword [ebp + 0x38], esi
lea edi, [ebp + 0x3c]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
jne 0x452365
push 8
push dword [ebp + 0x78]
call dword [sym.imp.KERNEL32.dll_IsBadWritePtr]
test eax, eax
je 0x452365
lea eax, [ebp + 0x38]
push eax
push dword [ebp + 0x78]
push ebx
call fcn.004419e9
lea eax, [ebp + 0x48]
push eax
push esi
lea eax, [ebp + 0x38]
push eax
push ebx
call fcn.00438871
movzx eax, word [ebp + 0x4c]
movzx ecx, word [ebp + 0x48]
add esp, 0x1c
jmp 0x4553f3
lea eax, [ebp + 0x38]
push eax
push dword [ebp + 0x7c]
push ebx
call fcn.004419e9
push dword [ebp + 0x78]
lea eax, [ebp + 0x38]
push esi
push eax
push ebx
call fcn.00438871
add esp, 0x1c
jmp 0x454338
mov ax, word [ebx + 0xd38]
sub ax, word [ebx + 0xd48]
mov cx, word [ebx + 0xd40]
movzx eax, ax
shl eax, 0x10
sub cx, word [ebx + 0xd30]
movzx ecx, cx
jmp 0x4553f6
push esi
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
and ax, 0x3ff
cmp ax, 0x12
je 0x454338
push dword [ebx + 0xd18]
mov dword [ebx + 0xd98], 1
call sub.IMM32.dll_ImmGetContext
mov edi, eax
cmp edi, esi
je 0x456ef7
push edi
push ebx
call fcn.004393c5
cmp dword [ebx + 0xd24], esi
mov eax, dword [ebx + 0x14]
pop ecx
pop ecx
jne 0x452406
add eax, 0x2c
push eax
push edi
call sub.IMM32.dll_ImmSetCompositionFontA
jmp 0x452410
add eax, 0x68
push eax
push edi
call sub.IMM32.dll_ImmSetCompositionFontW
push edi
push dword [ebx + 0xd18]
call sub.IMM32.dll_ImmReleaseContext
jmp 0x456ef7
mov eax, edi
sub eax, 0x10e
je 0x45270a
dec eax
je 0x452493
sub eax, 4
je 0x452478
dec eax
jne case.default.0x4548eb
mov eax, dword [ebx + 0x6f0]
test byte [eax + 4], 8
je 0x452467
lea eax, [ebp + 0x7c]
push eax
lea eax, [ebp + 0x78]
push eax
push 0x114
push ebx
call fcn.0044875b
add esp, 0x10
test eax, eax
jne 0x454338
movzx eax, word [ebp + 0x78]
push esi
push eax
push ebx
call fcn.00448fff
jmp 0x451820
cmp dword [ebp + 0x78], 1
je 0x452488
cmp dword [ebp + 0x78], 2
jne 0x454338
push ebx
call fcn.0044e259
jmp 0x4517d4
push ebx
call fcn.0043e2eb
test eax, eax
pop ecx
jne 0x456ef7
push esi
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
and ax, 0x3ff
cmp ax, 0x12
jne 0x4526c9
push dword [ebx + 0xd18]
call sub.IMM32.dll_ImmGetContext
cmp eax, esi
mov dword [ebp + 0x70], eax
je 0x454338
xor edi, edi
inc edi
test byte [ebp + 0x7d], 8
je 0x4525fe
mov eax, dword [ebx + 0x14]
push 4
mov dword [eax + 0x248], edi
lea eax, [ebp + 0x74]
push eax
push 0x800
push dword [ebp + 0x70]
call sub.IMM32.dll_ImmGetCompositionStringW
cmp eax, esi
jle 0x452591
cmp eax, 2
ja 0x452558
movzx ecx, word [ebp + 0x74]
cmp ecx, dword [ebx + 0xd94]
jne 0x452542
lea eax, [ebx + 0xcc0]
push eax
lea eax, [ebx + 0xcb4]
push eax
call fcn.004332b4
test eax, eax
pop ecx
pop ecx
je 0x452591
push 0x10000000
push esi
push esi
lea eax, [ebx + 0xcc0]
push eax
push eax
push ebx
call fcn.004421eb
add esp, 0x18
jmp 0x452591
cmp eax, 2
jne 0x452558
movzx eax, word [ebp + 0x74]
push edi
push eax
push ebx
call fcn.0044fca7
add esp, 0xc
jmp 0x45256c
push esi
push esi
push esi
push edi
shr eax, 1
push eax
lea eax, [ebp + 0x74]
push eax
push ebx
call fcn.0044f1ad
add esp, 0x1c
mov eax, dword [ebx + 0x6f0]
test byte [eax + 8], 0x20
je 0x452591
mov eax, dword [ebx + 0x14]
push ebx
mov dword [eax + 0x248], esi
call fcn.00441769
mov eax, dword [ebx + 0x14]
pop ecx
mov dword [eax + 0x248], edi
push 4
lea eax, [ebp + 0x74]
push eax
push 8
push dword [ebp + 0x70]
call sub.IMM32.dll_ImmGetCompositionStringW
test eax, eax
jle 0x4525f5
movzx eax, word [ebp + 0x74]
push 1
push eax
push ebx
call fcn.0044fca7
movzx eax, word [ebp + 0x74]
lea esi, [ebx + 0xcb4]
lea edi, [ebp + 0x38]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov dword [ebx + 0xd94], eax
lea eax, [ebp + 0x38]
push eax
movsd dword es:[edi], dword [esi]
call fcn.0043321a
push 0x10000000
push 0
push 0
lea eax, [ebp + 0x38]
push eax
lea eax, [ebx + 0xcc0]
push eax
push ebx
call fcn.004421eb
xor edi, edi
add esp, 0x28
xor esi, esi
inc edi
jmp 0x4525fe
mov eax, dword [ebx + 0x14]
mov dword [eax + 0x248], esi
test byte [ebp + 0x7c], 8
je 0x4526b6
mov eax, dword [ebx + 0x14]
mov dword [eax + 0x248], edi
mov edi, dword [ebp + 0x78]
cmp edi, esi
je 0x45267a
cmp edi, dword [ebx + 0xd94]
je 0x4526b6
push esi
push esi
push 0x800
push dword [ebp + 0x70]
call sub.IMM32.dll_ImmGetCompositionStringW
test eax, eax
jg 0x4526b6
push 1
push edi
push ebx
call fcn.0044fca7
mov dword [ebx + 0xd94], edi
lea esi, [ebx + 0xcb4]
lea edi, [ebp + 0x38]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea eax, [ebp + 0x38]
push eax
movsd dword es:[edi], dword [esi]
call fcn.0043321a
push 0x10000000
push 0
push 0
lea eax, [ebp + 0x38]
push eax
lea eax, [ebx + 0xcc0]
push eax
push ebx
call fcn.004421eb
add esp, 0x28
jmp 0x4526b6
push esi
push ebx
call fcn.0044ff51
mov eax, dword [ebx + 0x14]
push ebx
mov dword [eax + 0x248], esi
call fcn.00441769
mov eax, dword [ebx + 0x14]
mov edx, dword [eax + 0x244]
push ebx
call fcn.004394dd
add esp, 0x10
cmp edx, eax
je 0x4526b6
xor eax, eax
cmp edx, esi
sete al
push eax
push ebx
call fcn.00449ebc
pop ecx
pop ecx
push dword [ebp + 0x70]
push dword [ebx + 0xd18]
call sub.IMM32.dll_ImmReleaseContext
jmp 0x454338
test byte [ebp + 0x7d], 8
je 0x456ef7
cmp dword [ebx + 0xd24], esi
push dword [ebp + 0x7c]
push dword [ebp + 0x78]
push 0x10f
push dword [ebx + 0xd18]
jne 0x4526f4
call dword [sym.imp.USER32.dll_DefWindowProcA]
jmp 0x4526fa
call dword [sym.imp.USER32.dll_DefWindowProcW]
push esi
push ebx
mov edi, eax
call fcn.004393c5
pop ecx
pop ecx
jmp 0x454c4b
mov dword [ebx + 0xd98], esi
jmp 0x456ef7
mov ecx, dword [ebx + 0x6f0]
test byte [ecx + 4], 8
je 0x45273b
lea ecx, [ebp + 0x7c]
push ecx
lea ecx, [ebp + 0x78]
push ecx
push eax
push ebx
call fcn.0044875b
add esp, 0x10
test eax, eax
jne 0x454338
movzx eax, word [ebp + 0x78]
push esi
push eax
push ebx
call fcn.0044909d
jmp 0x451820
mov eax, 0x233
cmp edi, eax
ja 0x453352
je 0x45333a
mov ecx, 0x200
cmp edi, ecx
jb case.default.0x4548eb
add eax, 0xffffffd6
cmp edi, eax
jbe 0x452797
cmp edi, 0x20a
je 0x452882
cmp edi, 0x20e
je 0x452882
cmp edi, 0x215
jne case.default.0x4548eb
cmp edi, 0x201
je 0x4527c7
cmp edi, 0x203
je 0x4527c7
cmp edi, 0x204
je 0x4527c7
cmp edi, 0x206
je 0x4527c7
cmp edi, 0x207
je 0x4527c7
cmp edi, eax
je 0x4527c7
cmp edi, ecx
jne 0x452815
mov eax, dword [ebx + 0x6f0]
test byte [eax + 6], 2
je 0x4527ed
lea eax, [ebp + 0x7c]
push eax
lea eax, [ebp + 0x78]
push eax
push edi
push ebx
call fcn.0044875b
add esp, 0x10
test eax, eax
jne 0x454338
cmp dword [ebx + 0xe10], 3
jne 0x452815
lea eax, [ebx + 0xdb4]
push eax
push dword [ebp + 0x7c]
push dword [ebp + 0x78]
push edi
push ebx
call fcn.00448586
add esp, 0x14
test eax, eax
jne 0x454338
mov eax, 0x201
cmp edi, eax
je 0x452832
cmp edi, 0x204
je 0x452832
cmp edi, 0x207
jne 0x45298a
cmp dword [ebx + 0xe2c], esi
je 0x45298a
lea edi, [ebx + 0xe0c]
mov eax, dword [edi]
cmp eax, esi
je 0x452863
push eax
push dword [ebx + 0xd18]
call dword [sym.imp.USER32.dll_KillTimer]
push 2
push ebx
mov dword [edi], esi
call fcn.00436f79
pop ecx
pop ecx
push ebx
call fcn.0043802f
push ebx
mov dword [ebx + 0xe2c], esi
call fcn.00447336
pop ecx
pop ecx
mov dword [ebx + 0xe10], eax
jmp 0x454338
mov eax, dword [ebx + 0x6f0]
test byte [eax + 6], 2
je 0x4528a8
lea eax, [ebp + 0x7c]
push eax
lea eax, [ebp + 0x78]
push eax
push edi
push ebx
call fcn.0044875b
add esp, 0x10
test eax, eax
jne 0x454338
cmp edi, 0x20a
push esi
lea eax, [ebp + 0x7c]
push eax
mov dword [ebp + 0x7c], esi
push esi
jne 0x45291d
push 0x68
call dword [sym.imp.USER32.dll_SystemParametersInfoA]
mov eax, dword [ebp + 0x7c]
cmp eax, esi
jne 0x4528ce
push 3
pop eax
mov dword [ebp + 0x7c], eax
mov ecx, dword [ebx + 0x6f0]
xor edx, edx
test byte [ecx + 0xc], 0x20
mov ecx, dword [ebp + 0x78]
jne 0x4528ea
shr ecx, 0x10
test cx, cx
setl dl
jmp 0x4528f3
shr ecx, 0x10
test cx, cx
setge dl
mov ecx, edx
cmp ecx, esi
je 0x452906
cmp eax, 0xffffffff
jne 0x452915
push esi
push 3
jmp 0x452741
cmp eax, 0xffffffff
jne 0x452913
push esi
push 2
jmp 0x452741
neg eax
push 0x20
push eax
jmp 0x4521f0
push 0x6c
call dword [sym.imp.USER32.dll_SystemParametersInfoA]
mov eax, dword [ebp + 0x7c]
cmp eax, esi
jne 0x452932
push 3
pop eax
mov dword [ebp + 0x7c], eax
mov ecx, dword [ebx + 0x6f0]
xor edx, edx
test byte [ecx + 0xc], 0x10
mov ecx, dword [ebp + 0x78]
jne 0x45294e
shr ecx, 0x10
test cx, cx
setl dl
jmp 0x452957
shr ecx, 0x10
test cx, cx
setge dl
mov ecx, edx
cmp ecx, esi
je 0x452977
cmp eax, 0xffffffff
jne 0x452967
push esi
push 2
jmp 0x45297f
neg eax
push 8
push eax
push ebx
call fcn.00449179
jmp 0x456d73
cmp eax, 0xffffffff
jne 0x452969
push esi
push 3
push ebx
call fcn.00448fff
jmp 0x456d73
cmp edi, eax
je 0x452ebc
cmp edi, 0x203
je 0x452ebc
cmp edi, 0x204
jne 0x452a2b
mov eax, dword [ebx + 0x6f0]
test byte [eax + 0xa], 4
je 0x456ef7
lea eax, [ebp + 0x48]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
lea eax, [ebp + 0x48]
push eax
push dword [ebx + 0xd18]
call dword [sym.imp.USER32.dll_ScreenToClient]
mov eax, dword [ebx + 0x6f0]
test byte [eax + 8], 0x80
push 2
pop edi
jne 0x4529f0
xor eax, eax
cmp dword [ebx + 0xe10], edi
setne al
jmp 0x452a04
push dword [ebp + 0x4c]
push dword [ebp + 0x48]
push ebx
call fcn.0043c699
add esp, 0xc
neg eax
sbb eax, eax
inc eax
cmp eax, esi
je 0x456ef7
push esi
push dword [ebx + 0xd10]
lea eax, [ebp + 0x48]
push eax
push ebx
mov dword [ebx + 0xdcc], edi
call fcn.004427b2
add esp, 0x10
jmp 0x456ef7
cmp edi, 0x207
jne 0x452b31
mov eax, dword [ebx + 0x6f0]
test byte [eax + 0xa], 8
jne 0x454338
cmp dword [ebx + 0xe2c], esi
jne 0x454338
mov eax, dword [ebx + 0xd48]
mov ecx, dword [ebx + 0x14]
sub eax, dword [ebx + 0xd40]
mov edx, dword [ecx + 0xfc]
cmp edx, eax
jg 0x452a88
mov edi, dword [ebx + 0xd4c]
sub edi, dword [ebx + 0xd44]
cmp dword [ecx + 0x100], edi
jle 0x454338
cmp edx, eax
jle 0x452aae
mov edi, dword [ebx + 0xd4c]
sub edi, dword [ebx + 0xd44]
cmp dword [ecx + 0x100], edi
jle 0x452aa3
mov eax, dword [0x45e4c8]
jmp 0x452ac7
cmp edx, eax
jle 0x452aae
mov eax, dword [0x45e4cc]
jmp 0x452ac7
mov eax, dword [ebx + 0xd4c]
sub eax, dword [ebx + 0xd44]
cmp dword [ecx + 0x100], eax
jle 0x452acd
mov eax, dword [0x45e4d0]
mov dword [ebx + 0xe24], eax
lea edi, [ebx + 0xe14]
push edi
call dword [sym.imp.USER32.dll_GetCursorPos]
push edi
push dword [ebx + 0xd18]
call dword [sym.imp.USER32.dll_ScreenToClient]
xor eax, eax
inc eax
push ebx
mov dword [ebx + 0xe2c], eax
mov dword [ebx + 0xe30], esi
mov dword [ebx + 0xe34], eax
call fcn.00437f56
lea edi, [ebx + 0xe0c]
cmp dword [edi], esi
pop ecx
jne 0x454338
push esi
push 0x20
push 2
push dword [ebx + 0xd18]
call dword [sym.imp.USER32.dll_SetTimer]
push 2
push ebx
mov dword [edi], eax
call fcn.00436f55
jmp 0x4517d3
cmp edi, 0x200
jne 0x452cd2
cmp dword [ebx + 0xf4c], esi
je 0x452c92
lea eax, [ebx + 0xf58]
mov ecx, dword [eax]
cmp ecx, esi
jle 0x452b58
dec ecx
mov dword [eax], ecx
cmp dword [eax], esi
jne 0x454338
mov eax, dword [ebx + 0x6f0]
xor edi, edi
inc edi
mov dword [ebp + 0x78], esi
test byte [eax + 8], 1
mov dword [ebp + 0x74], 0x40101
mov dword [ebp + 0x7c], edi
jne 0x452b83
mov dword [ebp + 0x7c], 3
push esi
lea eax, [ebp + 0x7c]
push eax
push edi
push ebx
call fcn.00448422
add esp, 0x10
test eax, eax
jne 0x452c6d
mov dword [0x45e4d8], ebx
push ebx
mov dword [ebx + 0xf50], edi
call fcn.0043ea1c
pop ecx
lea ecx, [ebp + 0x78]
push ecx
push dword [ebp + 0x7c]
mov dword [ebx + 0xf54], eax
lea edi, [ebx + 0xecc]
lea eax, [ebx + 0xed8]
push edi
push eax
call dword [sym.imp.ole32.dll_DoDragDrop]
push eax
mov dword [ebp + 0x74], eax
lea eax, [ebp + 0x78]
push eax
push 2
push ebx
call fcn.00448422
add esp, 0x10
test eax, eax
jne 0x452c42
cmp dword [ebp + 0x74], 0x40100
jne 0x452c42
test byte [ebp + 0x78], 2
je 0x452c42
cmp dword [ebx + 0xf50], esi
je 0x452c42
push ebx
call fcn.0043e2eb
test eax, eax
pop ecx
jne 0x452c42
push 0x1000
push ebx
call fcn.00448291
push ebx
call fcn.00441769
push esi
push dword [ebx + 0xd10]
lea eax, [ebx + 0xcc0]
push eax
lea eax, [ebx + 0xcb4]
push eax
push ebx
call fcn.0044b17f
push ebx
call fcn.00441769
push ebx
call fcn.0044d87c
add esp, 0x28
push ebx
call fcn.00439fa3
pop ecx
lea eax, [ebx + 0xed8]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [edi]
push edi
call dword [eax + 8]
mov dword [0x45e4d8], esi
mov dword [ebx + 0xf50], esi
mov dword [ebx + 0xf54], esi
push 4
push ebx
mov dword [ebx + 0xf4c], esi
call fcn.00436f79
push dword [ebp + 0x74]
lea eax, [ebp + 0x78]
push eax
push 3
push ebx
call fcn.00448422
add esp, 0x18
jmp 0x454338
cmp dword [ebx + 0xe0c], esi
je 0x452ca7
push ebx
call fcn.00447336
pop ecx
mov dword [ebx + 0xe10], eax
push ebx
call fcn.0044e259
cmp dword [ebx + 0xe2c], esi
pop ecx
je 0x454338
add ebx, 0xe34
mov eax, dword [ebx]
cmp eax, esi
jle 0x454338
dec eax
mov dword [ebx], eax
jmp 0x454338
cmp edi, 0x202
jne 0x452d89
lea eax, [ebx + 0xf4c]
cmp dword [eax], esi
je 0x452d32
push 4
push ebx
mov dword [eax], esi
call fcn.00436f79
pop ecx
pop ecx
lea eax, [ebp + 0x48]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
lea eax, [ebp + 0x48]
push eax
push dword [ebx + 0xd18]
call dword [sym.imp.USER32.dll_ScreenToClient]
test byte [ebp + 0x78], 4
jne 0x452d1e
mov dword [ebx + 0xdcc], 2
push esi
push dword [ebx + 0xd10]
lea eax, [ebp + 0x48]
push eax
push ebx
call fcn.004427b2
add esp, 0x10
mov eax, dword [ebx + 0xe08]
cmp eax, esi
je 0x452d59
push eax
push dword [ebx + 0xd18]
call dword [sym.imp.USER32.dll_KillTimer]
push 9
push ebx
mov dword [ebx + 0xe08], esi
call fcn.00436f79
pop ecx
pop ecx
mov eax, dword [ebx + 0x6f0]
test byte [eax + 0xa], 2
jne 0x452d6f
mov dword [ebx + 0xdcc], 2
lea ecx, [ebx + 0xdcc]
mov eax, dword [ecx]
cmp eax, esi
je 0x452e65
or eax, 1
mov dword [ecx], eax
jmp 0x452e65
cmp edi, 0x208
jne 0x452e00
cmp dword [ebx + 0xe2c], esi
je 0x452e65
cmp dword [ebx + 0xe30], esi
jne 0x452e65
cmp dword [ebx + 0xe34], esi
jne 0x452df4
mov eax, dword [ebx + 0xe0c]
cmp eax, esi
je 0x452dd8
push eax
push dword [ebx + 0xd18]
call dword [sym.imp.USER32.dll_KillTimer]
push 2
push ebx
mov dword [ebx + 0xe0c], esi
call fcn.00436f79
pop ecx
pop ecx
push ebx
call fcn.0043802f
push ebx
mov dword [ebx + 0xe2c], esi
call fcn.00447336
pop ecx
pop ecx
mov dword [ebx + 0xe10], eax
jmp 0x452e65
mov dword [ebx + 0xe30], 1
jmp 0x452e65
cmp edi, 0x215
jne 0x452e59
lea edi, [ebx + 0xe0c]
mov eax, dword [edi]
cmp eax, esi
je 0x452e2d
push eax
push dword [ebx + 0xd18]
call dword [sym.imp.USER32.dll_KillTimer]
push 2
push ebx
mov dword [edi], esi
call fcn.00436f79
pop ecx
pop ecx
lea edi, [ebx + 0xe08]
mov eax, dword [edi]
cmp eax, esi
je 0x456ef7
push eax
push dword [ebx + 0xd18]
call dword [sym.imp.USER32.dll_KillTimer]
push 9
push ebx
mov dword [edi], esi
call fcn.00436f79
mov edi, dword [ebp + 0x74]
pop ecx
pop ecx
cmp edi, 0x205
jne case.default.0x4548eb
mov eax, dword [ebx + 0x6f0]
test byte [eax + 6], 2
je 0x452e8b
lea eax, [ebp + 0x7c]
push eax
lea eax, [ebp + 0x78]
push eax
push edi
push ebx
call fcn.0044875b
add esp, 0x10
test eax, eax
jne 0x454338
cmp dword [ebx + 0xe10], 3
jne case.default.0x4548eb
lea eax, [ebx + 0xdb4]
push eax
push dword [ebp + 0x7c]
push dword [ebp + 0x78]
push edi
push ebx
call fcn.00448586
add esp, 0x14
test eax, eax
je case.default.0x4548eb
jmp 0x454338
call dword [sym.imp.USER32.dll_GetMessageTime]
push 0x12
mov edi, eax
mov dword [ebp + 0x74], esi
mov dword [ebp + 0x7c], esi
mov dword [ebp + 0x70], esi
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jge 0x452ee1
mov dword [ebp + 0x74], 1
test byte [ebp + 0x78], 4
je 0x452eee
mov dword [ebp + 0x7c], 1
test byte [ebp + 0x78], 8
je 0x452efb
mov dword [ebp + 0x70], 1
lea eax, [ebx + 0xe04]
cmp dword [eax], 2
mov dword [eax], esi
je 0x454338
lea eax, [ebp + 0x48]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
lea eax, [ebp + 0x48]
push eax
push dword [ebx + 0xd18]
call dword [sym.imp.USER32.dll_ScreenToClient]
mov eax, dword [ebx + 0xdf4]
cmp eax, dword [ebp + 0x48]
jne 0x452f63
mov eax, dword [ebx + 0xdf8]
cmp eax, dword [ebp + 0x4c]
jne 0x452f63
call dword [sym.imp.USER32.dll_GetDoubleClickTime]
mov ecx, edi
sub ecx, dword [ebx + 0xdfc]
cmp eax, ecx
jb 0x452f63
mov eax, dword [ebx + 0xe00]
inc eax
push 3
cdq
pop ecx
idiv ecx
mov dword [ebx + 0xe00], edx
jmp 0x452f69
mov dword [ebx + 0xe00], esi
mov eax, dword [ebp + 0x48]
mov dword [ebx + 0xdf4], eax
mov eax, dword [ebp + 0x4c]
mov dword [ebx + 0xdf8], eax
mov eax, dword [ebx + 0xe00]
cmp eax, esi
mov dword [ebx + 0xdfc], edi
jne 0x45309c
mov edi, dword [ebx + 0xd18]
call dword [sym.imp.USER32.dll_GetFocus]
cmp eax, edi
je 0x452fa6
push edi
call dword [sym.imp.USER32.dll_SetFocus]
cmp dword [ebp + 0x74], esi
jne 0x453010
cmp dword [ebp + 0x7c], esi
je 0x452ffb
cmp dword [ebx + 0xe10], 4
jne 0x453010
lea edi, [ebx + 0xe08]
cmp dword [edi], esi
jne 0x454338
push esi
push 0x64
push 1
push dword [ebx + 0xd18]
call dword [sym.imp.USER32.dll_SetTimer]
push 8
push ebx
mov dword [edi], eax
call fcn.00436f55
mov eax, dword [ebx + 0x6f0]
mov eax, dword [eax + 0x10c]
pop ecx
pop ecx
mov dword [ebx + 0xe38], eax
jmp 0x454338
cmp dword [ebx + 0xe10], 1
jne 0x453010
mov dword [ebp + 0x78], 0x1100000
jmp 0x45324e
cmp dword [ebx + 0xf4c], esi
jne 0x45304e
cmp dword [ebp + 0x74], esi
jne 0x45304e
cmp dword [ebp + 0x7c], esi
jne 0x45304e
cmp dword [ebx + 0xe10], 2
jne 0x45304e
push 4
push ebx
call fcn.00436f55
pop ecx
pop ecx
mov dword [ebx + 0xf4c], 1
mov dword [ebx + 0xf58], 5
jmp 0x454338
lea edi, [ebx + 0xe08]
cmp dword [edi], esi
jne 0x453075
push esi
push 0x64
push 1
push dword [ebx + 0xd18]
call dword [sym.imp.USER32.dll_SetTimer]
push 1
push ebx
mov dword [edi], eax
call fcn.00436f55
pop ecx
pop ecx
cmp dword [ebp + 0x7c], esi
jne 0x453084
mov dword [ebx + 0xdcc], 2
push dword [ebp + 0x7c]
lea eax, [ebp + 0x48]
push dword [ebp + 0x74]
push eax
push ebx
call fcn.004427b2
add esp, 0x10
jmp 0x454338
cmp eax, 1
jne 0x453207
mov eax, dword [ebx + 0xe10]
cmp eax, 4
je 0x454338
cmp eax, 1
je 0x454338
lea edi, [ebx + 0xe08]
cmp dword [edi], esi
jne 0x4530e4
push esi
push 0x64
push 1
push dword [ebx + 0xd18]
call dword [sym.imp.USER32.dll_SetTimer]
push 1
push ebx
mov dword [edi], eax
call fcn.00436f55
pop ecx
pop ecx
push dword [ebx + 0xd10]
lea eax, [ebp + 0x5c]
push esi
push eax
push dword [ebp + 0x4c]
push dword [ebp + 0x48]
push ebx
call fcn.00438e38
mov dword [ebp + 0x78], eax
mov eax, dword [ebx + 0xcd0]
mov edi, dword [eax + 0xc]
add esp, 0x18
cmp edi, esi
mov dword [ebp + 0x7c], edi
je 0x453119
cmp dword [ebx + 0xcd4], esi
je 0x453154
cmp dword [ebp + 0x78], 2
jne 0x453124
mov esi, 0x1000
mov ecx, edi
neg ecx
sbb ecx, ecx
and ecx, 0x100
or ecx, esi
or ecx, 0x33
push ecx
push dword [ebx + 0xd10]
lea ecx, [ebp + 0x38]
push ecx
lea eax, [ebx + 0xccc]
push eax
push ebx
call fcn.0043d774
add esp, 0x14
test eax, eax
jne 0x453163
lea esi, [ebx + 0xccc]
lea edi, [ebp + 0x38]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov edi, dword [ebp + 0x7c]
mov eax, dword [ebp + 0x70]
neg eax
sbb eax, eax
and eax, 0x30
add eax, 0x10
neg edi
sbb edi, edi
and edi, 0x100
or eax, edi
or eax, 0x2c
push eax
push dword [ebx + 0xd10]
lea eax, [ebp + 0x28]
push eax
lea eax, [ebp + 0x38]
push eax
push ebx
call fcn.0043d4f7
add esp, 0x14
test eax, eax
jne 0x4531a7
lea esi, [ebx + 0xccc]
lea edi, [ebp + 0x28]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
cmp dword [ebp + 0x78], 3
jne 0x4531c4
lea eax, [ebx + 0xdd0]
push eax
lea eax, [ebx + 0xccc]
push eax
call fcn.004334c0
pop ecx
pop ecx
jmp 0x4531d3
lea edi, [ebx + 0xdd0]
lea esi, [ebx + 0xccc]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea edi, [ebx + 0xddc]
lea esi, [ebp + 0x38]
movsd dword es:[edi], dword [esi]
push 0x200000
movsd dword es:[edi], dword [esi]
push 0x200
push dword [ebx + 0xd10]
lea eax, [ebp + 0x38]
movsd dword es:[edi], dword [esi]
lea esi, [ebp + 0x28]
push eax
mov dword [ebx + 0xdcc], 4
mov eax, esi
jmp 0x45332b
cmp eax, 2
jne 0x454338
mov eax, dword [ebx + 0xe10]
cmp eax, 4
je 0x454338
cmp eax, 1
jne 0x453247
cmp dword [ebp + 0x74], esi
jne 0x454338
cmp dword [ebp + 0x7c], esi
jne 0x454338
push 0x1400000
push esi
push ebx
call fcn.00443ac3
jmp 0x451820
mov dword [ebp + 0x78], 0x400000
lea edi, [ebx + 0xe08]
cmp dword [edi], esi
jne 0x453275
push esi
push 0x64
push 1
push dword [ebx + 0xd18]
call dword [sym.imp.USER32.dll_SetTimer]
push 1
push ebx
mov dword [edi], eax
call fcn.00436f55
pop ecx
pop ecx
push dword [ebx + 0xd10]
lea eax, [ebp + 0x38]
push esi
push eax
push dword [ebp + 0x4c]
push dword [ebp + 0x48]
push ebx
call fcn.00438e38
mov eax, dword [ebx + 0x6f0]
mov eax, dword [eax + 8]
add esp, 0x18
test eax, 0x100000
mov dword [ebp + 0x7c], eax
je 0x4532c1
lea eax, [ebp + 0x50]
push eax
lea eax, [ebp + 0x38]
push eax
call fcn.0043366c
lea eax, [ebp + 0x5c]
push eax
lea eax, [ebp + 0x38]
push eax
call fcn.00433686
add esp, 0x10
jmp 0x4532e0
lea esi, [ebp + 0x38]
lea edi, [ebp + 0x50]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea esi, [ebp + 0x38]
lea edi, [ebp + 0x5c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [ebp + 0x60]
mov eax, dword [eax + 0xc]
and dword [ebp + 0x58], 0
mov dword [ebp + 0x64], eax
test byte [ebp + 0x7e], 1
jne 0x4532f6
lea eax, [ebp + 0x5c]
push eax
push eax
push 0x1c
push ebx
call fcn.0043b774
add esp, 0x10
push dword [ebp + 0x78]
lea edi, [ebx + 0xdd0]
lea esi, [ebp + 0x38]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea edi, [ebx + 0xddc]
lea esi, [ebp + 0x50]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push 0x200
lea eax, [ebp + 0x50]
movsd dword es:[edi], dword [esi]
push 0
lea esi, [ebp + 0x5c]
push eax
mov dword [ebx + 0xdcc], 8
mov eax, esi
lea edi, [ebx + 0xde8]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push eax
movsd dword es:[edi], dword [esi]
jmp 0x454800
push dword [ebp + 0x78]
push ebx
call fcn.004482fc
test eax, eax
pop ecx
pop ecx
jne 0x456ef7
jmp 0x454338
mov eax, edi
sub eax, 0x282
je 0x4535e8
sub eax, 4
je 0x4535aa
push 2
pop ecx
sub eax, ecx
je 0x453448
sub eax, 8
jne case.default.0x4548eb
push esi
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
and ax, 0x3ff
cmp ax, 0x12
jne 0x456ef7
cmp dword [ebp + 0x78], 0x19
jne 0x456ef7
push dword [ebx + 0xd18]
call sub.IMM32.dll_ImmGetContext
cmp eax, esi
mov dword [ebp + 0x70], eax
je 0x456ef7
lea esi, [ebx + 0xcb4]
lea edi, [ebp + 0x5c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea eax, [ebp + 0x5c]
push eax
movsd dword es:[edi], dword [esi]
call fcn.004335d2
lea eax, [ebp + 0x5c]
push eax
push eax
call fcn.00433482
lea eax, [ebp + 0x50]
push eax
lea eax, [ebp + 0x5c]
push eax
call fcn.004334c0
mov ecx, dword [ebp + 0x54]
mov ecx, dword [ecx + 8]
mov edx, dword [ebp + 0x58]
movzx ecx, word [ecx + edx*2]
add esp, 0x14
lea eax, [ebx + 0xd94]
push eax
push 0x1008
push dword [ebp + 0x70]
mov dword [eax], ecx
push 0
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
push eax
call sub.IMM32.dll_ImmEscapeW
test eax, eax
je 0x453433
push 0x10000000
push 0
push 0
lea eax, [ebp + 0x50]
push eax
lea eax, [ebp + 0x5c]
push eax
push ebx
call fcn.004421eb
push dword [ebp + 0x70]
push ebx
call fcn.00439449
add esp, 0x20
push dword [ebp + 0x70]
push dword [ebx + 0xd18]
call sub.IMM32.dll_ImmReleaseContext
xor esi, esi
jmp 0x456ef7
mov eax, dword [ebp + 0x78]
cmp eax, ecx
jne 0x453484
mov eax, dword [ebp + 0x7c]
cmp dword [eax + 4], 0x40
jne 0x456ef7
mov edi, eax
lea eax, [edi + 8]
push eax
push esi
lea eax, [ebx + 0xd04]
push eax
push ebx
call fcn.00436f9c
mov eax, dword [ebx + 0x14]
mov eax, dword [eax + 0xc8]
add esp, 0x10
add dword [edi + 0xc], eax
jmp 0x4548cb
cmp eax, 3
jne 0x4534ae
cmp dword [ebx + 0xd24], esi
mov eax, dword [ebx + 0x14]
jne 0x45349b
push 0x3c
add eax, 0x2c
jmp 0x4534a0
push 0x5c
add eax, 0x68
push eax
push dword [ebp + 0x7c]
call fcn.00434a7e
jmp 0x456d73
cmp eax, 1
jne 0x4534d8
mov eax, dword [ebp + 0x7c]
cmp dword [eax], ecx
jne 0x456ef7
add eax, 4
push eax
push esi
lea eax, [ebx + 0xd04]
push eax
push ebx
call fcn.00436f9c
add esp, 0x10
jmp 0x4548cb
cmp eax, 4
jne 0x456ef7
cmp dword [ebx + 0xd10], esi
jne 0x454338
mov edi, dword [ebp + 0x7c]
cmp edi, esi
push esi
push esi
push ecx
jne 0x453545
cmp dword [ebx + 0xd24], esi
push esi
lea eax, [ebx + 0xcc0]
push esi
push eax
lea eax, [ebx + 0xcb4]
push eax
jne 0x45352b
push esi
push esi
push esi
push ebx
call fcn.00443704
add esp, 0x2c
cmp eax, esi
je 0x454338
add eax, 0x20
jmp 0x456f1c
push ebx
call fcn.0043dadd
add esp, 0x20
cmp eax, esi
je 0x454338
lea eax, [eax + eax + 0x20]
jmp 0x456f1c
mov eax, dword [edi]
sub eax, 0x20
cmp dword [ebx + 0xd24], esi
push eax
lea eax, [edi + 0x20]
push eax
lea eax, [ebx + 0xcc0]
push eax
lea eax, [ebx + 0xcb4]
push eax
jne 0x453573
push esi
push esi
push esi
push ebx
call fcn.00443704
add esp, 0x2c
jmp 0x45357c
push ebx
call fcn.0043dadd
add esp, 0x20
cmp eax, esi
je 0x454338
mov dword [edi + 4], esi
mov dword [edi + 8], eax
mov dword [edi + 0xc], 0x20
mov dword [edi + 0x10], eax
mov dword [edi + 0x14], esi
mov dword [edi + 0x18], eax
mov dword [edi + 0x1c], esi
cmp dword [ebx + 0xd24], esi
jne 0x45353c
jmp 0x453523
push ebx
call fcn.0043e2eb
test eax, eax
pop ecx
jne 0x454338
cmp dword [ebx + 0xd24], esi
jne case.0x4544f2.3045
mov eax, dword [ebp + 0x78]
shr eax, 8
test al, al
je 0x4535dd
movzx eax, al
push esi
push eax
push ebx
call fcn.0044fca7
add esp, 0xc
movzx eax, byte [ebp + 0x78]
push esi
push eax
jmp 0x45451f
push esi
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
and ax, 0x3ff
cmp ax, 0x12
jne 0x456ef7
cmp dword [ebp + 0x78], 5
jne 0x456ef7
push esi
push ebx
call fcn.00439449
pop ecx
pop ecx
jmp 0x456ef7
push 2
push esi
push ebx
call fcn.0044f9a0
jmp 0x451820
cmp edi, ecx
ja 0x45371c
je case.0x4538e1.1103
mov eax, 0x432
cmp edi, eax
ja 0x45368f
je case.0x45434e.3035
mov eax, edi
sub eax, 0x301
je 0x45367b
dec eax
je 0x45366d
dec eax
je 0x453661
dec eax
jne case.default.0x4548eb
push ebx
call fcn.0044f3f9
jmp 0x454418
push esi
push ebx
call fcn.00450081
jmp 0x4517d3
push 1
push esi
push ebx
call fcn.0044fa23
jmp 0x451820
push dword [ebx + 0xd10]
push 2
push esi
push ebx
call fcn.0043e43a
jmp 0x453094
mov eax, edi
sub eax, 0x434
je 0x4536f8
dec eax
je 0x4536d1
dec eax
je 0x4536c1
dec eax
jne case.default.0x4548eb
mov eax, dword [ebp + 0x7c]
push dword [eax + 4]
push dword [eax]
push ebx
call fcn.00443ba3
mov eax, dword [ebx + 0xcec]
add esp, 0xc
jmp 0x456f1c
push dword [ebp + 0x7c]
push 0x14
push ebx
call fcn.0044403a
jmp 0x4543fc
mov eax, dword [ebp + 0x7c]
cmp eax, esi
jne 0x4536ea
mov eax, dword [ebx + 0x14]
mov dword [eax + 0x11c], 0x10000
jmp 0x454338
mov ecx, dword [ebx + 0x14]
mov dword [ecx + 0x11c], eax
jmp 0x454338
lea eax, [ebp + 0x4c]
push eax
lea eax, [ebp + 0x48]
push eax
push ebx
call fcn.00439671
mov ecx, dword [ebp + 0x48]
mov eax, dword [ebp + 0x7c]
mov dword [eax], ecx
mov ecx, dword [ebp + 0x4c]
add esp, 0xc
mov dword [eax + 4], ecx
jmp 0x454338
lea eax, [edi - 0x43b]
cmp eax, 0xf
ja case.default.0x4548eb
movzx eax, byte [eax + 0x456fbe]
jmp dword [eax*4 + 0x456f9a]
xor ecx, ecx
inc ecx
xor eax, eax
test byte [ebp + 0x78], cl
je 0x453778
test byte [ebp + 0x78], 0x10
je 0x453778
test byte [ebp + 0x79], 0x80
mov edi, dword [ebp + 0x7c]
mov edx, dword [edi]
mov dword [ebp + 0x50], edx
mov edx, dword [edi + 8]
mov dword [ebp + 0x58], edx
mov dword [ebp + 0x5c], ecx
je 0x453762
mov eax, ecx
lea ecx, [ebp + 0x50]
push ecx
push eax
push ebx
call fcn.0044ea4e
mov esi, eax
mov eax, dword [ebp + 0x54]
add esp, 0xc
mov dword [edi + 4], eax
mov eax, esi
jmp 0x456f1c
xor eax, eax
test byte [ebp + 0x78], 1
je 0x456f1c
test byte [ebp + 0x78], 0x10
je 0x456f1c
test byte [ebp + 0x79], 0x80
mov edi, dword [ebp + 0x7c]
mov eax, dword [edi]
mov dword [ebp + 0x54], eax
mov eax, dword [edi + 8]
mov dword [ebp + 0x5c], eax
mov dword [ebp + 0x60], 2
mov dword [ebp + 0x64], esi
je 0x4537b6
xor esi, esi
inc esi
lea eax, [ebp + 0x54]
push eax
push esi
push ebx
call fcn.0043e018
mov ecx, dword [ebp + 0x58]
add esp, 0xc
mov dword [edi + 4], ecx
jmp 0x456f1c
mov ecx, dword [ebx + 0xce8]
mov ebx, dword [ebx + 0xcec]
xor eax, eax
cmp ecx, ebx
je 0x456f1c
inc eax
sub ebx, ecx
cmp ebx, eax
jle 0x456f1c
push 5
pop eax
jmp 0x456f1c
mov eax, dword [ebx + 0x6f0]
mov eax, dword [eax + 4]
jmp 0x456f1c
mov ebx, dword [ebx + 0x6f0]
mov ecx, dword [ebp + 0x7c]
mov eax, dword [ebx + 4]
mov dword [ebx + 4], ecx
jmp 0x456f1c
cmp dword [ebp + 0x78], esi
mov dword [ebp - 0x1c], 8
jne 0x45382e
mov eax, dword [ebp + 0x7c]
mov dword [ebp - 0x10], eax
jmp 0x453835
mov dword [ebp - 0x1c], 9
lea eax, [ebp - 0x1c]
jmp 0x451817
cmp dword [ebp + 0x78], esi
mov eax, dword [ebx + 0x6f0]
je 0x45385a
and dword [eax + 8], 0xfffffffb
push dword [ebp + 0x78]
push ebx
call fcn.004384a7
jmp 0x4517d3
or dword [eax + 8], 4
jmp case.0x4548eb.3385
mov edi, dword [ebp + 0x7c]
mov eax, dword [edi]
mov ecx, dword [edi + 4]
cmp eax, ecx
jae 0x453895
lea ecx, [ebp + 0x50]
push ecx
push eax
push ebx
call fcn.004419e9
lea eax, [ebp + 0x5c]
push eax
push dword [edi + 4]
push ebx
call fcn.004419e9
add esp, 0x18
push esi
push esi
push 5
push 0xffffffffffffffff
push dword [edi + 8]
jmp 0x451a57
jne 0x454338
mov edi, dword [edi + 8]
cmp edi, esi
je 0x4548cb
cmp dword [ebx + 0xd24], esi
jne 0x454205
mov byte [edi], 0
jmp 0x454338
cmp edi, 0x47c
ja 0x453e23
cmp edi, 0x47b
jae case.0x4538e1.1103
lea eax, [edi - 0x44c]
cmp eax, 0x15
ja case.default.0x4548eb
jmp dword [eax*4 + 0x456fce]
mov eax, dword [ebp + 0x78]
mov ecx, dword [eax]
test cl, 2
mov dword [ebp + 0x7c], esi
je 0x453904
test cl, 4
je 0x453904
mov eax, 0x80070057
jmp 0x456f1c
test cl, 8
je 0x453910
test cl, 0x10
je 0x453915
jmp 0x4538fa
test cl, 0x10
jne 0x453938
test cl, 1
mov ebx, dword [ebx + 0x14]
mov eax, dword [ebx + 0x104]
mov dword [ebp + 0x7c], eax
je 0x456a98
mov eax, dword [ebx + 0x108]
add dword [ebp + 0x7c], eax
jmp 0x456a98
mov edx, dword [eax + 4]
cmp edx, 0x4b0
je 0x453995
cmp edx, 0x4b1
je 0x453995
mov ecx, dword [ebx + 0x14]
mov edi, dword [ecx + 4]
jmp 0x453974
mov ecx, dword [edi + 0xc]
cmp ecx, esi
je 0x453972
push esi
push esi
push esi
push esi
push ecx
push dword [edi + 8]
push esi
push dword [eax + 4]
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
add dword [ebp + 0x7c], eax
mov eax, dword [ebp + 0x78]
mov edi, dword [edi]
cmp edi, esi
jne 0x453953
mov ecx, dword [ebx + 0x14]
mov ecx, dword [ecx + 0x108]
add dword [ebp + 0x7c], ecx
test byte [eax], 1
je 0x456a98
add dword [ebp + 0x7c], ecx
jmp 0x456a98
test cl, 1
mov ebx, dword [ebx + 0x14]
mov eax, dword [ebx + 0x104]
je 0x4539a9
add eax, dword [ebx + 0x108]
add eax, eax
mov dword [ebp + 0x7c], eax
jmp 0x456a98
lea eax, [ebp + 0x50]
push eax
push esi
push 1
push ebx
call fcn.0043b774
lea eax, [ebp + 0x5c]
push eax
push esi
push 2
push ebx
call fcn.0043b774
add esp, 0x20
mov ecx, dword [ebp + 0x78]
movzx eax, byte [ecx + 4]
mov ecx, dword [ecx + 8]
and eax, 1
shl eax, 1
or eax, 5
cmp ecx, 0x4b0
jne 0x4540fe
push 0
push 0
push eax
mov eax, dword [ebp + 0x78]
mov eax, dword [eax]
shr eax, 1
push eax
push dword [ebp + 0x7c]
lea eax, [ebp + 0x5c]
push eax
lea eax, [ebp + 0x50]
push eax
push ebx
call fcn.0043dadd
add esp, 0x20
jmp 0x454160
mov eax, dword [ebx + 0x14]
mov edi, dword [ebp + 0x78]
test byte [edi], 1
mov eax, dword [eax + 0x250]
mov dword [ebp + 0x70], eax
jne 0x453a3c
push ebx
call fcn.00439504
mov eax, dword [ebx + 0x14]
pop ecx
mov dword [eax + 0x250], 1
test byte [edi], 2
jne 0x453a4d
push esi
push 4
push ebx
call fcn.00443ac3
add esp, 0xc
mov eax, dword [edi + 4]
cmp eax, 0x4b0
jne 0x453a6c
push esi
push esi
push esi
push 1
push 0xffffffffffffffff
push dword [ebp + 0x7c]
push ebx
call fcn.0044f1ad
add esp, 0x1c
jmp 0x453ad8
cmp eax, 0x4b1
jne 0x453afe
push dword [ebp + 0x7c]
call fcn.00434be6
mov edi, eax
shl edi, 1
lea eax, [edi + 2]
push eax
push esi
push esi
call fcn.0043ad6c
add esp, 0x10
cmp eax, esi
mov dword [ebp + 0x74], eax
je 0x453ad5
lea eax, [edi + 2]
push eax
push dword [ebp + 0x7c]
push dword [ebp + 0x74]
call fcn.00434a7e
push esi
push edi
push dword [ebp + 0x74]
call fcn.00439e07
push esi
push esi
push esi
push 1
shr edi, 1
push edi
push dword [ebp + 0x74]
push ebx
call fcn.0044f1ad
mov eax, dword [0x45e430]
add esp, 0x34
push dword [ebp + 0x74]
push esi
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov edi, dword [ebp + 0x78]
test byte [edi], 1
jne 0x453ae9
mov eax, dword [ebx + 0x14]
mov ecx, dword [ebp + 0x70]
mov dword [eax + 0x250], ecx
test byte [edi], 2
jne 0x4548cb
push esi
push ebx
call fcn.00449ebc
jmp 0x45641c
push esi
push esi
push esi
push 1
push 0xffffffffffffffff
push dword [ebp + 0x7c]
push eax
push ebx
call fcn.00450a87
add esp, 0x20
jmp 0x453ad8
push ebx
call fcn.004395de
jmp 0x454418
push ebx
call fcn.0044f6f9
jmp 0x454418
mov eax, dword [ebx + 0x14]
mov ecx, dword [ebp + 0x78]
mov dword [eax + 0x254], ecx
push ebx
call fcn.00441769
jmp 0x4517d4
mov edi, dword [ebp + 0x78]
cmp edi, 3
mov dword [ebp + 0x74], esi
je 0x454338
lea eax, [ebp + 0x38]
push eax
push dword [ebp + 0x7c]
push ebx
call fcn.004419e9
add esp, 0xc
push 2
pop eax
cmp edi, eax
jne 0x453b92
mov eax, dword [ebp + 0x3c]
mov eax, dword [eax + 8]
mov ecx, dword [ebp + 0x40]
movzx eax, word [eax + ecx*2]
mov ebx, dword [ebx + 0x6f0]
push eax
push dword [ebx + 0x218]
add ebx, 0x118
push ebx
call fcn.00439005
jmp 0x4543fc
cmp edi, esi
je 0x453bfa
cmp edi, 6
je 0x453c0f
push 4
pop eax
cmp edi, eax
je 0x453c03
cmp edi, 1
je 0x453bc1
cmp edi, 7
je 0x453bc6
cmp edi, 5
jne 0x454338
mov eax, dword [ebx + 0x6f0]
mov eax, dword [eax + 0x21c]
mov dword [ebp + 0x74], eax
jmp 0x453bcd
mov dword [ebp + 0x74], 8
push dword [ebp + 0x74]
lea eax, [ebp + 0x28]
push esi
push eax
lea eax, [ebp + 0x38]
push eax
push ebx
call fcn.0043d4f7
add esp, 0x14
test eax, eax
je 0x456a98
lea eax, [ebp + 0x28]
push eax
push ebx
call fcn.004369f2
pop ecx
jmp 0x454418
mov dword [ebp + 0x74], 1
jmp 0x453c12
mov eax, dword [ebx + 0x6f0]
mov eax, dword [eax + 0x21c]
mov dword [ebp + 0x74], eax
push dword [ebp + 0x74]
lea eax, [ebp + 0x28]
push esi
push eax
lea eax, [ebp + 0x38]
push eax
push ebx
call fcn.0043d774
jmp 0x453bdf
mov ecx, dword [ebx + 0x6f0]
mov ecx, dword [ecx + 8]
xor eax, eax
test cl, 1
je 0x453c3b
mov eax, 0x800
test cl, 4
je 0x453c45
or eax, 0x100
test cl, 8
je 0x456f1c
or eax, 0x1000
jmp 0x456f1c
test byte [ebp + 0x7d], 8
je 0x453c61
xor esi, esi
inc esi
test byte [ebp + 0x7d], 1
je 0x453c6a
or esi, 4
test byte [ebp + 0x7d], 0x10
je 0x453c73
or esi, 8
mov eax, dword [ebp + 0x78]
cmp eax, 1
jne 0x453c92
mov eax, dword [ebx + 0x6f0]
mov dword [eax + 8], esi
mov eax, dword [ebx + 0x6f0]
mov eax, dword [eax + 8]
jmp 0x456f1c
cmp eax, 2
jne 0x453ca2
mov eax, dword [ebx + 0x6f0]
or dword [eax + 8], esi
jmp case.0x4548eb.3227
cmp eax, 3
je 0x453cae
cmp eax, 4
jne case.0x4548eb.3227
not esi
mov eax, dword [ebx + 0x6f0]
and dword [eax + 8], esi
jmp case.0x4548eb.3227
mov eax, dword [ebx + 0x6f0]
movzx eax, byte [eax + 0xc]
and eax, 1
jmp 0x456f1c
mov eax, dword [ebx + 0x6f0]
mov edx, dword [eax + 0xc]
xor ecx, ecx
cmp dword [ebp + 0x78], esi
not edx
sete cl
and edx, 1
cmp ecx, edx
je 0x454338
cmp dword [ebp + 0x78], esi
je 0x453cf4
or dword [eax + 0xc], 1
jmp 0x453cf8
and dword [eax + 0xc], 0xfffffffe
push esi
jmp 0x4555d3
mov edi, dword [ebp + 0x78]
mov eax, dword [ebp + 0x7c]
xor edx, edx
cmp edi, 3
je 0x453d0f
cmp edi, esi
jne 0x453d1e
lea ecx, [ebx + 0xd80]
cmp dword [ecx], eax
je 0x453d1e
xor edx, edx
mov dword [ecx], eax
inc edx
cmp edi, 3
je 0x453d28
cmp edi, 1
jne 0x453d37
lea ecx, [ebx + 0xd84]
cmp dword [ecx], eax
je 0x453d37
xor edx, edx
mov dword [ecx], eax
inc edx
cmp edx, esi
je 0x454338
push eax
push edi
push dword [ebx + 0xd18]
call dword [sym.imp.USER32.dll_ShowScrollBar]
jmp 0x454338
test byte [ebp + 0x78], 1
mov dword [ebp - 0x1c], esi
je 0x453d62
mov dword [ebp - 0x1c], 1
test byte [ebp + 0x78], 4
je 0x453d6c
or dword [ebp - 0x1c], 4
test byte [ebp + 0x78], 2
je 0x453d76
or dword [ebp - 0x1c], 2
mov edi, dword [ebp + 0x7c]
mov eax, dword [edi + 8]
or dword [ebp - 0x14], 0xffffffff
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0xc]
push eax
push dword [edi]
mov dword [ebp - 0x10], 5
push ebx
call fcn.004419e9
lea eax, [ebp]
push eax
push dword [edi + 4]
push ebx
call fcn.004419e9
add esp, 0x18
cmp dword [ebx + 0xd24], esi
jne 0x453dd0
cmp dword [ebp + 0x74], 0x438
je 0x453dc0
cmp dword [ebp + 0x74], 0x44f
jne 0x453dd0
lea eax, [ebp - 0x1c]
push eax
push esi
push ebx
call fcn.004471d2
add esp, 0xc
jmp 0x453ddc
lea eax, [ebp - 0x1c]
push eax
push ebx
call fcn.00444db3
pop ecx
pop ecx
cmp eax, esi
je 0x4546c3
cmp dword [ebp + 0x74], 0x44f
je 0x453dfe
cmp dword [ebp + 0x74], 0x47c
je 0x453dfe
lea eax, [ebp + 0xc]
jmp 0x453bed
lea eax, [ebp + 0xc]
push eax
push ebx
call fcn.004369f2
mov dword [edi + 0xc], eax
lea eax, [ebp + 0x18]
push eax
push ebx
call fcn.004369f2
mov dword [edi + 0x10], eax
mov eax, dword [edi + 0xc]
add esp, 0x10
jmp 0x456f1c
mov eax, 0xbe3
cmp edi, eax
ja 0x4544dc
je 0x4544cb
add eax, 0xfffffff0
cmp edi, eax
ja 0x45433f
je 0x454321
mov eax, 0xba1
cmp edi, eax
ja 0x454085
je 0x454063
cmp edi, 0xb72
ja 0x453f4d
cmp edi, edx
jae 0x453f04
cmp edi, 0x4dd
je 0x453ee9
cmp edi, 0x4de
je 0x453ed6
cmp edi, 0xb6c
jbe case.default.0x4548eb
cmp edi, 0xb6e
ja case.default.0x4548eb
cmp edi, 0xb6d
je 0x453ebd
cmp dword [ebx + 0xd24], esi
jne 0x453eae
cmp edi, 0xc2
je 0x453ebd
push esi
push esi
push esi
push 1
push 0xffffffffffffffff
push dword [ebp + 0x7c]
jmp 0x45439b
push esi
push esi
push esi
push 1
push 0xffffffffffffffff
push dword [ebp + 0x7c]
push esi
push ebx
call fcn.00450a87
add esp, 0x20
jmp 0x454338
mov eax, dword [ebp + 0x7c]
push dword [eax + 4]
push dword [eax]
push ebx
call fcn.00448fc8
jmp 0x456d73
mov ecx, dword [ebx + 0xcf4]
mov eax, dword [ebp + 0x7c]
mov dword [eax], ecx
mov ecx, dword [ebx + 0xcf8]
mov dword [eax + 4], ecx
jmp 0x4548cb
cmp edi, edx
je 0x453f31
cmp dword [ebx + 0xd24], esi
jne 0x453f16
cmp edi, 0x43e
je 0x453f31
push esi
push esi
push 5
push 0xffffffffffffffff
push dword [ebp + 0x7c]
lea eax, [ebx + 0xcc0]
push eax
lea eax, [ebx + 0xcb4]
jmp 0x4543e1
push esi
push esi
push 5
push 0xffffffffffffffff
push dword [ebp + 0x7c]
lea eax, [ebx + 0xcc0]
push eax
lea eax, [ebx + 0xcb4]
push eax
jmp 0x451a6b
cmp edi, 0xb73
jb case.default.0x4548eb
cmp edi, 0xb74
jbe case.0x452056.196
cmp edi, 0xb9f
je 0x453f88
cmp edi, 0xba0
jne case.default.0x4548eb
mov eax, dword [ebp + 0x7c]
lea ecx, [eax + 4]
push ecx
push eax
push ebx
call fcn.00439671
jmp 0x4543fc
lea eax, [ebp + 0x4c]
push eax
lea eax, [ebp + 0x48]
push eax
push ebx
call fcn.00439671
mov ecx, dword [ebp + 0x78]
add esp, 0xc
cmp ecx, esi
je 0x453fa5
mov edx, dword [ebp + 0x48]
mov dword [ecx], edx
mov ecx, dword [ebp + 0x7c]
cmp ecx, esi
je 0x456f1c
mov edx, dword [ebp + 0x4c]
jmp 0x4558a3
cmp edi, 0xb73
je 0x45401f
cmp dword [ebx + 0xd24], esi
jne 0x453fd0
cmp edi, 0xc4
je 0x45401f
mov edi, dword [ebp + 0x7c]
movzx eax, word [edi]
push dword [ebp + 0x78]
mov dword [ebp + 0x7c], eax
push ebx
mov word [edi], si
call fcn.00436445
cmp eax, esi
pop ecx
pop ecx
je 0x453778
mov esi, dword [eax + 0xc]
cmp dword [ebp + 0x7c], esi
jge 0x453ffa
mov esi, dword [ebp + 0x7c]
lea ebx, [esi + esi]
push ebx
push dword [eax + 8]
push edi
call fcn.00434a7e
add esp, 0xc
cmp esi, dword [ebp + 0x7c]
jge 0x453778
mov word [ebx + edi], 0xd
inc esi
jmp 0x453778
mov edi, dword [ebp + 0x7c]
movzx eax, word [edi]
push dword [ebp + 0x78]
mov dword [ebp + 0x7c], eax
push ebx
mov byte [edi], 0
call fcn.00436445
cmp eax, esi
pop ecx
pop ecx
je 0x453778
push esi
push esi
push dword [ebp + 0x7c]
push edi
push dword [eax + 0xc]
push dword [eax + 8]
push esi
push esi
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov esi, eax
cmp esi, dword [ebp + 0x7c]
jge 0x453778
mov byte [esi + edi], 0xd
jmp 0x454019
mov eax, dword [ebp + 0x7c]
push dword [eax + 4]
push dword [eax]
push ebx
call fcn.00443ba3
mov eax, dword [ebx + 0xcec]
add esp, 0xc
sub eax, dword [ebx + 0xce8]
jmp 0x456f1c
mov eax, 0xbcf
cmp edi, eax
ja 0x4542e4
je 0x4542c8
cmp edi, 0xba2
jb case.default.0x4548eb
cmp edi, 0xba4
jbe 0x45420d
cmp edi, 0xba8
jbe case.default.0x4548eb
cmp edi, 0xbab
jbe 0x454167
cmp edi, 0xbac
jne case.default.0x4548eb
mov eax, dword [ebp + 0x78]
test byte [eax + 4], 2
je 0x4539b3
lea esi, [ebx + 0xcb4]
lea edi, [ebp + 0x50]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea esi, [ebx + 0xcc0]
lea edi, [ebp + 0x5c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
jmp 0x4539d0
cmp ecx, 0x4b1
jne 0x45413b
xor edi, edi
push edi
push edi
push eax
mov eax, dword [ebp + 0x78]
mov eax, dword [eax]
shr eax, 1
push eax
push dword [ebp + 0x7c]
lea eax, [ebp + 0x5c]
push eax
lea eax, [ebp + 0x50]
push eax
push ebx
call fcn.0043dadd
mov esi, eax
push edi
lea eax, [esi + esi]
push eax
push dword [ebp + 0x7c]
call fcn.00439e07
add esp, 0x2c
jmp 0x453778
push 0
push 0
push eax
mov eax, dword [ebp + 0x78]
push dword [eax]
lea edx, [ebp + 0x5c]
push dword [ebp + 0x7c]
push edx
lea edx, [ebp + 0x50]
push edx
push dword [eax + 0x10]
push dword [eax + 0xc]
push ecx
push ebx
call fcn.00443704
add esp, 0x2c
mov esi, eax
jmp 0x453778
mov edi, dword [ebp + 0x7c]
mov eax, dword [edi]
mov ecx, dword [edi + 4]
cmp eax, ecx
jae 0x4541d2
lea ecx, [ebp + 0x50]
push ecx
push eax
push ebx
call fcn.004419e9
lea eax, [ebp + 0x5c]
push eax
push dword [edi + 4]
push ebx
call fcn.004419e9
add esp, 0x18
cmp dword [ebp + 0x74], 0xbaa
je 0x4541bd
cmp dword [ebx + 0xd24], esi
jne 0x4541a8
cmp dword [ebp + 0x74], 0xba9
je 0x4541bd
push esi
push esi
push 5
push 0xffffffffffffffff
push dword [edi + 8]
lea eax, [ebp + 0x5c]
push eax
lea eax, [ebp + 0x50]
jmp 0x4543e1
push esi
push esi
push 5
push 0xffffffffffffffff
push dword [edi + 8]
lea eax, [ebp + 0x5c]
push eax
lea eax, [ebp + 0x50]
jmp 0x453f47
jne 0x454338
mov edi, dword [edi + 8]
cmp edi, esi
je 0x4548cb
cmp dword [ebp + 0x74], 0xbaa
je 0x4538b2
cmp dword [ebx + 0xd24], esi
jne 0x454205
cmp dword [ebp + 0x74], 0xba9
je 0x4538b2
mov word [edi], si
jmp 0x454338
test byte [ebp + 0x78], 1
mov dword [ebp - 0x1c], esi
je 0x45421d
mov dword [ebp - 0x1c], 1
test byte [ebp + 0x78], 4
je 0x454227
or dword [ebp - 0x1c], 4
test byte [ebp + 0x78], 2
je 0x454231
or dword [ebp - 0x1c], 2
mov eax, dword [ebp + 0x7c]
mov ecx, dword [eax + 8]
or dword [ebp - 0x14], 0xffffffff
mov dword [ebp - 0x18], ecx
lea ecx, [ebp - 0xc]
push ecx
push dword [eax]
mov dword [ebp - 0x10], 5
push ebx
call fcn.004419e9
lea eax, [ebp]
push eax
mov eax, dword [ebp + 0x7c]
push dword [eax + 4]
push ebx
call fcn.004419e9
add esp, 0x18
cmp edi, 0xba3
je 0x45428a
cmp dword [ebx + 0xd24], esi
jne 0x45427c
cmp edi, 0xba2
je 0x45428a
lea eax, [ebp - 0x1c]
push eax
push ebx
call fcn.00444db3
pop ecx
pop ecx
jmp 0x454298
lea eax, [ebp - 0x1c]
push eax
push esi
push ebx
call fcn.004471d2
add esp, 0xc
cmp eax, esi
je 0x4546c3
lea eax, [ebp + 0xc]
push eax
push ebx
call fcn.004369f2
mov esi, dword [ebp + 0x7c]
mov dword [esi + 0xc], eax
lea eax, [ebp + 0x18]
push eax
push ebx
call fcn.004369f2
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0xc]
add esp, 0x10
jmp 0x456f1c
mov eax, dword [ebp + 0x7c]
push dword [eax + 8]
push dword [eax + 4]
push dword [eax]
push dword [eax + 0xc]
push ebx
call fcn.00450992
add esp, 0x14
jmp 0x456f1c
mov eax, edi
sub eax, 0xbd0
je 0x454313
dec eax
je 0x454308
dec eax
jne case.default.0x4548eb
push esi
push 1
push dword [ebp + 0x78]
push dword [ebp + 0x7c]
push ebx
call fcn.0044e5fb
jmp 0x4542dc
push 1
push dword [ebp + 0x78]
push dword [ebp + 0x7c]
push esi
jmp 0x4542d6
mov eax, dword [ebp + 0x7c]
push esi
push dword [eax + 8]
push dword [eax + 4]
push dword [eax]
jmp 0x454300
mov eax, dword [ebp + 0x7c]
push dword [eax + 8]
push dword [eax + 4]
push dword [eax]
push dword [eax + 0xc]
push ebx
call fcn.00450a12
add esp, 0x14
xor eax, eax
jmp 0x456f1c
lea eax, [edi - 0xbd4]
cmp eax, 0xe
ja case.default.0x4548eb
jmp dword [eax*4 + 0x457026]
mov eax, dword [ebp + 0x7c]
push dword [eax + 8]
push dword [eax + 4]
push dword [eax]
push ebx
call fcn.0044f096
jmp 0x453094
mov eax, dword [ebp + 0x7c]
push dword [eax + 0x14]
push dword [eax + 0x10]
push dword [eax + 0xc]
push dword [eax + 8]
push dword [eax + 4]
push dword [eax]
push dword [eax + 0x18]
jmp 0x453ec8
mov eax, dword [ebp + 0x7c]
push dword [eax + 0x14]
push dword [eax + 0x10]
push dword [eax + 0xc]
push dword [eax + 8]
push dword [eax + 4]
push dword [eax]
push ebx
call fcn.0044f1ad
jmp 0x452380
mov eax, dword [ebp + 0x7c]
push dword [eax + 0x34]
lea ecx, [eax + 0xc]
push dword [eax + 0x18]
push dword [eax + 0x24]
push dword [eax + 0x20]
push dword [eax + 0x1c]
push ecx
push eax
push dword [eax + 0x30]
push dword [eax + 0x2c]
push dword [eax + 0x28]
jmp 0x451a6e
mov eax, dword [ebp + 0x7c]
push dword [eax + 0x34]
lea ecx, [eax + 0xc]
push dword [eax + 0x18]
push dword [eax + 0x24]
push dword [eax + 0x20]
push dword [eax + 0x1c]
push ecx
push eax
push ebx
call fcn.0043dadd
add esp, 0x20
jmp 0x456f1c
push dword [ebp + 0x7c]
push dword [ebp + 0x78]
push ebx
call fcn.0044ea4e
add esp, 0xc
jmp 0x456f1c
push dword [ebp + 0x7c]
push dword [ebp + 0x78]
push ebx
call fcn.0043e018
jmp 0x4543fc
push ebx
call fcn.004395ac
pop ecx
jmp 0x456f1c
mov eax, dword [ebp + 0x78]
cmp eax, esi
jne 0x454428
xor eax, eax
inc eax
push eax
push dword [ebp + 0x7c]
push ebx
call fcn.0044fa23
jmp 0x4543fc
mov eax, dword [ebp + 0x78]
cmp eax, esi
jne 0x45443e
push 2
pop eax
push eax
push dword [ebp + 0x7c]
push ebx
call fcn.0044f9a0
jmp 0x4543fc
mov eax, dword [ebp + 0x78]
push dword [ebp + 0x7c]
mov edi, dword [ebx + 0xd10]
mov dword [ebp + 0x74], eax
lea eax, [ebp + 0x50]
push eax
push ebx
call fcn.0043e30c
add esp, 0xc
test eax, eax
je 0x45446c
xor edi, edi
cmp dword [ebp + 0x78], esi
jne 0x454478
mov dword [ebp + 0x74], 2
push edi
push dword [ebp + 0x74]
lea eax, [ebp + 0x50]
push eax
push ebx
call fcn.0043e43a
add esp, 0x10
jmp 0x456f1c
push dword [ebp + 0x7c]
push dword [ebp + 0x78]
push ebx
call fcn.0043c38b
jmp 0x4543fc
push dword [ebp + 0x7c]
push esi
push ebx
call fcn.004471d2
jmp 0x4543fc
push dword [ebp + 0x7c]
push ebx
call fcn.00444db3
jmp 0x453bf4
push dword [ebp + 0x78]
push dword [ebp + 0x7c]
push esi
push ebx
call fcn.004450a3
jmp 0x454486
push dword [ebp + 0x78]
push dword [ebp + 0x7c]
push ebx
call fcn.004437ca
jmp 0x4543fc
lea eax, [edi - 0xbe4]
cmp eax, 0x56
ja case.default.0x4548eb
movzx eax, byte [eax + 0x4570e2]
jmp dword [eax*4 + 0x457062]
mov eax, dword [ebp + 0x7c]
mov ecx, eax
and ecx, 4
push ecx
mov ecx, eax
and ecx, 2
push ecx
and eax, 1
push eax
push dword [ebp + 0x78]
push ebx
call fcn.00450b05
jmp 0x4542dc
push 1
push dword [ebp + 0x78]
push ebx
call fcn.0044fca7
jmp 0x451820
push dword [ebp + 0x78]
call fcn.004336a0
jmp 0x454418
push esi
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
jmp 0x456f1c
cmp dword [ebp + 0x78], 1
jne 0x454561
mov eax, dword [0x45e4d8]
cmp eax, esi
je 0x454338
mov eax, dword [eax + 0xd18]
jmp 0x456f1c
xor eax, eax
cmp dword [ebp + 0x78], 2
jne 0x456f1c
mov dword [0x45e4d8], esi
jmp 0x456f1c
mov eax, dword [ebx + 0x6f0]
test byte [eax + 8], 1
je 0x453b14
jmp 0x454338
mov ecx, dword [ebp + 0x7c]
cmp ecx, esi
je 0x4545cd
mov edi, dword [ecx]
jmp 0x4545b4
mov eax, dword [edi + 0x1c]
cmp eax, esi
je 0x4545b2
push eax
push esi
push dword [ebx + 0xf7c]
call fcn.00435718
mov ecx, dword [ebp + 0x7c]
add esp, 0xc
mov edi, dword [edi]
cmp edi, esi
jne 0x454598
lea eax, [ecx + 4]
push eax
push ecx
push dword [ebx + 0xf7c]
call fcn.00435834
jmp 0x451820
cmp dword [ebp + 0x78], esi
push ebx
je 0x45208b
call fcn.004395de
test eax, eax
pop ecx
je 0x454338
mov eax, dword [ebx + 0x14]
push dword [eax + 0x238]
push ebx
call fcn.0043618b
jmp 0x4517d3
mov eax, dword [ebx + 0x14]
mov dword [eax + 0x24c], 1
jmp 0x454338
mov eax, dword [ebx + 0x14]
mov dword [eax + 0x24c], esi
jmp 0x454338
mov eax, dword [ebx + 0x14]
mov ecx, dword [ebp + 0x78]
mov dword [eax + 0x250], ecx
jmp 0x454338
mov eax, dword [ebp + 0x7c]
cmp eax, esi
je 0x45463c
mov ecx, dword [ebx + 0x14]
mov ecx, dword [ecx + 0x258]
mov dword [eax], ecx
mov eax, dword [ebx + 0x14]
mov eax, dword [eax + 0x254]
jmp 0x456f1c
mov eax, dword [ebx + 0x14]
mov eax, dword [eax + 0x244]
jmp 0x456f1c
push dword [ebp + 0x78]
push ebx
call fcn.00449ebc
jmp 0x4517d3
push ebx
call fcn.004361cd
jmp 0x454418
push dword [ebp + 0x7c]
push ebx
call fcn.0043620d
jmp 0x453bf4
push ebx
call fcn.00443dcd
jmp 0x454418
push dword [ebp + 0x7c]
push ebx
call fcn.00443eba
jmp 0x453bf4
mov ecx, dword [ebp + 0x7c]
mov eax, dword [ecx]
mov dl, byte [ebp + 0x78]
test dl, 1
mov edi, dword [ebx + 0x14]
mov dword [ebp + 0x74], eax
mov eax, dword [edi + 0x238]
mov dword [ebp + 0x70], esi
je 0x4546f1
mov edx, dword [ebp + 0x74]
cmp edx, esi
jne 0x4546cb
cmp eax, dword [edi + 0x230]
jne 0x4546cb
or eax, 0xffffffff
jmp 0x456f1c
cmp eax, esi
jne 0x4546d7
mov eax, dword [edi + 0x22c]
jmp 0x4546df
mov ecx, dword [eax]
cmp ecx, esi
je 0x4546e6
mov eax, ecx
mov dword [ebp + 0x70], 1
cmp edx, esi
je 0x454750
mov ecx, dword [edx]
mov dword [ebp + 0x74], ecx
jmp 0x454753
test dl, 2
je 0x454716
mov ecx, dword [ebp + 0x74]
cmp ecx, esi
jne 0x454703
cmp eax, esi
jne 0x45470d
jmp 0x4546c3
cmp eax, esi
jne 0x45470d
mov eax, dword [edi + 0x22c]
cmp ecx, esi
je 0x454750
mov ecx, dword [ecx + 4]
jmp 0x4546ec
test dl, 4
je 0x454723
mov eax, dword [edi + 0x22c]
jmp 0x45473b
test dl, 8
je 0x454730
mov eax, dword [edi + 0x230]
jmp 0x45473b
test dl, 0x40
je 0x45473f
mov eax, dword [edi + 0x23c]
mov dword [ecx], eax
jmp 0x4546c3
cmp eax, esi
jne 0x454749
mov eax, dword [edi + 0x22c]
mov edi, dword [ebp + 0x74]
cmp edi, esi
jne 0x454762
mov dword [ebp + 0x74], eax
cmp dword [ebp + 0x74], esi
je 0x4546c3
mov edi, dword [ebp + 0x74]
mov dl, byte [ebp + 0x78]
cmp eax, esi
je 0x4546c3
test dl, 0x10
je 0x45477e
mov ecx, dword [eax + 0x28]
sub ecx, dword [ebp + 0x70]
cmp ecx, dword [edi + 0x28]
jg 0x4546c3
test dl, 0x20
je 0x454792
mov ecx, dword [eax + 0x28]
sub ecx, dword [ebp + 0x70]
cmp ecx, dword [edi + 0x28]
jl 0x4546c3
push edi
push eax
push ebx
call fcn.0043628e
mov edx, dword [ebp + 0x7c]
add esp, 0xc
mov ecx, eax
inc ecx
neg ecx
sbb ecx, ecx
and ecx, dword [ebp + 0x74]
mov dword [edx], ecx
jmp 0x456f1c
mov edi, dword [ebp + 0x78]
cmp edi, esi
je 0x4547c3
lea esi, [ebx + 0xcb4]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
xor esi, esi
mov edi, dword [ebp + 0x7c]
cmp edi, esi
je 0x4547d3
lea esi, [ebx + 0xcc0]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea eax, [ebx + 0xcc0]
push eax
add ebx, 0xcb4
push ebx
call fcn.004332ed
pop ecx
neg eax
pop ecx
sbb eax, eax
neg eax
jmp 0x456f1c
push 0x4000000
push esi
push esi
push dword [ebp + 0x78]
push dword [ebp + 0x7c]
push ebx
call fcn.004421eb
jmp 0x452c8a
push dword [ebp + 0x78]
push dword [ebp + 0x7c]
push ebx
call fcn.00439611
jmp 0x4543fc
mov edi, dword [ebp + 0x7c]
test byte [edi + 0x19], 8
je 0x454864
push dword [edi]
push ebx
call fcn.00436445
pop ecx
pop ecx
mov ecx, dword [edi + 0xc]
cmp dword [edi], ecx
mov dword [edi + 4], eax
je 0x454842
push ecx
push ebx
call fcn.00436445
pop ecx
pop ecx
mov ecx, dword [ebp + 0x78]
cmp ecx, esi
mov dword [edi + 0x10], eax
je 0x454867
mov eax, dword [ecx]
cmp dword [edi], eax
jne 0x454857
mov eax, dword [edi + 4]
jmp 0x45485f
cmp dword [edi + 0xc], eax
jne 0x454867
mov eax, dword [edi + 0x10]
mov dword [ecx + 4], eax
jmp 0x454867
mov ecx, dword [ebp + 0x78]
push ecx
push edi
push ebx
call fcn.00443b06
jmp 0x451820
mov eax, dword [ebx + 0xd10]
jmp 0x456f1c
push dword [ebp + 0x78]
push ebx
call fcn.00442770
jmp 0x4517d3
push dword [ebp + 0x7c]
push dword [ebp + 0x78]
jmp 0x4536c6
push dword [ebp + 0x7c]
push dword [ebp + 0x7c]
push dword [ebp + 0x78]
push ebx
call fcn.0043b774
jmp 0x454486
mov edi, dword [ebp + 0x78]
push edi
push ebx
call fcn.00436445
cmp eax, esi
pop ecx
pop ecx
je 0x454338
mov ecx, dword [ebp + 0x7c]
mov dword [ecx], edi
mov dword [ecx + 4], eax
mov dword [ecx + 8], esi
xor eax, eax
inc eax
jmp 0x456f1c
lea eax, [edi - 0xc3c]
cmp eax, 0x1da
ja case.default.0x4548eb
movzx eax, byte [eax + 0x4573ad]
jmp dword [eax*4 + 0x457139]
push dword [ebp + 0x7c]
push ebx
call fcn.00436e4f
jmp 0x453bf4
push dword [ebp + 0x7c]
push dword [ebp + 0x78]
call fcn.004332b4
jmp 0x453bf4
mov eax, dword [ebp + 0x7c]
push 1
push dword [eax + 8]
push dword [eax + 0xc]
push dword [eax + 4]
push dword [eax]
push ebx
call fcn.0043bcb6
add esp, 0x18
jmp 0x456f1c
mov eax, dword [ebp + 0x7c]
push dword [eax + 0xc]
push dword [eax + 8]
push dword [eax + 4]
push dword [eax]
push ebx
call fcn.00436ca6
jmp 0x4542dc
mov eax, dword [ebp + 0x7c]
cmp eax, esi
je 0x4546c3
cmp dword [eax + 4], esi
je 0x4546c3
jmp 0x453bed
push dword [ebp + 0x7c]
push dword [ebp + 0x78]
push ebx
call fcn.004419e9
jmp 0x451820
push dword [ebp + 0x7c]
push dword [ebp + 0x78]
jmp 0x4520bb
push dword [ebp + 0x7c]
push dword [ebp + 0x78]
push ebx
call fcn.00436732
jmp 0x4543fc
push dword [ebp + 0x78]
push ebx
call fcn.00436892
jmp 0x453bf4
mov eax, dword [ebp + 0x78]
cmp eax, esi
jne 0x4549ae
mov eax, dword [ebx + 0x6f0]
mov eax, dword [eax + 0x21c]
push eax
push esi
push dword [ebp + 0x7c]
push dword [ebp + 0x7c]
push ebx
call fcn.0043d4f7
jmp 0x4542dc
mov eax, dword [ebp + 0x78]
cmp eax, esi
jne 0x4549d4
mov eax, dword [ebx + 0x6f0]
mov eax, dword [eax + 0x21c]
push eax
push esi
push dword [ebp + 0x7c]
push dword [ebp + 0x7c]
push ebx
call fcn.0043d774
jmp 0x4542dc
push dword [ebp + 0x78]
push dword [ebp + 0x7c]
push ebx
call fcn.0043da1c
jmp 0x4543fc
mov eax, dword [ebp + 0x78]
movzx ecx, ax
shr eax, 0x10
cmp ecx, esi
mov dword [ebp + 0x74], ecx
mov dword [ebp + 0x78], esi
jne 0x454a17
mov ecx, dword [ebx + 0x14]
mov ecx, dword [ecx + 0xe0]
mov dword [ebp + 0x74], ecx
mov ebx, dword [ebp + 0x7c]
mov esi, ebx
lea edi, [ebp + 0x38]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov edx, dword [ebp + 0x3c]
mov ecx, dword [edx + 0xc]
cmp dword [ebp + 0x40], ecx
jle 0x454a30
mov dword [ebp + 0x40], ecx
test al, 1
jne 0x454a43
mov eax, dword [ebp + 0x38]
and dword [ebp + 0x4c], 0
mov dword [ebp + 0x44], eax
mov dword [ebp + 0x48], edx
jmp 0x454a52
lea eax, [ebp + 0x44]
push eax
lea eax, [ebp + 0x38]
push eax
call fcn.0043366c
pop ecx
pop ecx
lea eax, [ebp + 0x38]
push eax
lea eax, [ebp + 0x44]
push eax
call fcn.004332b4
pop ecx
pop ecx
jmp 0x454aa0
mov eax, dword [ebp + 0x48]
mov eax, dword [eax + 8]
mov ecx, dword [ebp + 0x4c]
cmp word [eax + ecx*2], 9
jne 0x454a84
mov eax, dword [ebp + 0x78]
cdq
idiv dword [ebp + 0x74]
mov eax, dword [ebp + 0x74]
sub eax, edx
add dword [ebp + 0x78], eax
jmp 0x454a87
inc dword [ebp + 0x78]
lea eax, [ebp + 0x44]
push eax
call fcn.00433423
lea eax, [ebp + 0x38]
push eax
lea eax, [ebp + 0x44]
push eax
call fcn.004332b4
add esp, 0xc
test eax, eax
jl 0x454a63
mov eax, dword [ebx + 8]
sub eax, dword [ebp + 0x40]
add eax, dword [ebp + 0x78]
jmp 0x456f1c
mov eax, dword [ebp + 0x78]
mov edi, dword [ebp + 0x7c]
movzx ecx, ax
shr eax, 0x10
test al, 1
mov dword [ebp + 0x74], ecx
mov ecx, dword [edi + 8]
mov dword [ebp + 0x70], eax
mov dword [ebp + 0x78], esi
mov dword [ebp + 0x7c], ecx
mov dword [edi + 8], esi
je 0x454adb
push edi
call fcn.00433605
pop ecx
cmp dword [ebp + 0x74], esi
jne 0x454aec
mov eax, dword [ebx + 0x14]
mov eax, dword [eax + 0xe0]
mov dword [ebp + 0x74], eax
cmp dword [ebp + 0x7c], esi
jle 0x454b33
mov ecx, dword [edi + 4]
mov esi, dword [edi + 8]
mov eax, dword [ecx + 8]
cmp word [eax + esi*2], 9
jne 0x454b12
mov eax, dword [ebp + 0x78]
cdq
idiv dword [ebp + 0x74]
mov eax, dword [ebp + 0x74]
sub eax, edx
add dword [ebp + 0x78], eax
jmp 0x454b15
inc dword [ebp + 0x78]
cmp esi, dword [ecx + 0xc]
jl 0x454b24
cmp byte [ecx + 0x10], 9
jne 0x454338
push edi
call fcn.00433423
mov eax, dword [ebp + 0x78]
cmp eax, dword [ebp + 0x7c]
pop ecx
jl 0x454af1
test byte [ebp + 0x70], 2
je 0x4548cb
mov eax, dword [ebp + 0x7c]
cmp dword [ebp + 0x78], eax
jle 0x4548cb
push edi
call fcn.00433450
jmp 0x456d44
push 0x18
push esi
push dword [ebp + 0x7c]
call fcn.00434b09
push dword [ebp + 0x7c]
mov eax, dword [ebx + 0x14]
push dword [eax + 0x108]
push 2
push dword [ebp + 0x78]
push ebx
call fcn.00444210
jmp 0x4543e8
mov eax, dword [ebp + 0x78]
cmp eax, 1
jne 0x454b8e
lea eax, [ebx + 0xd70]
jmp 0x456f1c
cmp eax, 2
jne 0x454ba1
push dword [ebp + 0x7c]
push ebx
call fcn.0044418b
jmp 0x453bf4
cmp eax, 3
jne 0x454bb4
push dword [ebp + 0x7c]
push ebx
call fcn.0043712d
jmp 0x453bf4
cmp eax, 4
jne 0x454be3
push dword [ebp + 0x7c]
push ebx
call fcn.0044418b
cmp eax, esi
pop ecx
pop ecx
jne 0x454bdb
push dword [ebp + 0x7c]
push ebx
call fcn.00442cc6
cmp eax, esi
pop ecx
pop ecx
je 0x456f1c
inc dword [eax + 0x10]
jmp 0x456f1c
cmp eax, 5
jne 0x454bf6
push dword [ebp + 0x7c]
push ebx
call fcn.0043716d
jmp 0x4517d3
cmp eax, 6
jne 0x454338
push ebx
call fcn.004371a7
jmp 0x4517d4
mov eax, dword [ebp + 0x7c]
add eax, 8
push eax
push ebx
call fcn.0043b6a8
mov edi, eax
cmp edi, esi
pop ecx
pop ecx
je 0x454c4b
mov esi, dword [ebp + 0x7c]
mov eax, dword [esi + 0x14]
cmp eax, 0xfffffffe
jne 0x454c36
lea eax, [esi + 8]
push eax
push ebx
call fcn.004369f2
pop ecx
pop ecx
mov dword [edi + 0x14], eax
mov eax, dword [esi + 0x18]
mov dword [edi + 0x18], eax
mov eax, dword [esi + 0x1c]
mov dword [edi + 0x1c], eax
mov eax, dword [esi + 0x20]
mov dword [edi + 0x20], eax
mov eax, edi
jmp 0x456f1c
push dword [ebp + 0x78]
push ebx
call fcn.004360e6
jmp 0x4517d3
mov eax, dword [ebx + 0x14]
add eax, 0xc
jmp 0x456f1c
push esi
lea eax, [ebp + 0x48]
push eax
push dword [ebp + 0x78]
push ebx
call fcn.00436f9c
add esp, 0x10
cmp dword [ebx + 0xd10], esi
jne 0x454c90
mov eax, dword [ebx + 0x6f0]
test byte [eax + 9], 2
je 0x454c93
xor esi, esi
inc esi
push esi
push dword [ebp + 0x78]
push dword [ebp + 0x7c]
push dword [ebp + 0x4c]
push dword [ebp + 0x48]
push ebx
call fcn.00438e38
jmp 0x454926
push esi
push dword [ebp + 0x78]
jmp 0x454d07
cmp dword [ebx + 0xd10], esi
jne 0x454cc9
mov eax, dword [ebx + 0x6f0]
test byte [eax + 9], 2
jne 0x454cc9
xor eax, eax
jmp 0x454ccc
xor eax, eax
inc eax
mov edi, dword [ebp + 0x78]
push eax
lea eax, [ebp + 0x48]
push eax
push dword [ebp + 0x7c]
push dword [edi + 4]
push dword [edi]
push ebx
call fcn.00438e38
add esp, 0x18
cmp eax, esi
mov dword [ebp + 0x78], eax
je 0x454cfb
push edi
push esi
lea eax, [ebp + 0x48]
push eax
push ebx
call fcn.00436f9c
add esp, 0x10
mov eax, dword [ebp + 0x78]
jmp 0x456f1c
push dword [ebp + 0x78]
push esi
push dword [ebp + 0x7c]
push ebx
call fcn.00438871
jmp 0x454486
mov dl, byte [ebp + 0x78]
test dl, 2
je 0x454d52
mov eax, dword [ebx + 0xd40]
mov ecx, dword [ebx + 0xd44]
mov esi, dword [ebx + 0xd38]
mov edi, dword [ebx + 0xd3c]
sub eax, dword [ebx + 0xd30]
sub ecx, dword [ebx + 0xd34]
sub esi, dword [ebx + 0xd48]
sub edi, dword [ebx + 0xd4c]
jmp 0x455e94
lea esi, [ebx + 0xd40]
jmp 0x455e81
mov ecx, dword [ebp + 0x7c]
cmp ecx, esi
mov eax, dword [ebp + 0x78]
je 0x454dde
test al, 2
je 0x454d9c
mov edx, dword [ebx + 0xd30]
add edx, dword [ecx]
mov dword [ebp + 0x58], edx
mov edx, dword [ebx + 0xd34]
add edx, dword [ecx + 4]
mov dword [ebp + 0x5c], edx
mov edx, dword [ebx + 0xd38]
sub edx, dword [ecx + 8]
mov dword [ebp + 0x60], edx
mov edx, dword [ebx + 0xd3c]
sub edx, dword [ecx + 0xc]
mov dword [ebp + 0x64], edx
jmp 0x454da7
mov esi, ecx
lea edi, [ebp + 0x58]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
xor esi, esi
test al, 4
je 0x454db4
mov ecx, dword [ebx + 0xd40]
mov dword [ebp + 0x58], ecx
test al, 8
je 0x454dc1
mov ecx, dword [ebx + 0xd44]
mov dword [ebp + 0x5c], ecx
test al, 0x10
je 0x454dce
mov ecx, dword [ebx + 0xd48]
mov dword [ebp + 0x60], ecx
test al, 0x20
je 0x454ddb
mov ecx, dword [ebx + 0xd4c]
mov dword [ebp + 0x64], ecx
lea ecx, [ebp + 0x58]
and eax, 1
push eax
push ecx
push ebx
call fcn.00436e9d
mov eax, dword [ebx + 0x14]
mov eax, dword [eax + 0x120]
add esp, 0xc
cmp eax, esi
je 0x454e0b
push eax
push esi
push esi
push ebx
call fcn.0044e082
push ebx
call fcn.0044ae95
add esp, 0x14
push 3
push ebx
call fcn.0044a4b0
push ebx
call fcn.00447ff1
jmp 0x451820
mov eax, dword [ebp + 0x78]
cmp eax, esi
je 0x454e3c
mov ecx, dword [ebx + 0x14]
mov ecx, dword [ecx + 0xfc]
mov dword [eax], ecx
mov ecx, dword [ebx + 0x14]
mov ecx, dword [ecx + 0x100]
mov dword [eax + 4], ecx
mov eax, dword [ebp + 0x7c]
cmp eax, esi
je 0x454338
mov ecx, dword [ebx + 0xcf4]
mov dword [eax], ecx
mov ecx, dword [ebx + 0xcf8]
jmp 0x453714
mov eax, dword [ebp + 0x7c]
mov ecx, dword [eax + 4]
cmp ecx, 0xffffffff
jne 0x454e6b
mov ecx, dword [ebx + 0xcf8]
mov eax, dword [eax]
cmp eax, 0xffffffff
jne 0x454e78
mov eax, dword [ebx + 0xcf4]
push ecx
push eax
push ebx
call fcn.00448fc8
jmp 0x451820
xor eax, eax
test byte [ebp + 0x78], 1
je 0x454e9b
push dword [ebp + 0x78]
push dword [ebp + 0x7c]
push ebx
call fcn.00448fff
jmp 0x454ee1
test byte [ebp + 0x78], 2
je 0x456f1c
push dword [ebp + 0x78]
push dword [ebp + 0x7c]
push ebx
call fcn.0044909d
add esp, 0xc
test byte [ebp + 0x78], 4
je 0x456f1c
mov ecx, dword [ebx + 0x14]
cdq
idiv dword [ecx + 0xc8]
jmp 0x456f1c
xor eax, eax
test byte [ebp + 0x78], 1
je 0x454efd
push dword [ebp + 0x78]
push dword [ebp + 0x7c]
push ebx
call fcn.00449179
add esp, 0xc
test byte [ebp + 0x78], 4
je 0x456f1c
mov ecx, dword [ebx + 0x14]
cdq
idiv dword [ecx + 0xd4]
jmp 0x456f1c
test byte [ebp + 0x78], 2
je 0x456f1c
push dword [ebp + 0x78]
push dword [ebp + 0x7c]
push ebx
call fcn.004491ab
jmp 0x454eb1
mov eax, dword [ebp + 0x7c]
cmp eax, esi
jne 0x454f28
push esi
push ebx
call fcn.0044b080
jmp 0x453bf4
push dword [eax + 0x10]
lea ecx, [eax + 4]
push dword [eax + 0xc]
push ecx
push dword [eax]
push ebx
call fcn.0044a1e7
jmp 0x4542dc
mov ecx, dword [ebx + 0x6f0]
mov edx, dword [ecx + 0x1c]
or eax, 0xffffffff
cmp edx, esi
je 0x454f61
cmp dword [ecx + 0x18], esi
je 0x454f59
push 3
pop eax
jmp 0x454f69
cmp edx, esi
je 0x454f61
xor eax, eax
jmp 0x454f69
cmp dword [ecx + 0x18], esi
je 0x454f69
xor eax, eax
inc eax
mov edi, dword [ebp + 0x78]
cmp edi, 3
je 0x454f75
cmp edi, esi
jne 0x454f86
cmp dword [ebp + 0x7c], esi
je 0x454f7f
inc dword [ecx + 0x1c]
jmp 0x454f86
cmp edx, esi
je 0x454f86
dec dword [ecx + 0x1c]
cmp edi, 3
je 0x454f94
cmp edi, 1
jne 0x456f1c
cmp dword [ebp + 0x7c], esi
mov ebx, dword [ebx + 0x6f0]
je 0x454fa7
inc dword [ebx + 0x18]
jmp 0x456f1c
cmp dword [ebx + 0x18], esi
je 0x456f1c
dec dword [ebx + 0x18]
jmp 0x456f1c
mov eax, dword [ebp + 0x78]
cmp eax, esi
jne 0x454fcd
mov eax, dword [ebx + 0x14]
mov eax, dword [eax + 0xc8]
jmp 0x456f1c
cmp eax, 1
jne 0x454fe0
mov eax, dword [ebx + 0x14]
mov eax, dword [eax + 0xd4]
jmp 0x456f1c
cmp eax, 2
jne 0x455039
mov edi, dword [ebp + 0x7c]
mov eax, dword [edi + 4]
mov ecx, dword [edi + 8]
cmp ecx, dword [eax + 0xc]
jge 0x454338
mov eax, dword [eax + 8]
lea eax, [eax + ecx*2]
cmp word [eax], 9
push esi
jne 0x45502d
lea eax, [ebp + 0x48]
push eax
push edi
push ebx
call fcn.00438871
mov eax, dword [edi + 4]
mov ecx, dword [edi + 8]
mov eax, dword [eax + 8]
push dword [ebp + 0x48]
lea eax, [eax + ecx*2]
push eax
push ebx
call fcn.0043872a
add esp, 0x1c
jmp 0x456f1c
push eax
push ebx
call fcn.0043872a
jmp 0x4543fc
cmp eax, 3
jne 0x45504c
mov eax, dword [ebx + 0x14]
mov eax, dword [eax + 0xc4]
jmp 0x456f1c
cmp eax, 4
jne 0x45505f
mov eax, dword [ebx + 0x14]
mov eax, dword [eax + 0xd8]
jmp 0x456f1c
cmp eax, 5
jne 0x455072
mov eax, dword [ebx + 0x14]
mov eax, dword [eax + 0xdc]
jmp 0x456f1c
cmp eax, 6
jne 0x455085
mov eax, dword [ebx + 0x14]
mov eax, dword [eax + 0xd0]
jmp 0x456f1c
cmp eax, 7
jne 0x455098
mov eax, dword [ebx + 0x14]
mov eax, dword [eax + 0xe4]
jmp 0x456f1c
cmp eax, 8
jne 0x454338
mov eax, dword [ebx + 0x14]
mov eax, dword [eax + 0xec]
jmp 0x456f1c
push esi
push dword [ebp + 0x7c]
push dword [ebp + 0x78]
push ebx
call fcn.004387a8
jmp 0x454486
cmp dword [ebp + 0x78], esi
je 0x4550da
push dword [ebp + 0x78]
lea eax, [ebx + 0xd04]
push esi
push eax
push ebx
call fcn.00436f9c
add esp, 0x10
mov eax, dword [ebp + 0x7c]
cmp eax, esi
je 0x4550f2
mov ecx, dword [ebx + 0xd04]
mov dword [eax], ecx
mov ecx, dword [ebx + 0xd08]
mov dword [eax + 4], ecx
mov eax, dword [ebx + 0xd88]
jmp 0x456f1c
mov eax, dword [ebx + 0xd0c]
jmp 0x456f1c
mov eax, dword [ebp + 0x78]
mov dword [ebx + 0xd0c], eax
jmp 0x454338
cmp dword [ebp + 0x78], esi
mov edi, dword [ebp + 0x7c]
jne 0x45512a
push esi
push edi
push edi
push ebx
call fcn.00436f9c
add esp, 0x10
cmp dword [ebp + 0x78], 1
jne 0x454338
push edi
push dword [edi + 4]
push dword [edi]
push ebx
call fcn.00436ffb
jmp 0x453094
mov eax, dword [ebp + 0x78]
push dword [eax + 4]
push dword [eax]
push ebx
call fcn.00437029
jmp 0x4543fc
mov eax, dword [ebp + 0x78]
push dword [eax + 4]
push dword [eax]
push ebx
call fcn.0043c699
jmp 0x4543fc
lea eax, [ebp + 0x50]
push eax
mov eax, dword [ebp + 0x78]
push dword [eax + 4]
push dword [eax]
push ebx
call fcn.004453b8
add esp, 0x10
cmp dword [ebp + 0x7c], esi
mov edi, eax
je 0x454c4b
push 0x18
lea eax, [ebp + 0x50]
push eax
push dword [ebp + 0x7c]
call fcn.00434a7e
add esp, 0xc
jmp 0x454c4b
cmp dword [ebp + 0x78], esi
jne 0x4551b4
push dword [ebp + 0x7c]
push ebx
call fcn.00435cf0
jmp 0x453bf4
cmp dword [ebp + 0x78], 1
jne case.0x4548eb.3198
mov eax, dword [ebx + 0xcf8]
sub eax, dword [ebx + 0xd44]
add eax, dword [ebp + 0x7c]
push eax
jmp 0x4551a9
cmp dword [ebp + 0x78], esi
jne 0x4551df
push dword [ebp + 0x7c]
push ebx
call fcn.00435eed
jmp 0x453bf4
cmp dword [ebp + 0x78], 1
jne 0x455214
push dword [ebp + 0x7c]
push ebx
call fcn.00435eed
pop ecx
pop ecx
mov ecx, dword [ebx + 0xd44]
sub ecx, dword [ebx + 0xcf8]
add eax, ecx
jmp 0x456f1c
cmp dword [ebp + 0x78], 1
jne 0x455214
mov eax, dword [ebx + 0xdb0]
jmp 0x456f1c
cmp dword [ebp + 0x78], 2
jne 0x454338
mov eax, dword [ebx + 0xdcc]
jmp 0x456f1c
xor eax, eax
cmp dword [ebx + 0xd28], esi
setne al
inc eax
jmp 0x456f1c
mov eax, 0x80901
jmp 0x456f1c
mov eax, dword [ebx + 0x6f0]
mov eax, dword [eax]
jmp 0x456f1c
mov ebx, dword [ebx + 0x6f0]
mov ecx, dword [ebp + 0x7c]
mov eax, dword [ebx]
mov dword [ebx], ecx
jmp 0x456f1c
mov eax, dword [ebx + 0x6f0]
mov edi, dword [eax + 8]
mov edx, dword [ebp + 0x78]
cmp edx, 1
mov ecx, edi
mov dword [ebp + 0x70], edi
mov dword [ebp + 0x74], ecx
jne 0x455281
mov ecx, dword [ebp + 0x7c]
jmp 0x4552a1
cmp edx, 2
jne 0x45528b
or ecx, dword [ebp + 0x7c]
jmp 0x4552a1
cmp edx, 3
jne 0x455295
and ecx, dword [ebp + 0x7c]
jmp 0x4552a1
cmp edx, 4
jne 0x4552a4
mov edx, dword [ebp + 0x7c]
not edx
and ecx, edx
mov dword [ebp + 0x74], ecx
mov edx, edi
mov ecx, 0x400
and edx, ecx
jne 0x455324
test dword [ebp + 0x74], ecx
je 0x455324
mov ecx, dword [eax + 0x40]
mov eax, dword [eax + 0x58]
push ecx
push eax
mov edi, 0x45e460
push edi
mov dword [ebp + 0x78], ecx
mov dword [ebp + 0x7c], eax
call fcn.00435bf1
add esp, 0xc
cmp eax, esi
jne 0x4552e3
push dword [ebp + 0x78]
push dword [ebp + 0x7c]
push edi
call fcn.0044131c
add esp, 0xc
mov eax, dword [eax + 0xc]
mov ecx, dword [ebx + 0x6f0]
mov dword [ecx + 0x100], eax
mov eax, 0x80000001
mov dword [ebx + 0xd78], eax
mov dword [ebx + 0xd7c], eax
push 1
lea eax, [ebx + 0xd40]
push eax
push dword [ebx + 0xd18]
call dword [sym.imp.USER32.dll_InvalidateRect]
push ebx
call fcn.0044ae95
mov edi, dword [ebp + 0x70]
pop ecx
jmp 0x45534e
cmp edx, esi
je 0x45534e
test dword [ebp + 0x74], ecx
jne 0x45534e
push dword [ebx + 0xd4c]
push dword [ebx + 0xd44]
push dword [ebx + 0xd2c]
push ebx
call fcn.004380a7
push ebx
call fcn.0044ae95
add esp, 0x14
mov eax, 0x200
test eax, edi
je 0x455366
test dword [ebp + 0x74], eax
jne 0x455366
push 0xa
push ebx
call fcn.00442770
pop ecx
pop ecx
mov eax, dword [ebp + 0x74]
mov ecx, eax
shr ecx, 0xb
mov edx, edi
shr edx, 0xb
not ecx
not edx
xor ecx, edx
test cl, 1
jne 0x4553b8
mov ecx, eax
shr ecx, 0xc
mov edx, edi
shr edx, 0xc
not ecx
not edx
xor ecx, edx
test cl, 1
jne 0x4553b8
mov ecx, eax
shr ecx, 0xd
mov edx, edi
shr edx, 0xd
not ecx
not edx
xor ecx, edx
test cl, 1
jne 0x4553b8
shr eax, 0x1e
shr edi, 0x1e
not eax
not edi
xor eax, edi
test al, 1
je 0x4553d4
push 1
lea eax, [ebx + 0xd40]
push eax
push dword [ebx + 0xd18]
call dword [sym.imp.USER32.dll_InvalidateRect]
push ebx
call fcn.0044ae95
pop ecx
mov eax, dword [ebx + 0x6f0]
mov ecx, dword [ebp + 0x74]
mov dword [eax + 8], ecx
jmp case.0x4548eb.3227
mov ebx, dword [ebx + 0x6f0]
movzx eax, word [ebx + 0x14]
movzx ecx, word [ebx + 0x10]
shl eax, 0x10
or eax, ecx
jmp 0x456f1c
test byte [ebp + 0x78], 1
mov eax, dword [ebp + 0x7c]
je 0x455412
mov edx, dword [ebx + 0x6f0]
movzx ecx, ax
mov dword [edx + 0x10], ecx
test byte [ebp + 0x78], 2
je 0x454338
mov ecx, dword [ebx + 0x6f0]
shr eax, 0x10
mov dword [ecx + 0x14], eax
jmp 0x454338
push dword [ebp + 0x7c]
push ebx
call fcn.0043e5f3
jmp 0x4517d3
push 1
push dword [ebp + 0x7c]
jmp 0x45181a
mov eax, dword [ebx + 0x6f0]
mov eax, dword [eax + 0xc]
jmp 0x456f1c
mov eax, dword [ebx + 0x6f0]
mov ecx, dword [ebp + 0x78]
cmp ecx, 1
mov esi, dword [eax + 0xc]
mov edi, esi
jne 0x45546b
mov edi, dword [ebp + 0x7c]
jmp 0x45548b
cmp ecx, 2
jne 0x455475
or edi, dword [ebp + 0x7c]
jmp 0x45548b
cmp ecx, 3
jne 0x45547f
and edi, dword [ebp + 0x7c]
jmp 0x45548b
cmp ecx, 4
jne 0x45548b
mov ecx, dword [ebp + 0x7c]
not ecx
and edi, ecx
mov dword [eax + 0xc], edi
mov eax, edi
shr eax, 2
mov ecx, esi
shr ecx, 2
not eax
not ecx
xor eax, ecx
test al, 1
je 0x4554b0
push dword [ebx + 0xd90]
push ebx
call fcn.00443089
pop ecx
pop ecx
mov eax, edi
not eax
not esi
xor eax, esi
test al, 1
je case.0x4548eb.3233
push 1
lea eax, [ebx + 0xd40]
push eax
push dword [ebx + 0xd18]
call dword [sym.imp.USER32.dll_InvalidateRect]
push ebx
call fcn.0044ae95
pop ecx
jmp case.0x4548eb.3233
lea eax, [ebx + 0x6f0]
mov ecx, dword [eax]
mov edx, dword [ecx + 0xe4]
mov ecx, dword [ebp + 0x7c]
mov dword [ecx], edx
mov eax, dword [eax]
mov eax, dword [eax + 0xe8]
mov dword [ecx + 4], eax
jmp 0x454338
mov ecx, dword [ebp + 0x7c]
mov esi, dword [ecx]
lea eax, [ebx + 0x6f0]
mov edx, dword [eax]
mov dword [edx + 0xe4], esi
mov eax, dword [eax]
mov ecx, dword [ecx + 4]
mov dword [eax + 0xe8], ecx
push dword [ebx + 0xd90]
push ebx
call fcn.00443089
jmp 0x4517d3
mov eax, dword [ebx + 0x14]
mov eax, dword [eax + 0xe0]
jmp 0x456f1c
mov ecx, dword [ebp + 0x78]
cmp ecx, esi
jg 0x455547
push 8
pop ecx
mov eax, dword [ebx + 0x14]
add eax, 0xe0
cmp dword [eax], ecx
je 0x454338
mov dword [eax], ecx
mov eax, dword [ebx + 0x14]
mov ecx, dword [eax + 0xe0]
imul ecx, dword [eax + 0xd8]
mov dword [eax + 0xdc], ecx
mov eax, dword [ebx + 0x14]
mov ecx, dword [eax + 0xe8]
cmp ecx, esi
je 0x45558b
mov edx, dword [eax + 0xe0]
imul edx, ecx
mov dword [eax + 0xec], edx
push 1
push esi
push esi
push ebx
call fcn.0044af84
push 0xa
push ebx
mov dword [ebx + 0xd04], esi
mov dword [ebx + 0xd08], esi
call fcn.00442770
push dword [ebx + 0xd90]
push ebx
call fcn.00443089
mov eax, dword [ebx + 0x14]
mov eax, dword [eax + 0x120]
add esp, 0x20
cmp eax, esi
je 0x4555d1
push eax
push esi
push esi
push ebx
call fcn.0044e082
add esp, 0x10
push 1
lea eax, [ebx + 0xd40]
push eax
push dword [ebx + 0xd18]
call dword [sym.imp.USER32.dll_InvalidateRect]
push ebx
call fcn.0044ae95
jmp 0x4517d4
mov eax, dword [ebp + 0x7c]
cmp eax, esi
je 0x455603
mov ecx, dword [ebx + 0x14]
mov ecx, dword [ecx + 0x124]
mov dword [eax], ecx
mov eax, dword [ebx + 0x14]
mov eax, dword [eax + 0x120]
jmp 0x456f1c
mov edi, dword [ebp + 0x78]
push 0x10
push ebx
mov dword [ebp + 0x74], esi
call fcn.00448291
test byte [ebp + 0x78], 3
pop ecx
pop ecx
jne 0x45562b
xor edi, edi
jmp 0x45563a
mov eax, dword [ebp + 0x78]
test ah, 2
jne 0x45563a
or eax, 0x100
mov edi, eax
mov eax, dword [ebx + 0x14]
mov eax, dword [eax + 0x120]
cmp eax, edi
je 0x45566c
cmp eax, esi
je 0x45565b
cmp edi, esi
je 0x45565b
push esi
push esi
push esi
push ebx
call fcn.0044e082
add esp, 0x10
mov eax, dword [ebx + 0x14]
mov dword [eax + 0x120], edi
xor edi, edi
inc edi
mov dword [ebp + 0x74], edi
jmp 0x45566f
xor edi, edi
inc edi
mov eax, dword [ebx + 0x14]
mov ecx, dword [ebp + 0x7c]
add eax, 0x124
cmp dword [eax], ecx
je 0x455687
cmp ecx, esi
jl 0x455687
mov dword [eax], ecx
mov dword [ebp + 0x74], edi
cmp dword [ebp + 0x74], esi
je 0x4556bb
mov eax, dword [ebx + 0x14]
push dword [eax + 0x120]
push esi
push esi
push ebx
call fcn.0044e082
add esp, 0x10
push edi
lea eax, [ebx + 0xd40]
push eax
push dword [ebx + 0xd18]
call dword [sym.imp.USER32.dll_InvalidateRect]
push ebx
call fcn.0044ae95
pop ecx
push ebx
call fcn.0044d87c
jmp 0x4517d4
mov eax, dword [ebx + 0x6f0]
add eax, 0x118
jmp 0x4557f4
mov eax, dword [ebp + 0x7c]
cmp eax, esi
jne 0x4556e2
mov eax, str.__t_n_________._:_______
push 0x80
push eax
lea esi, [ebx + 0x6f0]
mov eax, dword [esi]
add eax, 0x118
push eax
call fcn.00434b59
mov ecx, dword [esi]
add esp, 0xc
dec eax
dec eax
mov dword [ecx + 0x218], eax
jmp 0x454338
mov eax, dword [ebx + 0x14]
add eax, 0x128
jmp 0x4557f4
mov eax, dword [ebp + 0x7c]
cmp eax, esi
jne 0x455726
mov eax, 0x458c2c
push 0x80
push eax
mov eax, dword [ebx + 0x14]
add eax, 0x128
push eax
call fcn.00434b59
mov ecx, dword [ebx + 0x14]
add esp, 0xc
dec eax
dec eax
mov dword [ecx + 0x228], eax
mov eax, dword [ebx + 0x14]
mov eax, dword [eax + 0x120]
test al, 1
je 0x454338
jmp 0x4555c5
mov eax, dword [ebx + 0x6f0]
add eax, 0x220
jmp 0x4557f4
mov eax, dword [ebp + 0x7c]
cmp eax, esi
jne 0x45577a
mov eax, str.__t_n_____
push 0x80
push eax
lea edi, [ebx + 0x6f0]
mov eax, dword [edi]
add eax, 0x220
push eax
call fcn.00434b59
mov ecx, dword [edi]
add esp, 0xc
dec eax
dec eax
mov dword [ecx + 0x320], eax
jmp 0x453cf8
mov eax, dword [ebx + 0x6f0]
add eax, 0x324
jmp 0x4557f4
mov eax, dword [ebp + 0x7c]
cmp eax, esi
jne 0x4557be
mov eax, 0x458c84
push 0x80
push eax
lea edi, [ebx + 0x6f0]
mov eax, dword [edi]
add eax, 0x324
push eax
call fcn.00434b59
mov ecx, dword [edi]
add esp, 0xc
dec eax
dec eax
mov dword [ecx + 0x424], eax
jmp 0x453cf8
mov eax, dword [ebx + 0x6f0]
add eax, 0x428
push dword [ebp + 0x78]
push eax
push dword [ebp + 0x7c]
call fcn.00434b59
jmp 0x4543fc
mov eax, dword [ebp + 0x7c]
cmp eax, esi
jne 0x455811
mov eax, str.http:
push 0x80
push eax
lea edi, [ebx + 0x6f0]
mov eax, dword [edi]
add eax, 0x428
push eax
call fcn.00434b59
mov ecx, dword [edi]
push ebx
mov dword [ecx + 0x528], eax
call fcn.0043906f
add esp, 0x10
mov edi, eax
push esi
lea eax, [ebx + 0xd40]
push eax
push dword [ebx + 0xd18]
call dword [sym.imp.USER32.dll_InvalidateRect]
push ebx
call fcn.0044ae95
jmp 0x452704
mov eax, dword [ebx + 0x6f0]
mov eax, dword [eax + 0x5ac]
jmp 0x456f1c
mov eax, dword [ebx + 0x6f0]
mov ecx, dword [ebp + 0x78]
mov dword [eax + 0x5ac], ecx
jmp 0x454338
mov eax, dword [ebx + 0x6f0]
mov eax, dword [eax + 0x21c]
jmp 0x456f1c
mov ebx, dword [ebx + 0x6f0]
mov edx, dword [ebp + 0x78]
lea ecx, [ebx + 0x21c]
mov eax, dword [ecx]
mov dword [ecx], edx
jmp 0x456f1c
mov eax, dword [ebp + 0x78]
cmp eax, esi
je 0x4558bf
mov ecx, dword [ebx + 0x6f0]
mov ecx, dword [ecx + 0x108]
mov dword [eax], ecx
mov eax, dword [ebx + 0x6f0]
mov eax, dword [eax + 0x10c]
jmp 0x456f1c
mov eax, dword [ebx + 0x6f0]
mov eax, dword [eax + 0x5c]
push 0xffffffffffffffff
push eax
mov edi, 0x45e460
push edi
mov dword [ebp + 0x74], eax
call fcn.00435bf1
add esp, 0xc
cmp eax, esi
jne 0x4558ff
push 0xffffffffffffffff
push dword [ebp + 0x74]
push edi
call fcn.0044131c
add esp, 0xc
mov ecx, dword [ebx + 0x6f0]
mov eax, dword [eax + 0xc]
push esi
push dword [ebp + 0x7c]
mov dword [ecx + 0x104], eax
push dword [ebp + 0x78]
push ebx
call fcn.0044b0c6
jmp 0x454486
mov eax, dword [ebx + 0x14]
mov eax, dword [eax + 0xcc]
jmp 0x456f1c
mov eax, dword [ebx + 0x14]
mov edi, dword [ebp + 0x78]
cmp dword [eax + 0xcc], edi
je 0x454338
mov eax, dword [ebx + 0x6f0]
cmp dword [eax + 0x18], esi
mov dword [ebp + 0x78], esi
jne 0x455958
push ebx
call fcn.004384d0
pop ecx
mov dword [ebp + 0x78], eax
mov eax, dword [ebx + 0x14]
mov ecx, edi
sub ecx, dword [eax + 0xcc]
add dword [eax + 0xc8], ecx
mov eax, dword [ebx + 0x14]
add eax, 0xc8
mov ecx, dword [eax]
cmp ecx, 1
jg 0x45597b
xor ecx, ecx
inc ecx
mov dword [eax], ecx
mov eax, dword [ebx + 0x14]
push ebx
mov dword [eax + 0xcc], edi
call fcn.004360b7
mov ecx, dword [ebx + 0x14]
push 1
push ebx
mov dword [ecx + 0x100], eax
call fcn.0044a4b0
push 0xa
push ebx
mov dword [ebx + 0xd04], esi
mov dword [ebx + 0xd08], esi
call fcn.00442770
mov eax, dword [ebx + 0x6f0]
add esp, 0x14
cmp dword [eax + 0x18], esi
jne 0x4559df
push dword [ebp + 0x78]
push ebx
call fcn.00435eed
push esi
mov dword [ebp + 0x4c], eax
push esi
lea eax, [ebp + 0x48]
push eax
push 0x20220
push ebx
call fcn.0044a1e7
add esp, 0x1c
push dword [ebx + 0xd90]
push ebx
call fcn.00443089
pop ecx
pop ecx
jmp 0x4555d1
mov eax, dword [ebx + 0x14]
mov eax, dword [eax + 0x11c]
jmp 0x456f1c
mov eax, dword [ebx + 0x14]
mov ecx, dword [ebp + 0x78]
mov dword [eax + 0x11c], ecx
jmp 0x454338
mov eax, dword [ebp + 0x78]
cmp eax, esi
jne 0x455a23
mov eax, dword [ebx + 0x14]
mov eax, dword [eax + 0x14]
jmp 0x456f1c
cmp eax, 1
jne 0x455a33
mov eax, dword [ebx + 0x14]
mov eax, dword [eax + 0x18]
jmp 0x456f1c
cmp eax, 2
jne 0x455a43
mov eax, dword [ebx + 0x14]
mov eax, dword [eax + 0x1c]
jmp 0x456f1c
cmp eax, 3
jne 0x455a53
mov eax, dword [ebx + 0x14]
mov eax, dword [eax + 0x20]
jmp 0x456f1c
cmp eax, 4
jne 0x455a63
mov eax, dword [ebx + 0x14]
mov eax, dword [eax + 0x24]
jmp 0x456f1c
cmp eax, 5
jne 0x454338
mov eax, dword [ebx + 0x14]
mov eax, dword [eax + 0x28]
jmp 0x456f1c
mov ebx, dword [ebx + 0x6f0]
movzx eax, word [ebx + 0x114]
movzx ecx, word [ebx + 0x110]
jmp 0x4553f3
mov eax, dword [ebp + 0x78]
mov esi, dword [ebx + 0x6f0]
movzx edx, ax
lea ecx, [esi + 0x110]
cmp dword [ecx], edx
jne 0x455ab7
mov edi, eax
shr edi, 0x10
cmp dword [esi + 0x114], edi
je 0x454338
mov dword [ecx], edx
mov ecx, dword [ebx + 0x6f0]
shr eax, 0x10
mov dword [ecx + 0x114], eax
jmp 0x4555d1
push dword [ebp + 0x7c]
push dword [ebp + 0x78]
push ebx
call fcn.00447293
jmp 0x4543fc
cmp dword [ebp + 0x78], esi
je 0x455b70
mov eax, dword [ebp + 0x7c]
cmp eax, esi
jne 0x455b21
add ebx, 0x6f0
mov eax, dword [ebx]
mov dword [eax + 0xec], esi
mov eax, dword [ebx]
mov dword [eax + 0xf0], esi
mov eax, dword [ebx]
mov dword [eax + 0xf4], esi
mov eax, dword [ebx]
mov dword [eax + 0xf8], esi
mov eax, dword [ebx]
mov dword [eax + 0xfc], esi
jmp 0x454338
mov edx, dword [eax]
mov ecx, dword [ebx + 0x6f0]
mov dword [ecx + 0xec], edx
mov edx, dword [eax + 4]
mov ecx, dword [ebx + 0x6f0]
mov dword [ecx + 0xf0], edx
mov edx, dword [eax + 8]
mov ecx, dword [ebx + 0x6f0]
mov dword [ecx + 0xf4], edx
mov ecx, dword [ebx + 0x6f0]
mov edx, dword [eax + 0xc]
mov dword [ecx + 0xf8], edx
mov ecx, dword [ebx + 0x6f0]
mov eax, dword [eax + 0x10]
mov dword [ecx + 0xfc], eax
jmp 0x454338
mov eax, dword [ebx + 0x6f0]
mov ecx, dword [eax + 0xec]
mov eax, dword [ebp + 0x7c]
mov dword [eax], ecx
mov ecx, dword [ebx + 0x6f0]
mov ecx, dword [ecx + 0xf0]
mov dword [eax + 4], ecx
mov ecx, dword [ebx + 0x6f0]
mov ecx, dword [ecx + 0xf4]
mov dword [eax + 8], ecx
mov ecx, dword [ebx + 0x6f0]
mov ecx, dword [ecx + 0xf8]
mov dword [eax + 0xc], ecx
mov ecx, dword [ebx + 0x6f0]
mov ecx, dword [ecx + 0xfc]
mov dword [eax + 0x10], ecx
jmp 0x454338
mov eax, dword [ebx + 0x14]
mov ecx, dword [ebp + 0x78]
add eax, 0xe4
mov edx, dword [eax]
push ebx
mov dword [eax], ecx
call fcn.00436eeb
pop ecx
mov ecx, dword [ebx + 0x14]
mov dword [ecx + 0xe8], eax
mov ebx, dword [ebx + 0x14]
mov eax, dword [ebx + 0xe8]
imul eax, dword [ebx + 0xe0]
mov dword [ebx + 0xec], eax
mov eax, edx
jmp 0x456f1c
mov eax, dword [ebx + 0x6f0]
jmp 0x455a5b
mov eax, dword [ebx + 0x6f0]
mov ecx, dword [ebp + 0x78]
mov dword [eax + 0x24], ecx
jmp 0x454338
mov eax, dword [ebx + 0xd80]
or dword [ebp + 0x74], 0xffffffff
xor edi, edi
cmp eax, esi
je 0x455c44
cmp dword [ebx + 0xd84], esi
je 0x455c3b
mov dword [ebp + 0x74], 3
jmp 0x455c53
cmp eax, esi
je 0x455c44
mov dword [ebp + 0x74], esi
jmp 0x455c53
cmp dword [ebx + 0xd84], esi
je 0x455c53
mov dword [ebp + 0x74], 1
mov edx, dword [ebp + 0x78]
cmp edx, 3
mov ecx, dword [ebp + 0x7c]
je 0x455c62
cmp edx, esi
jne 0x455c6f
cmp eax, ecx
je 0x455c6f
xor edi, edi
mov dword [ebx + 0xd80], ecx
inc edi
cmp edx, 3
je 0x455c79
cmp edx, 1
jne 0x455c88
lea eax, [ebx + 0xd84]
cmp dword [eax], ecx
je 0x455c88
xor edi, edi
mov dword [eax], ecx
inc edi
cmp edi, esi
je 0x455c9a
push ecx
push edx
push dword [ebx + 0xd18]
call dword [sym.imp.USER32.dll_ShowScrollBar]
mov eax, dword [ebp + 0x74]
jmp 0x456f1c
push dword [ebp + 0x78]
push ebx
call fcn.0044a4b0
jmp 0x4517d3
push dword [ebx + 0xd90]
push ebx
call fcn.00443089
jmp 0x453bf4
test byte [ebp + 0x78], 1
je 0x455cdc
cmp dword [ebp + 0x7c], esi
mov eax, dword [ebx + 0x6f0]
je 0x455cd8
or dword [eax + 0x2c], 1
jmp 0x455cdc
and dword [eax + 0x2c], 0xfffffffe
test byte [ebp + 0x78], 2
je 0x455cf7
cmp dword [ebp + 0x7c], esi
mov eax, dword [ebx + 0x6f0]
je 0x455cf3
or dword [eax + 0x2c], 2
jmp 0x455cf7
and dword [eax + 0x2c], 0xfffffffd
mov eax, dword [ebx + 0x6f0]
mov eax, dword [eax + 0x2c]
jmp 0x456f1c
mov edi, dword [ebx + 0xd60]
cmp edi, esi
mov dword [ebp + 0x78], esi
jne 0x455d28
lea eax, [ebx + 0xd30]
push eax
push ebx
call fcn.0044100a
pop ecx
pop ecx
mov edi, eax
jmp 0x455e34
lea eax, [edi + 8]
push eax
push dword [ebp + 0x7c]
lea eax, [ebp + 0x58]
push eax
call dword [sym.imp.USER32.dll_IntersectRect]
test eax, eax
je 0x455e1d
mov eax, dword [ebp + 0x7c]
mov ecx, dword [eax + 8]
cmp dword [edi + 8], ecx
jge 0x455da8
mov edx, dword [edi + 0x10]
cmp edx, dword [eax]
jle 0x455da8
cmp edx, ecx
jle 0x455d7b
mov dword [ebp + 0x58], ecx
mov eax, dword [edi + 0xc]
mov dword [ebp + 0x5c], eax
mov eax, dword [edi + 0x10]
mov dword [ebp + 0x60], eax
mov eax, dword [edi + 0x14]
mov dword [ebp + 0x64], eax
lea eax, [ebp + 0x58]
push eax
push ebx
call fcn.0044100a
mov eax, dword [ebp + 0x7c]
pop ecx
pop ecx
mov ecx, dword [edi + 8]
cmp ecx, dword [eax]
jge 0x455da8
mov dword [ebp + 0x58], ecx
mov eax, dword [edi + 0xc]
mov dword [ebp + 0x5c], eax
mov eax, dword [ebp + 0x7c]
mov eax, dword [eax]
mov dword [ebp + 0x60], eax
mov eax, dword [edi + 0x14]
mov dword [ebp + 0x64], eax
lea eax, [ebp + 0x58]
push eax
push ebx
call fcn.0044100a
mov eax, dword [ebp + 0x7c]
pop ecx
pop ecx
mov edx, dword [eax + 0xc]
cmp dword [edi + 0xc], edx
jge 0x455e15
mov ecx, dword [edi + 0x14]
cmp ecx, dword [eax + 4]
jle 0x455e15
cmp ecx, edx
jle 0x455de6
mov eax, dword [edi + 8]
mov dword [ebp + 0x58], eax
mov eax, dword [ebp + 0x7c]
mov eax, dword [eax + 0xc]
mov dword [ebp + 0x5c], eax
mov eax, dword [edi + 0x10]
mov dword [ebp + 0x60], eax
mov eax, dword [edi + 0x14]
mov dword [ebp + 0x64], eax
lea eax, [ebp + 0x58]
push eax
push ebx
call fcn.0044100a
mov eax, dword [ebp + 0x7c]
pop ecx
pop ecx
mov ecx, dword [edi + 0xc]
cmp ecx, dword [eax + 4]
jge 0x455e15
mov eax, dword [edi + 8]
mov dword [ebp + 0x58], eax
mov eax, dword [edi + 0xc]
mov dword [ebp + 0x5c], eax
mov eax, dword [edi + 0x10]
mov dword [ebp + 0x60], eax
mov eax, dword [ebp + 0x7c]
mov eax, dword [eax + 4]
mov dword [ebp + 0x64], eax
lea eax, [ebp + 0x58]
push eax
push ebx
call fcn.0044100a
pop ecx
pop ecx
xor eax, eax
inc eax
mov dword [ebp + 0x78], eax
jmp 0x455e1f
xor eax, eax
cmp eax, esi
mov ecx, dword [edi]
mov dword [ebp + 0x74], ecx
je 0x455e31
push edi
push ebx
call fcn.00435969
pop ecx
pop ecx
mov edi, dword [ebp + 0x74]
cmp edi, esi
jne 0x455d28
jmp 0x454cfb
mov dl, byte [ebp + 0x78]
test dl, 2
je 0x455e7b
mov eax, dword [ebx + 0xd50]
mov ecx, dword [ebx + 0xd54]
mov esi, dword [ebx + 0xd38]
mov edi, dword [ebx + 0xd3c]
sub eax, dword [ebx + 0xd30]
sub ecx, dword [ebx + 0xd34]
sub esi, dword [ebx + 0xd58]
sub edi, dword [ebx + 0xd5c]
jmp 0x455e94
lea esi, [ebx + 0xd50]
lea edi, [ebp + 0x58]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [ebp + 0x58]
mov edi, dword [ebp + 0x64]
mov esi, dword [ebp + 0x60]
mov ecx, dword [ebp + 0x5c]
test dl, 4
mov ebx, dword [ebp + 0x7c]
jne 0x455e9e
mov dword [ebx], eax
test dl, 8
jne 0x455ea6
mov dword [ebx + 4], ecx
test dl, 0x10
jne 0x455eae
mov dword [ebx + 8], esi
test dl, 0x20
jne 0x454338
mov dword [ebx + 0xc], edi
jmp 0x454338
cmp dword [ebp + 0x7c], esi
mov esi, dword [ebp + 0x7c]
jne 0x455ecd
lea esi, [ebx + 0xd30]
mov al, byte [ebp + 0x78]
test al, 2
je 0x455f05
mov ecx, dword [ebx + 0xd30]
add ecx, dword [esi]
mov dword [ebp + 0x58], ecx
mov ecx, dword [esi + 4]
add ecx, dword [ebx + 0xd34]
mov dword [ebp + 0x5c], ecx
mov ecx, dword [ebx + 0xd38]
sub ecx, dword [esi + 8]
mov dword [ebp + 0x60], ecx
mov ecx, dword [ebx + 0xd3c]
sub ecx, dword [esi + 0xc]
mov dword [ebp + 0x64], ecx
jmp 0x455f0c
lea edi, [ebp + 0x58]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
test al, 4
je 0x455f19
mov ecx, dword [ebx + 0xd50]
mov dword [ebp + 0x58], ecx
test al, 8
je 0x455f26
mov ecx, dword [ebx + 0xd54]
mov dword [ebp + 0x5c], ecx
test al, 0x10
je 0x455f33
mov ecx, dword [ebx + 0xd58]
mov dword [ebp + 0x60], ecx
test al, 0x20
je 0x455f40
mov ecx, dword [ebx + 0xd5c]
mov dword [ebp + 0x64], ecx
test al, 1
lea edi, [ebx + 0xd50]
lea esi, [ebp + 0x58]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
je 0x454338
push 1
push 0
jmp 0x45670f
push 1
push dword [ebp + 0x7c]
push dword [ebp + 0x78]
push ebx
call fcn.0043836a
jmp 0x453094
mov eax, dword [ebx + 0x6f0]
mov eax, dword [eax + 0xd4]
jmp 0x4520f0
mov eax, dword [ebx + 0x6f0]
mov edx, dword [ebp + 0x78]
add eax, 0xd4
cmp edx, esi
mov dword [ebp + 0x74], esi
je 0x456045
mov ecx, dword [eax]
cmp ecx, esi
mov edi, 0x45e458
je 0x455fce
cmp dword [ecx + 0xc], edx
je 0x456083
mov eax, ecx
dec dword [eax + 8]
mov eax, dword [ebx + 0x6f0]
mov eax, dword [eax + 0xd4]
cmp dword [eax + 8], esi
jne 0x455fce
push eax
push edi
call fcn.00435b77
pop ecx
pop ecx
push dword [ebp + 0x78]
push edi
call fcn.00435b61
pop ecx
pop ecx
mov ecx, dword [ebx + 0x6f0]
mov dword [ecx + 0xd4], eax
mov eax, dword [ebx + 0x6f0]
cmp dword [eax + 0xd4], esi
jne 0x45600a
push dword [ebp + 0x78]
push edi
call fcn.0044125d
pop ecx
pop ecx
mov ecx, dword [ebx + 0x6f0]
mov dword [ecx + 0xd4], eax
mov eax, dword [ebx + 0x6f0]
add eax, 0xd4
mov ecx, dword [eax]
cmp ecx, esi
je 0x454338
cmp dword [ecx + 0x14], esi
je 0x45602b
mov eax, ecx
inc dword [eax + 8]
jmp 0x45607c
push ecx
push edi
call fcn.00435b77
mov eax, dword [ebx + 0x6f0]
pop ecx
pop ecx
mov dword [eax + 0xd4], esi
jmp 0x454338
cmp dword [eax], esi
je 0x454338
mov eax, dword [eax]
dec dword [eax + 8]
mov eax, dword [ebx + 0x6f0]
mov eax, dword [eax + 0xd4]
cmp dword [eax + 8], esi
jne 0x456070
push eax
push 0x45e458
call fcn.00435b77
pop ecx
pop ecx
mov eax, dword [ebx + 0x6f0]
mov dword [eax + 0xd4], esi
mov dword [ebp + 0x74], 1
mov eax, dword [ebx + 0x6f0]
mov ecx, dword [ebp + 0x7c]
add eax, 0xd8
cmp ecx, dword [eax]
je 0x45609e
mov dword [eax], ecx
mov dword [ebp + 0x74], 1
cmp dword [ebp + 0x74], esi
je 0x455c9a
push 1
push esi
push dword [ebx + 0xd18]
call dword [sym.imp.USER32.dll_InvalidateRect]
jmp 0x455c9a
mov eax, dword [ebp + 0x78]
cmp eax, 1
jne 0x4560ce
lea eax, [ebx + 0xd68]
jmp 0x456f1c
cmp eax, 2
jne 0x4560e1
push dword [ebp + 0x7c]
push ebx
call fcn.00442d53
jmp 0x453bf4
cmp eax, 3
jne 0x4560f4
push dword [ebp + 0x7c]
push ebx
call fcn.004371ea
jmp 0x4517d3
cmp eax, 4
jne 0x454338
push ebx
call fcn.0043720a
jmp 0x4517d4
mov eax, dword [ebx + 0x14]
add eax, 0x6a4
jmp 0x456f1c
mov eax, dword [ebp + 0x78]
cmp eax, esi
jne 0x45612a
mov eax, dword [ebx + 0x14]
mov eax, dword [eax + 0x6ac]
jmp 0x456f1c
cmp eax, 1
jne 0x45613d
mov eax, dword [ebx + 0x14]
mov eax, dword [eax + 0x6b0]
jmp 0x456f1c
cmp eax, 2
jne 0x456150
mov eax, dword [ebx + 0x14]
mov eax, dword [eax + 0x6b4]
jmp 0x456f1c
cmp eax, 3
jne 0x456163
mov eax, dword [ebx + 0x14]
mov eax, dword [eax + 0x6b8]
jmp 0x456f1c
cmp eax, 4
jne 0x454338
mov eax, dword [ebx + 0x14]
mov eax, dword [eax + 0x6bc]
jmp 0x456f1c
push dword [ebp + 0x7c]
push ebx
call fcn.00441397
jmp 0x453bf4
or dword [ebp + 0x74], 0xffffffff
cmp dword [ebp + 0x7c], esi
je 0x4561a6
mov eax, dword [ebx + 0x6f0]
cmp dword [eax + 0x18], esi
jne 0x4561a6
push ebx
call fcn.004384d0
pop ecx
mov dword [ebp + 0x74], eax
cmp dword [ebp + 0x78], esi
je 0x4561b7
push dword [ebp + 0x78]
push ebx
call fcn.0043b3f7
pop ecx
jmp 0x4561bd
push ebx
call fcn.0043b4f1
cmp dword [ebp + 0x7c], esi
pop ecx
mov edi, eax
je 0x454c4b
cmp edi, esi
je 0x454c4b
push dword [ebp + 0x74]
push ebx
call fcn.0044af04
jmp 0x452703
push dword [ebp + 0x78]
push ebx
call fcn.00435c6e
jmp 0x453bf4
mov eax, dword [ebp + 0x78]
lea ecx, [eax + 0xc]
push ecx
lea ecx, [eax + 8]
push ecx
push esi
push dword [eax + 4]
push dword [eax]
push ebx
call fcn.0043ae80
jmp 0x452c8a
push dword [ebp + 0x7c]
push dword [ebp + 0x78]
call fcn.00433775
jmp 0x453bf4
push dword [ebp + 0x7c]
push dword [ebp + 0x78]
call fcn.0043379e
jmp 0x453bf4
push dword [ebp + 0x78]
push ebx
call fcn.0043b5c7
jmp 0x453bf4
mov edi, dword [ebp + 0x7c]
or dword [ebp + 0x70], 0xffffffff
mov dword [ebp + 0x7c], edi
and dword [ebp + 0x7c], 4
jne 0x45625c
mov eax, dword [ebx + 0x6f0]
cmp dword [eax + 0x18], esi
jne 0x45625c
push ebx
call fcn.004384d0
pop ecx
mov dword [ebp + 0x70], eax
cmp dword [ebp + 0x74], 0xd56
push edi
push dword [ebp + 0x78]
push ebx
jne 0x456271
call fcn.004507cd
jmp 0x456276
call fcn.004508a7
mov edi, eax
mov eax, dword [ebx + 0x14]
add esp, 0xc
cmp edi, esi
mov dword [eax + 0x6d0], esi
je 0x454c4b
cmp dword [ebp + 0x7c], esi
jne 0x454c4b
push dword [ebp + 0x70]
jmp 0x4561d4
push dword [ebp + 0x7c]
push ebx
call fcn.0044af04
jmp 0x453bf4
mov ebx, dword [ebx + 0x14]
movzx eax, word [ebx + 0x6c4]
movzx ecx, word [ebx + 0x6c0]
jmp 0x4553f3
xor eax, eax
inc eax
cmp word [ebp + 0x78], ax
jle 0x4562ce
movsx eax, word [ebp + 0x78]
mov ecx, dword [ebx + 0x14]
mov dword [ecx + 0x6c0], eax
mov eax, dword [ebp + 0x78]
shr eax, 0x10
cmp ax, si
jge 0x4562e5
movsx esi, ax
mov eax, dword [ebx + 0x14]
mov dword [eax + 0x6c4], esi
jmp 0x454338
push fcn.0045167c
push dword [ebp + 0x7c]
push dword [ebx + 0xd18]
call fcn.00450235
add esp, 0xc
cmp eax, esi
je 0x456f1c
mov dword [eax + 0xd18], esi
jmp 0x456f1c
mov edi, dword [ebp + 0x78]
push edi
call fcn.0044df22
cmp dword [0x45e4d4], edi
pop ecx
jne 0x454338
jmp 0x4517fe
push dword [ebp + 0x7c]
push dword [ebp + 0x78]
push ebx
call fcn.0044abd3
jmp 0x4543fc
mov eax, dword [ebp + 0x78]
cmp eax, esi
je 0x45635a
mov eax, dword [eax + 0xd14]
jmp 0x456f1c
mov eax, dword [ebx + 0xd14]
jmp 0x456f1c
mov eax, dword [ebp + 0x78]
cmp eax, esi
jne 0x454556
mov eax, dword [ebx + 0xd18]
jmp 0x456f1c
mov edi, dword [ebp + 0x7c]
cmp dword [edi + 4], 0xd67
mov eax, dword [ebx + 0xd18]
mov dword [ebp + 0x78], eax
je 0x454338
mov eax, dword [edi]
cmp eax, esi
je 0x4563aa
cmp eax, ebx
je 0x4563aa
push 0x3f
push eax
push ebx
call fcn.0044abd3
add esp, 0xc
cmp dword [ebx + 0xd24], esi
push dword [edi + 0xc]
push dword [edi + 8]
push dword [edi + 4]
push dword [ebp + 0x78]
jne 0x4563c6
call dword [sym.imp.USER32.dll_SendMessageA]
jmp 0x4563cc
call dword [sym.imp.USER32.dll_SendMessageW]
mov dword [edi + 0x10], eax
mov edi, dword [edi]
cmp edi, esi
je 0x4548cb
cmp edi, ebx
je 0x4548cb
mov eax, dword [ebp + 0x78]
cmp dword [edi + 0xd18], eax
jne 0x4548cb
push 0x3f
push ebx
push edi
call fcn.0044abd3
jmp 0x456d73
push dword [ebp + 0x78]
push 0x45e438
call fcn.00435864
cmp eax, esi
pop ecx
pop ecx
je 0x454338
push eax
push ebx
call fcn.0044acc4
pop ecx
jmp 0x456d44
cmp dword [ebp + 0x78], esi
je 0x45645a
push dword [ebp + 0x78]
push 0x45e438
call fcn.00435864
cmp eax, esi
pop ecx
pop ecx
je 0x454338
push eax
push ebx
call fcn.004358ca
cmp eax, esi
pop ecx
pop ecx
je 0x454338
push eax
call fcn.0044ad4e
jmp 0x456d44
push ebx
call fcn.0044ae75
jmp 0x456d44
mov eax, dword [ebx + 0xf6c]
cmp eax, esi
je 0x45647d
cmp dword [ebp + 0x78], esi
jne 0x456f1c
jmp 0x454556
cmp dword [ebx + 0xf68], esi
jle 0x454338
cmp dword [ebp + 0x78], esi
je 0x456370
mov eax, ebx
jmp 0x456f1c
push dword [ebp + 0x78]
push ebx
call fcn.004358ab
cmp eax, esi
pop ecx
pop ecx
je 0x454338
mov eax, dword [eax + 8]
jmp 0x454556
cmp dword [ebx + 0xd24], esi
push dword [ebp + 0x7c]
push ebx
jne 0x4564ca
call fcn.0044317d
jmp 0x453bf4
call fcn.00443442
jmp 0x453bf4
push dword [ebp + 0x7c]
push dword [ebp + 0x78]
push ebx
call fcn.00447802
jmp 0x4543fc
push dword [ebp + 0x7c]
push dword [ebp + 0x78]
push ebx
call fcn.004377f5
jmp 0x451820
push 0x104
lea eax, [ebp - 0x224]
push eax
push 0xffffffffffffffff
push dword [ebp + 0x7c]
push esi
push esi
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea eax, [ebp - 0x224]
push eax
push dword [ebp + 0x78]
call fcn.00442da3
jmp 0x453bf4
push dword [ebp + 0x7c]
jmp 0x456516
mov eax, dword [ebp + 0x78]
cmp eax, esi
jne 0x456540
mov eax, dword [ebx + 0x6f0]
mov eax, dword [eax + 0x5b0]
jmp 0x456f1c
cmp eax, 1
jne 0x45656c
cmp dword [ebp + 0x7c], esi
je 0x45652f
push 0x104
lea eax, [ebp - 0x224]
push eax
push 0xffffffffffffffff
push dword [ebp + 0x7c]
push esi
push esi
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea eax, [ebp - 0x224]
push eax
jmp 0x456579
cmp eax, 2
jne 0x456583
cmp dword [ebp + 0x7c], esi
je 0x45652f
push dword [ebp + 0x7c]
call fcn.0043728c
jmp 0x454418
cmp eax, 3
jne 0x454338
mov eax, dword [ebx + 0x14]
cmp dword [eax + 0x6bc], esi
mov eax, dword [ebp + 0x7c]
je 0x4565d2
lea ecx, [eax + 0xc]
push ecx
lea edi, [eax + 8]
push edi
push esi
push dword [eax + 4]
push dword [eax]
push ebx
call fcn.0043ae80
add esp, 0x18
jmp 0x4565bf
mov eax, dword [edi]
cmp dword [eax + 0x34], esi
jne 0x4565c8
mov eax, dword [eax + 8]
mov dword [edi], eax
cmp dword [edi], esi
jne 0x4565b3
jmp 0x45652f
mov eax, dword [edi]
mov eax, dword [eax + 0x34]
jmp 0x456f1c
mov dword [eax + 8], esi
mov dword [eax + 0xc], esi
jmp 0x45652f
mov eax, dword [ebp + 0x78]
add eax, 8
cmp dword [ebp + 0x7c], esi
je 0x45660e
push esi
push esi
push 0x104
push dword [ebp + 0x7c]
push 0xffffffffffffffff
push eax
push esi
push esi
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
dec eax
jmp 0x456f1c
mov eax, dword [ebp + 0x78]
add eax, 8
cmp dword [ebp + 0x7c], esi
jne 0x45661a
push eax
call fcn.00434be6
pop ecx
jmp 0x455234
push 0x104
push eax
push dword [ebp + 0x7c]
call fcn.00434eaa
jmp 0x4543fc
mov eax, dword [ebp + 0x7c]
cmp eax, 1
jne 0x456653
mov eax, dword [ebp + 0x78]
cmp eax, esi
je 0x456646
add eax, 0x214
jmp 0x456f1c
mov eax, dword [ebx + 0x14]
add eax, 0x25c
jmp 0x456f1c
cmp eax, 2
jne 0x456676
mov eax, dword [ebp + 0x78]
cmp eax, esi
je 0x456669
add eax, 0x21c
jmp 0x456f1c
mov eax, dword [ebx + 0x14]
add eax, 0x264
jmp 0x456f1c
cmp eax, 3
jne 0x456699
mov eax, dword [ebp + 0x78]
cmp eax, esi
je 0x45668c
add eax, 0x634
jmp 0x456f1c
mov eax, dword [ebx + 0x14]
add eax, 0x67c
jmp 0x456f1c
cmp eax, 4
jne 0x4566bc
mov eax, dword [ebp + 0x78]
cmp eax, esi
je 0x4566af
add eax, 0x64c
jmp 0x456f1c
mov eax, dword [ebx + 0x14]
add eax, 0x694
jmp 0x456f1c
cmp eax, 5
jne case.0x4548eb.3532
mov eax, dword [ebp + 0x78]
cmp eax, esi
je 0x4566d2
add eax, 0x654
jmp 0x456f1c
mov eax, dword [ebx + 0x14]
add eax, 0x69c
jmp 0x456f1c
push dword [ebp + 0x78]
call fcn.004372b6
add esp, 4
jmp 0x456f1c
cmp dword [ebp + 0x7c], esi
mov eax, dword [ebx + 0x6f0]
mov ecx, dword [ebp + 0x78]
mov dword [eax + 0x5b0], ecx
je 0x454338
push esi
lea eax, [ebx + 0xd40]
push eax
push dword [ebx + 0xd18]
call dword [sym.imp.USER32.dll_InvalidateRect]
jmp 0x454338
cmp dword [ebp + 0x78], esi
je 0x45672e
push dword [ebp + 0x78]
call fcn.004372ce
pop ecx
push dword [ebp + 0x78]
push ebx
call fcn.00442dfb
jmp 0x4517d3
push esi
call fcn.004372ce
pop ecx
call fcn.00442e47
jmp 0x454338
mov edi, dword [ebp + 0x7c]
push dword [edi + 8]
push dword [edi + 0x10]
push dword [ebp + 0x78]
push ebx
call fcn.00442e95
mov ebx, eax
add esp, 0x10
cmp ebx, esi
je case.0x4548eb.3427
mov eax, dword [edi + 0x10]
lea eax, [eax + eax + 2]
push eax
push esi
push esi
call fcn.0043ad6c
add esp, 0xc
cmp eax, esi
mov dword [ebx + 0xc], eax
je 0x4568d7
mov ecx, dword [edi + 0x10]
inc ecx
push ecx
push eax
push ecx
push dword [edi + 0xc]
push esi
push esi
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
dec eax
jmp 0x4568d4
mov edi, dword [ebp + 0x7c]
push dword [edi + 8]
push dword [edi + 0x10]
push dword [ebp + 0x78]
push ebx
call fcn.00442e95
mov ebx, eax
add esp, 0x10
cmp ebx, esi
je case.0x4548eb.3427
mov eax, dword [edi + 0x10]
lea eax, [eax + eax + 2]
push eax
push esi
push esi
call fcn.0043ad6c
add esp, 0xc
cmp eax, esi
mov dword [ebx + 0xc], eax
je 0x4568d7
mov ecx, dword [edi + 0x10]
lea ecx, [ecx + ecx + 2]
push ecx
push dword [edi + 0xc]
push eax
call fcn.00434a7e
mov eax, dword [edi + 0x10]
add esp, 0xc
jmp 0x4568d4
cmp dword [ebp + 0x7c], esi
je 0x45680f
push dword [ebp + 0x7c]
push dword [ebp + 0x78]
push ebx
call fcn.00437301
jmp 0x451820
push dword [ebp + 0x78]
push ebx
call fcn.0043734e
jmp 0x4517d3
mov edi, dword [ebp + 0x7c]
test byte [edi + 0x14], 2
jne 0x45682e
mov eax, dword [edi + 0x10]
mov dword [ebp + 0x7c], eax
jmp 0x456831
mov dword [ebp + 0x7c], esi
push dword [ebp + 0x7c]
push dword [ebp + 0x78]
push ebx
call fcn.0043c7c1
mov ebx, eax
add esp, 0xc
cmp ebx, esi
je case.0x4548eb.3427
mov eax, dword [edi + 0x10]
lea eax, [eax + eax + 2]
push eax
push esi
push esi
call fcn.0043ad6c
add esp, 0xc
cmp eax, esi
mov dword [ebx + 0xc], eax
je 0x4568d1
mov ecx, dword [edi + 0x10]
inc ecx
push ecx
push eax
push ecx
push dword [edi + 0xc]
push esi
push esi
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
jmp 0x4568d1
mov edi, dword [ebp + 0x7c]
test byte [edi + 0x14], 2
jne 0x456888
mov eax, dword [edi + 0x10]
mov dword [ebp + 0x7c], eax
jmp 0x45688b
mov dword [ebp + 0x7c], esi
push dword [ebp + 0x7c]
push dword [ebp + 0x78]
push ebx
call fcn.0043c7c1
mov ebx, eax
add esp, 0xc
cmp ebx, esi
je case.0x4548eb.3427
mov eax, dword [edi + 0x10]
lea eax, [eax + eax + 2]
push eax
push esi
push esi
call fcn.0043ad6c
add esp, 0xc
cmp eax, esi
mov dword [ebx + 0xc], eax
je 0x4568d7
mov ecx, dword [edi + 0x10]
lea ecx, [ecx + ecx + 2]
push ecx
push dword [edi + 0xc]
push eax
call fcn.00434a7e
add esp, 0xc
mov eax, dword [ebp + 0x7c]
mov dword [ebx + 0x10], eax
mov eax, dword [edi + 0x14]
mov dword [ebx + 0x14], eax
mov eax, dword [edi + 0x18]
mov dword [ebx + 0x18], eax
mov eax, dword [edi + 0x1c]
mov dword [ebx + 0x1c], eax
mov eax, dword [edi + 0x20]
mov dword [ebx + 0x20], eax
mov eax, dword [edi + 0x24]
mov dword [ebx + 0x24], eax
jmp case.0x4548eb.3427
cmp dword [ebp + 0x7c], esi
je 0x456910
push dword [ebp + 0x7c]
push dword [ebp + 0x78]
push ebx
call fcn.0043739e
jmp 0x451820
push dword [ebp + 0x78]
push ebx
call fcn.00437408
jmp 0x4517d3
mov edi, dword [ebp + 0x7c]
push dword [edi + 8]
push dword [ebp + 0x78]
push ebx
call fcn.00442ece
add esp, 0xc
cmp eax, esi
mov dword [ebp + 0x7c], eax
je 0x456a98
cmp dword [edi + 0xc], esi
je 0x45697b
test byte [edi + 0x30], 8
jne 0x45697b
mov eax, dword [edi + 0x10]
lea eax, [eax + eax + 2]
push eax
push esi
push esi
call fcn.0043ad6c
mov ecx, dword [ebp + 0x7c]
add esp, 0xc
cmp eax, esi
mov dword [ecx + 0xc], eax
je 0x45697b
mov ecx, dword [edi + 0x10]
inc ecx
push ecx
push eax
push ecx
push dword [edi + 0xc]
push esi
push esi
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov ecx, dword [ebp + 0x7c]
dec eax
mov dword [ecx + 0x10], eax
cmp dword [edi + 0x14], esi
je 0x4569bb
test byte [edi + 0x30], 0x10
jne 0x4569bb
mov eax, dword [edi + 0x18]
lea eax, [eax + eax + 2]
push eax
push esi
push esi
call fcn.0043ad6c
mov ecx, dword [ebp + 0x7c]
add esp, 0xc
cmp eax, esi
mov dword [ecx + 0x14], eax
je 0x4569bb
mov ecx, dword [edi + 0x18]
inc ecx
push ecx
push eax
push ecx
push dword [edi + 0x14]
push esi
push esi
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov ecx, dword [ebp + 0x7c]
dec eax
mov dword [ecx + 0x18], eax
mov eax, dword [ebp + 0x7c]
push 1
add eax, 0x1c
push eax
push 1
lea eax, [edi + 0x1c]
push eax
push esi
push esi
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
cmp dword [edi + 0x20], esi
je 0x456a0c
mov eax, dword [edi + 0x24]
lea eax, [eax + eax + 2]
push eax
push esi
push esi
call fcn.0043ad6c
mov ecx, dword [ebp + 0x7c]
add esp, 0xc
cmp eax, esi
mov dword [ecx + 0x20], eax
je 0x456a0c
mov ecx, dword [edi + 0x24]
inc ecx
push ecx
push eax
push ecx
push dword [edi + 0x20]
push esi
push esi
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov ecx, dword [ebp + 0x7c]
dec eax
mov dword [ecx + 0x24], eax
cmp dword [edi + 0x28], esi
je 0x456a46
mov eax, dword [edi + 0x2c]
lea eax, [eax + eax + 2]
push eax
push esi
push esi
call fcn.0043ad6c
mov ecx, dword [ebp + 0x7c]
add esp, 0xc
cmp eax, esi
mov dword [ecx + 0x28], eax
je 0x456a46
mov ecx, dword [edi + 0x2c]
inc ecx
push ecx
push eax
push ecx
push dword [edi + 0x28]
push esi
push esi
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov ecx, dword [ebp + 0x7c]
dec eax
mov dword [ecx + 0x2c], eax
mov eax, dword [ebp + 0x7c]
mov ecx, dword [edi + 0x30]
mov dword [eax + 0x30], ecx
mov ecx, dword [edi + 0x34]
mov dword [eax + 0x34], ecx
mov ecx, dword [edi + 0x38]
mov dword [eax + 0x38], ecx
mov ecx, dword [edi + 0x3c]
push eax
mov dword [eax + 0x3c], ecx
mov ecx, dword [edi + 0x44]
push eax
push dword [ebp + 0x78]
mov dword [eax + 0x40], ecx
mov ecx, dword [edi + 0x48]
push ebx
mov dword [eax + 0x44], ecx
call fcn.004447ca
add esp, 0x10
test eax, eax
jne 0x456a98
mov eax, dword [ebp + 0x7c]
mov ecx, dword [eax + 0x4c]
push eax
push dword [ebp + 0x78]
mov dword [edi + 0x4c], ecx
push ebx
call fcn.0043c8d7
add esp, 0xc
mov dword [ebp + 0x7c], esi
mov eax, dword [ebp + 0x7c]
jmp 0x456f1c
push esi
push dword [ebp + 0x7c]
push dword [ebp + 0x78]
push ebx
call fcn.004447ca
jmp 0x454486
cmp dword [ebp + 0x7c], esi
je 0x456ac8
push dword [ebp + 0x7c]
push dword [ebp + 0x78]
push ebx
call fcn.0043c8d7
jmp 0x451820
push dword [ebp + 0x78]
push ebx
call fcn.0043c93e
jmp 0x4517d3
mov edi, dword [ebp + 0x7c]
push dword [edi + 8]
push dword [ebp + 0x78]
push ebx
call fcn.00443017
add esp, 0xc
cmp eax, esi
mov dword [ebp + 0x7c], eax
je 0x456a98
mov eax, dword [edi + 0x10]
lea eax, [eax + eax + 2]
push eax
push esi
push esi
call fcn.0043ad6c
mov ecx, dword [ebp + 0x7c]
add esp, 0xc
cmp eax, esi
mov dword [ecx + 0xc], eax
je 0x456b24
mov ecx, dword [edi + 0x10]
inc ecx
push ecx
push eax
push ecx
push dword [edi + 0xc]
push esi
push esi
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov ecx, dword [ebp + 0x7c]
dec eax
mov dword [ecx + 0x10], eax
push dword [ebp + 0x7c]
push dword [ebp + 0x7c]
push dword [ebp + 0x78]
push ebx
call fcn.00444c3b
add esp, 0x10
test eax, eax
jne 0x456a98
mov eax, dword [ebp + 0x7c]
mov ecx, dword [eax + 0x24]
push eax
push dword [ebp + 0x78]
mov dword [edi + 0x24], ecx
push ebx
call fcn.0043ca05
jmp 0x456a92
push esi
push dword [ebp + 0x7c]
push dword [ebp + 0x78]
push ebx
call fcn.00444c3b
jmp 0x454486
cmp dword [ebp + 0x7c], esi
je 0x456b7e
push dword [ebp + 0x7c]
push dword [ebp + 0x78]
push ebx
call fcn.0043ca05
jmp 0x451820
push dword [ebp + 0x78]
push ebx
call fcn.0043ca41
jmp 0x4517d3
mov edi, dword [ebp + 0x7c]
push dword [edi + 8]
push dword [ebp + 0x78]
push ebx
call fcn.00443050
add esp, 0xc
cmp eax, esi
je 0x456f1c
mov ecx, dword [edi + 0xc]
mov dword [eax + 0xc], ecx
mov ecx, dword [edi + 0x10]
mov dword [eax + 0x10], ecx
mov ecx, dword [edi + 0x14]
mov dword [eax + 0x14], ecx
mov ecx, dword [edi + 0x18]
mov dword [eax + 0x18], ecx
mov ecx, dword [edi + 0x1c]
mov dword [eax + 0x1c], ecx
mov ecx, dword [edi + 0x20]
mov dword [eax + 0x20], ecx
jmp 0x456f1c
cmp dword [ebp + 0x7c], esi
je 0x456be5
push dword [ebp + 0x7c]
push dword [ebp + 0x78]
push ebx
call fcn.00437467
jmp 0x451820
push dword [ebp + 0x78]
push ebx
call fcn.00437496
jmp 0x4517d3
push dword [ebp + 0x7c]
push ebx
call fcn.00446f86
jmp 0x4517d3
mov eax, dword [ebx + 0x6f0]
mov ecx, dword [eax + 0x5b4]
mov edx, dword [ebp + 0x78]
cmp edx, 1
mov eax, ecx
mov dword [ebp + 0x74], eax
jne 0x456c1f
mov eax, dword [ebp + 0x7c]
jmp 0x456c3f
cmp edx, 2
jne 0x456c29
or eax, dword [ebp + 0x7c]
jmp 0x456c3f
cmp edx, 3
jne 0x456c33
and eax, dword [ebp + 0x7c]
jmp 0x456c3f
cmp edx, 4
jne 0x456c42
mov edx, dword [ebp + 0x7c]
not edx
and eax, edx
mov dword [ebp + 0x74], eax
test cl, 1
je 0x456c4b
test al, 1
je 0x456c5d
test cl, 2
je 0x456c54
test al, 2
je 0x456c5d
test cl, 4
je 0x456c7c
test al, 4
jne 0x456c7c
push 1
lea eax, [ebx + 0xd40]
push eax
push dword [ebx + 0xd18]
call dword [sym.imp.USER32.dll_InvalidateRect]
push ebx
call fcn.0044ae95
mov eax, dword [ebp + 0x74]
pop ecx
mov ecx, dword [ebx + 0x6f0]
mov dword [ecx + 0x5b4], eax
mov eax, dword [ebx + 0x6f0]
mov eax, dword [eax + 0x5b4]
jmp 0x456f1c
mov edi, dword [ebp + 0x74]
cmp edi, 0x100
jb 0x456ef7
cmp dword [ebp + 0x74], 0x108
ja 0x456ef7
mov eax, dword [ebx + 0x6f0]
test byte [eax + 6], 1
mov edi, dword [ebp + 0x74]
je 0x456cde
lea eax, [ebp + 0x7c]
push eax
lea eax, [ebp + 0x78]
push eax
push edi
push ebx
call fcn.0044875b
add esp, 0x10
test eax, eax
jne 0x454338
cmp edi, 0x100
je 0x456de0
cmp edi, 0x104
je 0x456de0
cmp edi, 0x102
jne 0x456d7b
mov eax, dword [ebx + 0xd9c]
xor edi, edi
cmp eax, esi
je 0x456d38
jle 0x456d2d
push 0x90
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
je 0x456d2d
inc edi
push edi
push dword [ebx + 0xd9c]
push ebx
call fcn.0044fca7
add esp, 0xc
mov dword [ebx + 0xd9c], esi
jmp 0x454c4b
cmp dword [ebp + 0x78], 0xd
jne 0x456d4a
push ebx
call fcn.0044fe7d
pop ecx
jmp 0x4548cb
cmp dword [ebp + 0x78], 9
je 0x456d64
cmp dword [ebp + 0x78], 0x20
jb 0x456ef7
cmp dword [ebp + 0x78], 0x7f
je 0x456ef7
push dword [ebx + 0xd24]
push dword [ebp + 0x78]
push ebx
call fcn.0044fca7
add esp, 0xc
jmp 0x4548cb
mov edx, 0x106
cmp edi, edx
je 0x456dab
cmp edi, 0x103
je 0x456dab
cmp edi, 0x107
je 0x456dab
cmp edi, 0x101
je 0x456dab
cmp edi, 0x105
jne 0x456ef7
mov edi, dword [ebp + 0x74]
cmp dword [ebp + 0x78], 0x12
jne 0x456dcd
lea eax, [ebx + 0xd9c]
mov ecx, dword [eax]
cmp ecx, 0xfffffffb
jne 0x456dc2
mov dword [eax], esi
jmp 0x456dcd
cmp ecx, 0xffffffff
jne 0x456dcd
mov dword [eax], 0xfffffffe
cmp edi, edx
jne 0x456ef7
mov dword [ebx + 0xd9c], esi
jmp 0x456ef7
mov edi, dword [sym.imp.USER32.dll_GetKeyState]
push 0x12
mov dword [ebp + 0x4c], esi
mov dword [ebp + 0x34], esi
mov dword [ebp + 0x70], esi
call edi
test ax, ax
jge 0x456dff
mov dword [ebp + 0x4c], 1
push 0x10
call edi
test ax, ax
jge 0x456e0f
mov dword [ebp + 0x34], 1
push 0x11
call edi
test ax, ax
jge 0x456e1f
mov dword [ebp + 0x70], 1
cmp dword [ebp + 0x4c], esi
je 0x456ecc
cmp dword [ebp + 0x34], esi
jne 0x456ecc
cmp dword [ebp + 0x70], esi
jne 0x456ecc
mov eax, dword [ebx + 0xd9c]
push 0xfffffffffffffffb
pop edx
cmp eax, edx
je 0x456ecc
mov ecx, dword [ebp + 0x78]
cmp ecx, 0x60
jb 0x456ec5
cmp ecx, 0x69
ja 0x456ec5
cmp eax, 0xfffffffc
je 0x456e9c
cmp eax, esi
jg 0x456e97
cmp ecx, 0x60
jne 0x456e79
xor ecx, ecx
cmp eax, 0xfffffffd
setne cl
add ecx, 0xfffffffc
mov dword [ebx + 0xd9c], ecx
jmp 0x456ecc
mov edi, dword [ebx + 0x6f0]
test byte [edi + 0xc], 8
je 0x456e8f
cmp eax, 0xfffffffd
je 0x456e8f
add ecx, 0xffffffa0
jmp 0x456e71
mov dword [ebx + 0xd9c], edx
jmp 0x456ecc
cmp eax, 0xfffffffc
jne 0x456eac
cmp ecx, 0x60
je 0x456eb9
add ecx, 0xffffffa0
mov dword [ebx + 0xd9c], ecx
jmp 0x456eb9
lea eax, [eax + eax*4]
lea eax, [ecx + eax*2 - 0x60]
mov dword [ebx + 0xd9c], eax
cmp dword [ebx + 0xd9c], 0x10000
jle 0x456ecc
or dword [ebx + 0xd9c], 0xffffffff
push dword [ebp + 0x70]
lea edi, [ebx + 0xda0]
push dword [ebp + 0x34]
mov dword [edi], 1
push dword [ebp + 0x4c]
push dword [ebp + 0x78]
push ebx
call fcn.00450b05
add esp, 0x14
cmp eax, esi
mov dword [edi], esi
jne 0x454338
cmp dword [ebx + 0xd24], esi
push dword [ebp + 0x7c]
push dword [ebp + 0x78]
push dword [ebp + 0x74]
push dword [ebx + 0xd18]
jne 0x456f16
call dword [sym.imp.USER32.dll_DefWindowProcA]
jmp 0x456f1c
call dword [sym.imp.USER32.dll_DefWindowProcW]
pop edi
pop esi
pop ebx
add ebp, 0x68
leave
ret 0x10