Function at 0x4389a0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4f4f53
mov eax, dword fs:[0]
push eax
sub esp, 0x2b4
mov eax, dword [0x53ba20]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x2ac], edi
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
mov dword [ebp - 0x2a0], eax
lea eax, [esi - 0x1000]
mov dword [ebp - 0x2b0], ecx
mov dword [ebp - 0x2b4], edx
cmp eax, 0xff
ja 0x438a15
push edx
push ecx
push esi
push dword [ebp - 0x2a0]
mov ecx, edi
call fcn.004367f0
jmp 0x439926
movzx eax, dx
mov dword [ebp - 0x298], eax
lea eax, [esi - 0x200]
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
cmp eax, 0xe
mov eax, dword [ebp - 0x298]
ja 0x438ab4
cwde
xorps xmm0, xmm0
mov dword [ebp - 0x230], eax
mov eax, edx
shr eax, 0x10
cwde
mov dword [ebp - 0x22c], eax
mov eax, dword [ebp - 0x2a0]
mov dword [ebp - 0x254], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x250], eax
lea eax, [ebp - 0x230]
push eax
push dword [edi + 0x2c]
mov dword [ebp - 0x24c], ecx
mov ecx, edi
mov dword [ebp - 0x248], edx
movq qword [ebp - 0x244], xmm0
mov dword [ebp - 0x23c], 0
call fcn.004387b0
lea eax, [ebp - 0x254]
push eax
push 0
push 0x407
push dword [edi + 0x2c]
call esi
mov eax, dword [ebp - 0x298]
mov ecx, dword [ebp - 0x2b0]
mov edx, dword [ebp - 0x2b4]
cmp dword [ebp + 0xc], 0x201
movzx eax, ax
mov dword [ebp - 0x298], eax
movzx eax, ax
jne 0x438ce8
cmp byte [edi + 0xb4], 0
je 0x438b1a
movsx esi, ax
mov eax, esi
sub eax, dword [edi + 0x90]
cdq
xor eax, edx
sub eax, edx
cmp eax, 8
jg 0x438b08
push dword [ebp - 0x2a0]
call dword [sym.imp.USER32.dll_SetCapture]
push dword [edi + 0x34]
call dword [sym.imp.USER32.dll_SetCursor]
mov dword [edi + 0xb8], esi
jmp 0x438b1a
push 0xfffffffffffffff4
push dword [edi + 8]
call dword [sym.imp.USER32.dll_GetClassLongW]
push eax
call dword [sym.imp.USER32.dll_SetCursor]
push dword [ebp - 0x2a0]
call dword [sym.imp.USER32.dll_SetFocus]
mov eax, dword [ebp - 0x298]
movzx edx, ax
mov eax, dword [ebp - 0x2b4]
movsx ecx, dx
lea edx, [ebp - 0x29c]
push edx
push 0
shr eax, 0x10
lea edx, [ebp - 0x2a4]
push edx
cwde
push eax
push ecx
mov ecx, edi
mov dword [ebp - 0x2a4], 0
mov dword [ebp - 0x29c], 0
call fcn.00435a20
mov esi, dword [ebp - 0x29c]
mov dword [ebp - 0x2a4], eax
test al, 0xe0
je 0x438b92
push 0
push 0
push esi
push 0
push 0xfffffffffffffffe
push dword [edi + 8]
mov ecx, edi
call fcn.00433a90
mov eax, dword [ebp - 0x2a4]
test al, 0x40
je 0x438cd0
mov eax, dword [esi + 0x20]
shr eax, 4
mov cl, al
and al, 1
not cl
and cl, 1
mov byte [ebp - 0x2b5], cl
cmp cl, al
je case.0x439c30.259
mov eax, dword [edi + 8]
test cl, cl
push 0
push 0
push esi
push 0
mov ecx, edi
je 0x438be7
push 0x7d1
push eax
call fcn.00433a90
test eax, eax
jne case.0x439c30.259
or dword [esi + 0x20], 0x30
mov ecx, esi
call fcn.00435620
jmp 0x438c05
push 0x7d2
push eax
call fcn.00433a90
test eax, eax
jne case.0x439c30.259
mov ecx, esi
call fcn.00435620
and dword [esi + 0x20], 0xffffffef
mov dword [ebp - 0x2ac], eax
test eax, eax
je case.0x439c30.259
mov ecx, dword [edi + 0x54]
xor eax, eax
mov dword [ebp - 0x298], eax
test ecx, ecx
je 0x438c6e
cmp ecx, esi
je 0x438c77
mov edx, dword [ecx + 0x14]
inc eax
mov dword [ebp - 0x298], eax
test edx, edx
je 0x438c48
mov eax, dword [ecx + 0x20]
shr eax, 4
test al, 1
je 0x438c48
mov ecx, edx
mov eax, dword [ebp - 0x298]
jmp 0x438c22
mov eax, dword [ecx + 0x10]
test eax, eax
je 0x438c59
mov ecx, eax
mov eax, dword [ebp - 0x298]
jmp 0x438c22
mov eax, dword [ecx + 8]
test eax, eax
je 0x438c6e
mov ecx, dword [eax + 0x10]
test ecx, ecx
jne 0x438c40
mov eax, dword [eax + 8]
test eax, eax
jne 0x438c60
or eax, 0xffffffff
mov dword [ebp - 0x298], eax
push eax
push eax
mov ecx, edi
call fcn.00437b00
mov ecx, dword [ebp - 0x298]
inc ecx
cmp byte [ebp - 0x2b5], 0
je 0x438ca3
push dword [ebp - 0x2ac]
push ecx
mov ecx, edi
call fcn.00436550
jmp case.0x439c30.259
mov eax, dword [ebp - 0x2ac]
neg eax
push eax
push ecx
mov ecx, edi
call fcn.00436550
mov eax, dword [edi + 0x7c]
test eax, eax
je case.0x439c30.259
nop
cmp eax, esi
je 0x438cdb
mov eax, dword [eax + 8]
test eax, eax
jne 0x438cc0
jmp case.0x439c30.259
test eax, 0x1e0
je case.0x439c30.259
push esi
mov ecx, edi
call fcn.00438140
jmp case.0x439c30.259
cmp dword [ebp + 0xc], 0x200
jne 0x438e55
cmp byte [edi + 0xb4], 0
je 0x439c18
movsx esi, ax
call dword [sym.imp.USER32.dll_GetCapture]
cmp eax, dword [ebp - 0x2a0]
jne 0x438d9c
test byte [ebp - 0x2b0], 1
je 0x438d9c
sub esi, dword [edi + 0xb8]
mov dword [ebp - 0x29c], esi
je 0x438d8e
mov ecx, dword [edi + 0x94]
mov edx, ecx
mov esi, dword [edi + 0x90]
sub edx, esi
mov eax, dword [ebp - 0x29c]
add eax, esi
cmp eax, ecx
mov ecx, edi
cmovge edx, dword [ebp - 0x29c]
add dword [edi + 0xb8], edx
add esi, edx
push esi
call fcn.00437d10
lea eax, [ebp - 0x268]
mov dword [ebp - 0x268], 1
push eax
mov eax, dword [sym.imp.USER32.dll_SendMessageW]
push 0
push 0x120c
push dword [edi + 0xc]
mov dword [ebp - 0x264], esi
call eax
mov ecx, edi
call fcn.00437e90
push dword [edi + 0x34]
call dword [sym.imp.USER32.dll_SetCursor]
jmp case.0x439c30.259
mov eax, esi
sub eax, dword [edi + 0x90]
cdq
xor eax, edx
sub eax, edx
cmp eax, 8
jle 0x438d8e
push 0xfffffffffffffff4
push dword [edi + 8]
call dword [sym.imp.USER32.dll_GetClassLongW]
cmp dword [edi + 0xd4], 0
mov ecx, eax
mov dword [ebp - 0x298], ecx
je 0x438e49
mov eax, dword [ebp - 0x2b4]
lea ecx, [ebp - 0x29c]
push ecx
lea ecx, [ebp - 0x2ac]
shr eax, 0x10
push ecx
lea ecx, [ebp - 0x2a4]
cwde
push ecx
push eax
push esi
mov ecx, edi
mov dword [ebp - 0x2a4], 0
mov dword [ebp - 0x2ac], 0
mov dword [ebp - 0x29c], 0
call fcn.00435a20
mov ecx, dword [ebp - 0x29c]
test ecx, ecx
je 0x438e43
push dword [ebp - 0x2ac]
mov eax, dword [edi + 0xd4]
push ecx
call eax
mov ecx, dword [ebp - 0x298]
add esp, 8
test eax, eax
cmovne ecx, eax
push ecx
call dword [sym.imp.USER32.dll_SetCursor]
jmp case.0x439c30.259
mov ecx, dword [ebp - 0x298]
push ecx
call dword [sym.imp.USER32.dll_SetCursor]
jmp case.0x439c30.259
mov eax, dword [ebp + 0xc]
cmp eax, 0x202
jne 0x438e9b
cmp byte [edi + 0xb4], 0
je case.0x439c30.259
call dword [sym.imp.USER32.dll_GetCapture]
cmp eax, dword [ebp - 0x2a0]
jne case.0x439c30.259
call dword [sym.imp.USER32.dll_ReleaseCapture]
push 0xfffffffffffffff4
push dword [edi + 8]
call dword [sym.imp.USER32.dll_GetClassLongW]
push eax
call dword [sym.imp.USER32.dll_SetCursor]
jmp case.0x439c30.259
cmp eax, 0x100
ja 0x439b8d
je 0x439767
add eax, 0xfffffffe
cmp eax, 0x85
ja case.0x439c30.259
movzx eax, byte [eax + 0x43a56c]
jmp dword [eax*4 + 0x43a53c]
push edx
push ecx
push dword [ebp + 0xc]
push dword [ebp - 0x2a0]
test ecx, ecx
je 0x438ef4
call dword [sym.imp.USER32.dll_DefWindowProcW]
mov ecx, edi
mov byte [edi + 0x9d], 0
mov esi, eax
call fcn.00437a20
mov eax, esi
jmp 0x439926
mov byte [edi + 0x9d], 1
call dword [sym.imp.USER32.dll_DefWindowProcW]
jmp 0x439926
cmp ecx, dword [ebp - 0x2a0]
je case.0x439e11.8
jmp case.0x439c30.259
xor eax, eax
mov dword [edi + 0x30], ecx
cmp word [ebp - 0x298], ax
setne al
push eax
push ecx
push 0x30
push dword [edi + 0xc]
mov dword [ebp - 0x2a4], eax
call esi
mov esi, dword [ebp - 0x2a4]
mov eax, dword [sym.imp.USER32.dll_SendMessageW]
push esi
push dword [edi + 0x30]
push 0x30
push dword [edi + 0x14]
call eax
push esi
push dword [edi + 0x30]
push 0x30
push dword [edi + 0x2c]
call dword [sym.imp.USER32.dll_SendMessageW]
push esi
push dword [edi + 0x30]
push 0x30
push dword [edi + 0x10]
call dword [sym.imp.USER32.dll_SendMessageW]
push esi
push dword [edi + 0x30]
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
push 0x30
push dword [edi + 0x18]
call esi
lea eax, [ebp - 0x248]
push eax
push dword [edi + 8]
call dword [sym.imp.USER32.dll_GetClientRect]
lea eax, [ebp - 0x248]
mov dword [ebp - 0x27c], 0
mov dword [ebp - 0x220], eax
xorps xmm0, xmm0
lea eax, [ebp - 0x294]
movq qword [ebp - 0x284], xmm0
mov dword [ebp - 0x21c], eax
lea eax, [ebp - 0x220]
push eax
push 0
push 0x1205
push dword [edi + 0xc]
movups xmmword [ebp - 0x294], xmm0
call esi
mov eax, dword [ebp - 0x27c]
mov esi, dword [sym.imp.USER32.dll_SetWindowPos]
or eax, 0x40
push eax
push dword [ebp - 0x280]
push dword [edi + 0x90]
push 0
push 0
push dword [ebp - 0x290]
push dword [edi + 0xc]
call esi
mov eax, dword [ebp - 0x27c]
mov ecx, dword [edi + 0x90]
or eax, 0x40
push eax
push dword [ebp - 0x280]
mov eax, dword [ebp - 0x284]
sub eax, ecx
push eax
push 0
push ecx
push dword [edi + 0xc]
push dword [edi + 0x14]
call esi
cmp word [ebp - 0x298], 0
je case.default.0x439e11
mov ecx, edi
call fcn.00437a20
xor eax, eax
jmp 0x439926
mov eax, dword [edi + 0x7c]
test eax, eax
je case.0x439c30.259
push eax
mov ecx, edi
call fcn.00437ae0
jmp case.0x439c30.259
lea eax, [ebp - 0x278]
push eax
push dword [ebp - 0x2a0]
call dword [sym.imp.USER32.dll_BeginPaint]
lea eax, [ebp - 0x270]
push eax
call dword [sym.imp.GDI32.dll_CreateRectRgnIndirect]
mov esi, eax
mov dword [ebp - 0x22c], esi
push esi
lea eax, [ebp - 0x278]
mov dword [ebp - 4], 0
push eax
mov ecx, edi
call fcn.00433b10
lea eax, [ebp - 0x278]
push eax
push dword [ebp - 0x2a0]
call dword [sym.imp.USER32.dll_EndPaint]
test esi, esi
je case.default.0x439e11
push esi
call dword [sym.imp.GDI32.dll_DeleteObject]
xor eax, eax
jmp 0x439926
push edx
push ecx
push dword [ebp + 0xc]
push dword [ebp - 0x2a0]
call dword [sym.imp.USER32.dll_DefWindowProcW]
or eax, 1
jmp 0x439926
mov ecx, edi
call fcn.00437e90
mov ecx, edi
call fcn.00438090
mov ecx, edi
call fcn.00437c00
push 0x2c
lea eax, [ebp - 0x264]
mov dword [ebp - 0x268], 0x30
push 0
push eax
call fcn.004c52c0
mov eax, dword [edi + 8]
lea ecx, [ebp - 0x258]
add esp, 0xc
mov dword [ebp - 0x260], eax
push ecx
push eax
call dword [sym.imp.USER32.dll_GetClientRect]
lea eax, [ebp - 0x268]
push eax
push 0
push 0x434
push dword [edi + 0x2c]
call esi
jmp case.0x439c30.259
mov eax, dword [edx]
cmp eax, dword [edi + 0x2c]
mov eax, dword [sym.imp.USER32.dll_GetSystemMetrics]
mov dword [ebp - 0x298], eax
jne 0x4393cb
mov eax, dword [edx + 8]
cmp eax, 0xfffffdee
je 0x439207
cmp eax, 0xfffffdf7
jne 0x4393cb
lea eax, [ebp - 0x288]
mov ecx, edi
push eax
push dword [edi + 0xac]
push 1
push 0
push dword [edi + 0xa4]
push dword [edi + 0xa8]
call fcn.00434fb0
lea eax, [ebp - 0x288]
push eax
push 1
push 0x41f
push dword [edi + 0x2c]
call esi
push 2
lea eax, [ebp - 0x288]
push eax
push 0
push dword [edi + 8]
call dword [sym.imp.USER32.dll_MapWindowPoints]
push 0x15
push 0
push 0
push dword [ebp - 0x284]
push dword [ebp - 0x288]
push 0
push dword [edi + 0x2c]
call dword [sym.imp.USER32.dll_SetWindowPos]
push 0
push dword [edi + 0x30]
push 0x30
push dword [edi + 0x2c]
call esi
push 0
push 0
push dword [edi + 0xac]
mov ecx, edi
push dword [edi + 0xa4]
push 0x7d5
push dword [edi + 0x2c]
call fcn.00433a90
mov eax, 1
jmp 0x439926
cmp dword [edi + 0xac], 0
lea eax, [edx + 0xc]
mov dword [ebp - 0x2a8], eax
je 0x4393c5
push eax
push 0
lea esi, [edx + 0x10]
mov ecx, edi
mov dword [eax], esi
push dword [edi + 0xac]
push dword [edi + 0xa4]
push 0x7d4
push dword [edi + 8]
call fcn.00433a90
test eax, eax
jne case.default.0x439e11
mov edx, dword [edi + 0xac]
lea edi, [ebp - 0x2a4]
mov dword [ebp - 0x2a4], 0x50
push edi
mov edi, dword [ebp - 0x2ac]
mov ecx, dword [edx + 4]
push esi
push dword [edi + 0xa4]
mov eax, dword [ecx]
push edx
mov eax, dword [eax + 8]
call eax
push 0x4e
mov dword [ebp - 0x2ac], eax
mov dword [ebp - 0x288], 0
mov dword [ebp - 0x284], 0
call dword [ebp - 0x298]
mov ecx, edi
mov dword [ebp - 0x280], eax
call fcn.00436740
mov dword [ebp - 0x27c], eax
mov ecx, edi
lea eax, [ebp - 0x228]
push eax
push dword [edi + 0xac]
push 1
push 1
push dword [edi + 0xa4]
push dword [edi + 0xa8]
call fcn.00434fb0
lea eax, [ebp - 0x254]
mov dword [ebp - 0x254], 0x1c
push eax
push 2
push dword [edi + 0x24]
xorps xmm0, xmm0
mov dword [ebp - 0x23c], 0
movups xmmword [ebp - 0x24c], xmm0
mov dword [ebp - 0x250], 4
call dword [sym.imp.USER32.dll_GetScrollInfo]
mov eax, dword [ebp - 0x228]
cmp eax, dword [edi + 0x90]
jne 0x439325
cmp dword [ebp - 0x240], 0
jne case.default.0x439e11
mov eax, dword [edi + 0xa0]
push dword [edi + 8]
and eax, 0xfffb3fff
or eax, 0x400
mov dword [ebp - 0x2bc], eax
call dword [sym.imp.USER32.dll_GetDC]
push dword [edi + 0x30]
mov dword [ebp - 0x29c], eax
push eax
call dword [sym.imp.GDI32.dll_SelectObject]
push dword [ebp - 0x2bc]
mov esi, eax
lea eax, [ebp - 0x288]
push eax
push 0xffffffffffffffff
push dword [ebp - 0x2ac]
push dword [ebp - 0x29c]
call dword [sym.imp.USER32.dll_DrawTextW]
push esi
mov esi, dword [ebp - 0x29c]
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
push esi
push dword [edi + 8]
call dword [sym.imp.USER32.dll_ReleaseDC]
mov edx, dword [ebp - 0x220]
mov ecx, 0x4fbd20
mov eax, dword [ebp - 0x280]
sub edx, dword [ebp - 0x228]
sub eax, dword [ebp - 0x288]
cmp eax, edx
mov eax, dword [ebp - 0x2a8]
mov edx, dword [ebp - 0x2b4]
cmovg ecx, dword [ebp - 0x2ac]
mov dword [eax], ecx
jmp 0x4393cb
mov dword [eax], 0x4fbd20
mov esi, dword [edi + 0xc]
mov ecx, dword [edx]
cmp ecx, esi
je 0x4393dd
cmp ecx, dword [edi + 0x14]
jne case.0x439c30.259
mov eax, dword [edx + 8]
cmp eax, 0xfffffec0
ja 0x43964c
je 0x4394b0
cmp eax, 0xfffffebb
je 0x439436
cmp eax, 0xfffffebe
je 0x43940f
cmp eax, 0xfffffebf
je 0x4394a4
jmp case.0x439c30.259
cmp ecx, esi
jne 0x439417
xor eax, eax
jmp 0x43941b
mov eax, dword [edx + 0xc]
inc eax
push 0
push 0
push 0
push eax
push 0x7d3
push dword [edi + 8]
mov ecx, edi
call fcn.00433a90
jmp case.0x439c30.259
xor eax, eax
cmp ecx, dword [edi + 0x14]
sete al
add eax, dword [edx + 0xc]
mov dword [ebp - 0x2a8], eax
jne 0x439475
cmp byte [edi + 0x9c], 0
je 0x439475
mov esi, dword [edi + 0x98]
mov ecx, edi
push esi
push eax
call fcn.004381c0
push esi
mov ecx, edi
call fcn.00437d10
mov ecx, edi
call fcn.00437e90
jmp case.0x439c30.259
push eax
mov ecx, edi
call fcn.00434e20
mov esi, dword [ebp - 0x2a8]
mov ecx, edi
push eax
push esi
mov dword [ebp - 0x2bc], eax
call fcn.004381c0
test esi, esi
jne 0x4394a4
mov esi, dword [ebp - 0x2bc]
mov ecx, edi
push esi
call fcn.00437d10
mov ecx, edi
call fcn.00437e90
jmp case.0x439c30.259
mov eax, dword [edx + 0x14]
test byte [eax], 1
je case.0x439c30.259
mov edx, dword [edx + 0xc]
test edx, edx
jne 0x4394d2
mov eax, dword [eax + 4]
cmp eax, dword [edi + 0x94]
jl case.0x439e11.8
xor eax, eax
cmp ecx, dword [edi + 0x14]
lea ecx, [ebp - 0x288]
sete al
add eax, edx
push ecx
push eax
mov ecx, edi
mov dword [ebp - 0x2a8], eax
call fcn.004351b0
lea eax, [ebp - 0x248]
push eax
push dword [edi + 8]
call dword [sym.imp.USER32.dll_GetClientRect]
mov ecx, dword [ebp - 0x2b4]
mov eax, dword [ecx + 0x14]
mov ecx, dword [ebp - 0x280]
mov eax, dword [eax + 4]
sub eax, ecx
add eax, dword [ebp - 0x288]
mov dword [ebp - 0x29c], eax
je case.default.0x439e11
mov eax, dword [ebp - 0x27c]
mov esi, dword [ebp - 0x2a8]
mov dword [ebp - 0x224], eax
mov eax, dword [ebp - 0x240]
mov dword [ebp - 0x220], eax
mov eax, dword [ebp - 0x23c]
mov dword [ebp - 0x228], ecx
mov dword [ebp - 0x21c], eax
test esi, esi
jne 0x439564
lea eax, [ecx - 1]
mov dword [ebp - 0x228], eax
push 0xfffffffffffffff0
push dword [edi + 0x1c]
call dword [sym.imp.USER32.dll_GetWindowLongW]
shr eax, 0x1c
test al, 1
je 0x439584
push 2
call dword [ebp - 0x298]
sub dword [ebp - 0x220], eax
push 2
push 0
push 0
push 0
lea eax, [ebp - 0x228]
push eax
push 0
push dword [ebp - 0x29c]
push dword [edi + 8]
call dword [sym.imp.USER32.dll_ScrollWindowEx]
test esi, esi
jne 0x4395b1
cmp byte [edi + 0x9c], 0
jne 0x4395f7
mov eax, dword [ebp - 0x288]
mov dword [ebp - 0x238], eax
mov eax, dword [ebp - 0x27c]
mov dword [ebp - 0x234], eax
mov eax, dword [ebp - 0x280]
mov dword [ebp - 0x230], eax
mov eax, dword [ebp - 0x23c]
mov dword [ebp - 0x22c], eax
lea eax, [ebp - 0x238]
push 0
push eax
push dword [edi + 8]
call dword [sym.imp.USER32.dll_InvalidateRect]
test esi, esi
jne 0x439635
mov eax, dword [ebp - 0x280]
mov ecx, edi
add eax, dword [ebp - 0x29c]
push eax
call fcn.00437d10
mov ecx, edi
call fcn.00437e90
mov ecx, edi
call fcn.00438090
push dword [edi + 0x14]
mov esi, dword [sym.imp.USER32.dll_UpdateWindow]
call esi
push dword [edi + 0x20]
call esi
push dword [edi + 0x24]
call esi
xor eax, eax
jmp 0x439926
mov ecx, edi
call fcn.00437e90
push dword [edi + 0x24]
call dword [sym.imp.USER32.dll_UpdateWindow]
xor eax, eax
jmp 0x439926
cmp eax, 0xfffffec9
je 0x439672
cmp eax, 0xfffffffb
jne case.0x439c30.259
push 0
push 0
push 0
push 0
push eax
push ecx
mov ecx, edi
call fcn.00433a90
jmp case.0x439c30.259
push 0
push 0
push dword [edi + 8]
call dword [sym.imp.USER32.dll_InvalidateRect]
xor eax, eax
jmp 0x439926
mov ecx, edi
call fcn.00433070
jmp case.0x439c30.259
mov eax, dword [edi + 0x38]
test eax, eax
je 0x4396a6
cmp byte [edi + 0x3c], 0
jne 0x4396a6
push eax
call dword [sym.imp.COMCTL32.dll_ImageList_Destroy]
movzx eax, word [0x5408f8]
push 0
push eax
push dword [ebp - 0x2a0]
call dword [sym.imp.USER32.dll_SetPropW]
mov dword [edi], vtable.CTreeList.0
mov esi, dword [edi + 0xc8]
test esi, esi
je 0x439716
or eax, 0xffffffff
lock xadd dword [esi + 8], eax
dec eax
jne 0x43970c
mov eax, dword [esi]
test eax, eax
je 0x4396ea
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov dword [esi], 0
mov eax, dword [esi + 4]
test eax, eax
je 0x439701
push eax
call fcn.004c3453
add esp, 4
mov dword [esi + 4], 0
push 0xc
push esi
call fcn.004c3279
add esp, 8
mov dword [edi + 0xc8], 0
lea ecx, [edi + 0x40]
call fcn.00432db0
mov eax, dword [edi + 4]
mov dword [ebp - 4], 6
mov dword [edi], vtable.CThemedWindow.0
test eax, eax
je 0x439739
push eax
call dword [0x5408e8]
push 0xd8
push edi
call fcn.004c3279
add esp, 8
push dword [ebp - 0x2b4]
push dword [ebp - 0x2b0]
push dword [ebp + 0xc]
push dword [ebp - 0x2a0]
call dword [sym.imp.USER32.dll_DefWindowProcW]
jmp 0x439926
cmp byte [edi + 0xbc], 0
mov ecx, 0xffffff65
mov eax, 0x7d7
cmovne eax, ecx
mov dword [ebp - 0x244], eax
mov eax, dword [ebp - 0x2a0]
push 0xfffffffffffffff4
push eax
mov dword [ebp - 0x24c], eax
call dword [sym.imp.USER32.dll_GetWindowLongW]
mov ecx, dword [ebp - 0x2b0]
mov word [ebp - 0x240], cx
lea ecx, [ebp - 0x24c]
push ecx
push eax
push 0x4e
push dword [ebp - 0x2a0]
mov dword [ebp - 0x248], eax
mov dword [ebp - 0x23e], 0
call dword [sym.imp.USER32.dll_GetParent]
push eax
call esi
mov eax, dword [ebp - 0x2b0]
add eax, 0xffffffdf
cmp eax, 0x4a
ja case.0x439c30.259
movzx eax, byte [eax + 0x43a608]
jmp dword [eax*4 + 0x43a5f4]
push 0xa2
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
je case.0x439c30.259
xor esi, esi
push esi
push esi
push 0x1200
push dword [edi + 0x14]
call dword [sym.imp.USER32.dll_SendMessageW]
inc eax
test eax, eax
jle 0x4398b8
nop dword [eax + eax]
test esi, esi
jne 0x439855
cmp byte [edi + 0x9c], 0
je 0x439855
mov eax, dword [edi + 0x98]
mov dword [ebp - 0x264], eax
lea eax, [ebp - 0x268]
push eax
push esi
push 0x120c
push dword [edi + 0xc]
mov dword [ebp - 0x268], 1
jmp 0x439896
push esi
mov ecx, edi
call fcn.00434e20
mov dword [ebp - 0x268], 1
mov dword [ebp - 0x264], eax
test esi, esi
jne 0x439883
lea eax, [ebp - 0x268]
push eax
push esi
push 0x120c
push dword [edi + 0xc]
jmp 0x439896
lea eax, [ebp - 0x268]
push eax
lea eax, [esi - 1]
push eax
push 0x120c
push dword [edi + 0x14]
call dword [sym.imp.USER32.dll_SendMessageW]
push 0
push 0
push 0x1200
push dword [edi + 0x14]
inc esi
call dword [sym.imp.USER32.dll_SendMessageW]
inc eax
cmp esi, eax
jl 0x439820
mov ecx, edi
call fcn.00437e90
jmp case.0x439c30.259
mov ecx, dword [edi + 0x7c]
test ecx, ecx
je case.0x439c30.259
cmp dword [ebp - 0x2b0], 0x28
jne 0x4398d8
call fcn.00437690
jmp 0x4398dd
call fcn.004379e0
mov dword [ebp - 0x29c], eax
test eax, eax
je case.0x439c30.259
push eax
mov ecx, edi
call fcn.00434da0
push dword [ebp - 0x29c]
mov esi, eax
mov ecx, edi
call fcn.00438140
push esi
mov ecx, edi
call fcn.00434be0
mov ecx, dword [ebp - 0x2b4]
mov eax, dword [edi]
push ecx
mov ecx, dword [ebp - 0x2b0]
push ecx
push dword [ebp + 0xc]
mov eax, dword [eax + 4]
mov ecx, edi
push dword [ebp - 0x2a0]
call eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004c3287
mov esp, ebp
pop ebp
ret 0x10
mov esi, dword [edi + 0x7c]
mov dword [ebp - 0x298], esi
test esi, esi
je case.0x439c30.259
lea eax, [ebp - 0x254]
mov dword [ebp - 0x254], 0x1c
push eax
push 2
push dword [edi + 0x1c]
xorps xmm0, xmm0
mov dword [ebp - 0x23c], 0
movups xmmword [ebp - 0x24c], xmm0
mov dword [ebp - 0x250], 2
call dword [sym.imp.USER32.dll_GetScrollInfo]
mov eax, dword [ebp - 0x244]
xor edx, edx
mov dword [ebp - 0x29c], edx
test eax, eax
je 0x439a08
nop dword [eax]
cmp dword [ebp - 0x2b0], 0x22
jne 0x439a2d
mov ecx, dword [esi + 0x14]
test ecx, ecx
je 0x4399d1
mov eax, dword [esi + 0x20]
shr eax, 4
test al, 1
je 0x4399d1
mov eax, dword [ebp - 0x244]
mov esi, ecx
mov dword [ebp - 0x298], esi
jmp 0x439a7a
mov eax, dword [esi + 0x10]
test eax, eax
je 0x4399eb
mov esi, eax
mov eax, dword [ebp - 0x244]
mov dword [ebp - 0x298], esi
jmp 0x439a7a
mov eax, dword [esi + 8]
test eax, eax
je 0x439a00
mov ecx, dword [eax + 0x10]
test ecx, ecx
jne 0x439a1d
mov eax, dword [eax + 8]
test eax, eax
jne 0x4399f2
test esi, esi
je case.0x439c30.259
push esi
mov ecx, edi
call fcn.00434da0
push dword [ebp - 0x298]
mov esi, eax
jmp 0x4398f7
mov eax, dword [ebp - 0x244]
mov esi, ecx
mov dword [ebp - 0x298], ecx
jmp 0x439a7a
mov ecx, dword [esi + 0xc]
test ecx, ecx
je 0x439a61
mov edx, dword [ecx + 0x18]
test edx, edx
je 0x439a59
nop dword [eax + eax]
mov eax, dword [ecx + 0x20]
shr eax, 4
test al, 1
je 0x439a53
mov ecx, edx
mov edx, dword [ecx + 0x18]
test edx, edx
jne 0x439a40
mov eax, dword [ebp - 0x244]
mov edx, dword [ebp - 0x29c]
jmp 0x439a6e
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x439a00
cmp dword [ecx + 4], 0
je 0x439a00
test ecx, ecx
je 0x439a00
mov esi, ecx
mov dword [ebp - 0x298], esi
inc edx
mov dword [ebp - 0x29c], edx
cmp edx, eax
jb 0x4399a0
push esi
mov ecx, edi
call fcn.00434da0
push dword [ebp - 0x298]
mov esi, eax
jmp 0x4398f7
mov esi, dword [edi + 0x7c]
test esi, esi
je case.0x439c30.259
cmp dword [ebp - 0x2b0], 0x27
mov ecx, dword [esi + 0x20]
jne 0x439b45
mov eax, ecx
shr eax, 6
test al, 1
je case.0x439c30.259
shr ecx, 4
test cl, 1
mov ecx, edi
push 0
jne 0x439b2e
push 0
push esi
push 0
push 0x7d1
push dword [edi + 8]
call fcn.00433a90
test eax, eax
jne case.0x439c30.259
or dword [esi + 0x20], 0x30
mov ecx, esi
call fcn.00435620
mov dword [ebp - 0x2a8], eax
test eax, eax
je case.0x439c30.259
push esi
mov ecx, edi
call fcn.00434da0
mov esi, eax
mov ecx, edi
push esi
push esi
call fcn.00437b00
push dword [ebp - 0x2a8]
lea eax, [esi + 1]
mov ecx, edi
push eax
call fcn.00436550
jmp case.0x439c30.259
push 0x28
push 0x100
push dword [ebp - 0x2a0]
call fcn.004389a0
jmp 0x439926
and ecx, 0x50
cmp cl, 0x50
jne 0x439b5c
push 0
push esi
mov ecx, edi
call fcn.00434cb0
jmp case.0x439c30.259
mov ecx, dword [esi + 8]
mov dword [ebp - 0x2a8], ecx
test ecx, ecx
je case.0x439c30.259
lea eax, [edi + 0x40]
cmp ecx, eax
je case.0x439c30.259
push esi
mov ecx, edi
call fcn.00434da0
push dword [ebp - 0x2a8]
mov esi, eax
jmp 0x4398f7
cmp eax, 0x201
jbe 0x439c1b
cmp eax, 0x2000
ja 0x43a479
je 0x43a44c
sub eax, 0x203
je 0x43a36b
sub eax, 1
je 0x43a36b
sub eax, 6
jne 0x43a3f4
mov eax, ecx
shr eax, 0x10
movsx esi, ax
add esi, dword [edi + 0x8c]
mov eax, esi
mov dword [edi + 0x8c], esi
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x28
jl case.0x439c30.259
mov eax, 0x66666667
imul esi
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
lea eax, [ecx + ecx*4]
neg ecx
shl eax, 3
sub esi, eax
push ecx
mov ecx, edi
mov dword [edi + 0x8c], esi
call fcn.00438830
jmp case.0x439c30.259
mov eax, dword [ebp + 0xc]
add eax, 0xfffffefe
cmp eax, 0x36
ja case.0x439c30.259
movzx eax, byte [eax + 0x43a66c]
jmp dword [eax*4 + 0x43a654]
cmp edx, dword [edi + 0x28]
jne case.0x439c30.259
call fcn.00448e60
test al, al
je case.0x439c30.259
mov eax, dword [0x54090c]
test eax, eax
jne 0x439926
call fcn.00447d00
mov eax, dword [eax + 0x6c]
push eax
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
mov dword [0x54090c], eax
jmp 0x439926
cmp ecx, 0x64
jne case.0x439c30.259
lea eax, [ebp - 0x230]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
push 1
lea eax, [ebp - 0x230]
push eax
push dword [ebp - 0x2a0]
push 0
call dword [sym.imp.USER32.dll_MapWindowPoints]
lea eax, [ebp - 0x230]
mov ecx, edi
push eax
push dword [edi + 0x2c]
call fcn.004387b0
jmp case.0x439c30.259
lea eax, [ebp - 0x254]
mov dword [ebp - 0x254], 0x1c
push eax
push 2
push dword [edi + 0x1c]
xorps xmm0, xmm0
mov dword [ebp - 0x23c], 0
movups xmmword [ebp - 0x24c], xmm0
mov dword [ebp - 0x250], 7
call dword [sym.imp.USER32.dll_GetScrollInfo]
mov eax, dword [ebp - 0x2b0]
movzx ecx, ax
cmp ecx, 8
ja case.default.0x439e11
jmp dword [ecx*4 + 0x43a6a4]
shr eax, 0x10
mov ecx, edi
push eax
mov dword [ebp - 0x240], eax
call fcn.00438940
jmp case.0x439c30.259
mov eax, dword [ebp - 0x248]
mov ecx, edi
push eax
mov dword [ebp - 0x240], eax
call fcn.00438940
jmp case.0x439c30.259
xor eax, eax
mov ecx, edi
push eax
mov dword [ebp - 0x240], eax
call fcn.00438940
jmp case.0x439c30.259
mov eax, dword [ebp - 0x240]
mov ecx, edi
inc eax
push eax
mov dword [ebp - 0x240], eax
call fcn.00438940
jmp case.0x439c30.259
mov eax, dword [ebp - 0x240]
mov ecx, edi
dec eax
push eax
mov dword [ebp - 0x240], eax
call fcn.00438940
jmp case.0x439c30.259
mov eax, dword [ebp - 0x240]
mov ecx, edi
add eax, dword [ebp - 0x244]
push eax
mov dword [ebp - 0x240], eax
call fcn.00438940
jmp case.0x439c30.259
mov eax, dword [ebp - 0x240]
mov ecx, edi
sub eax, dword [ebp - 0x244]
push eax
mov dword [ebp - 0x240], eax
call fcn.00438940
jmp case.0x439c30.259
test edx, edx
je case.0x439c30.259
lea eax, [ebp - 0x254]
mov dword [ebp - 0x254], 0x1c
push eax
push 2
xorps xmm0, xmm0
mov dword [ebp - 0x23c], 0
push edx
movups xmmword [ebp - 0x24c], xmm0
mov dword [ebp - 0x250], 7
call dword [sym.imp.USER32.dll_GetScrollInfo]
mov eax, dword [ebp - 0x2b0]
movzx ecx, ax
cmp ecx, 8
ja case.default.0x439e11
jmp dword [ecx*4 + 0x43a6c8]
shr eax, 0x10
mov ecx, edi
push eax
push dword [ebp - 0x2b4]
mov dword [ebp - 0x240], eax
call fcn.00435f50
jmp case.0x439c30.259
mov eax, dword [ebp - 0x248]
mov ecx, edi
push eax
push dword [ebp - 0x2b4]
mov dword [ebp - 0x240], eax
call fcn.00435f50
jmp case.0x439c30.259
xor eax, eax
mov ecx, edi
push eax
push dword [ebp - 0x2b4]
mov dword [ebp - 0x240], eax
call fcn.00435f50
jmp case.0x439c30.259
mov eax, dword [ebp - 0x240]
mov ecx, edi
inc eax
push eax
push dword [ebp - 0x2b4]
mov dword [ebp - 0x240], eax
call fcn.00435f50
jmp case.0x439c30.259
mov eax, dword [ebp - 0x240]
mov ecx, edi
dec eax
push eax
push dword [ebp - 0x2b4]
mov dword [ebp - 0x240], eax
call fcn.00435f50
jmp case.0x439c30.259
mov eax, dword [ebp - 0x240]
mov ecx, edi
add eax, dword [ebp - 0x244]
push eax
push dword [ebp - 0x2b4]
mov dword [ebp - 0x240], eax
call fcn.00435f50
jmp case.0x439c30.259
mov eax, dword [ebp - 0x240]
mov ecx, edi
sub eax, dword [ebp - 0x244]
push eax
push dword [ebp - 0x2b4]
mov dword [ebp - 0x240], eax
call fcn.00435f50
jmp case.0x439c30.259
cmp dword [edi + 0x5c], 0
je case.0x439c30.259
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, eax
mov dword [ebp - 0x22c], eax
sub ecx, dword [edi + 0xc4]
cmp ecx, 0x2ee
jbe 0x439fed
mov esi, dword [edi + 0xc8]
test esi, esi
je 0x439f49
cmp dword [esi + 4], 0
jne 0x439f3c
push dword [esi]
call fcn.004c2fd0
mov dword [esi + 4], eax
cmp dword [esi + 4], 0x503662
je 0x439fed
mov esi, dword [edi + 0xc8]
test esi, esi
je 0x439f9d
or eax, 0xffffffff
lock xadd dword [esi + 8], eax
dec eax
jne 0x439f93
mov eax, dword [esi]
test eax, eax
je 0x439f71
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov dword [esi], 0
mov eax, dword [esi + 4]
test eax, eax
je 0x439f88
push eax
call fcn.004c3453
add esp, 4
mov dword [esi + 4], 0
push 0xc
push esi
call fcn.004c3279
add esp, 8
mov dword [edi + 0xc8], 0
push 0xc
call fcn.004c3423
mov esi, eax
add esp, 4
mov dword [ebp - 0x21c], esi
mov dword [ebp - 4], 1
test esi, esi
je 0x439fd6
push 0x503662
mov dword [esi + 4], 0
mov dword [esi + 8], 1
call fcn.004c30f0
mov dword [esi], eax
jmp 0x439fd8
xor esi, esi
mov dword [ebp - 4], 0xffffffff
mov dword [edi + 0xc8], esi
test esi, esi
je 0x43a528
cmp dword [edi + 0x7c], 0
je 0x43a19a
push 0xc
call fcn.004c3423
mov esi, eax
mov dword [ebp - 0x2a4], eax
add esp, 4
mov dword [ebp - 0x21c], esi
mov dword [ebp - 4], 2
test esi, esi
je 0x43a036
push 0x503662
mov dword [esi + 4], 0
mov dword [esi + 8], 1
call fcn.004c30f0
mov dword [esi], eax
jmp 0x43a03e
xor esi, esi
mov dword [ebp - 0x2a4], esi
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x298], esi
test esi, esi
je 0x43a528
mov eax, dword [edi + 0xc8]
mov dword [ebp - 0x2a8], eax
cmp eax, esi
jne 0x43a076
lea ecx, [ebp - 0x298]
call fcn.00404d60
mov esi, dword [edi + 0x7c]
jmp 0x43a187
test eax, eax
jne 0x43a0a5
mov eax, dword [esi]
test eax, eax
je 0x43a063
push eax
mov eax, dword [sym.imp.OLEAUT32.dll_VariantInit]
call eax
test eax, eax
je 0x43a063
lea ecx, [ebp - 0x298]
call fcn.00404d60
mov esi, dword [edi + 0x7c]
mov dword [ebp - 0x298], esi
jmp 0x43a196
push dword [eax]
mov eax, dword [sym.imp.OLEAUT32.dll_VariantInit]
call eax
push dword [esi]
mov dword [ebp - 0x29c], eax
call dword [sym.imp.OLEAUT32.dll_VariantInit]
mov edx, dword [ebp - 0x2a8]
mov ecx, eax
mov eax, dword [ebp - 0x29c]
mov esi, eax
cmp eax, ecx
mov dword [ebp - 0x2bc], ecx
mov edx, dword [edx]
cmova esi, ecx
test esi, esi
je 0x43a12d
mov eax, dword [ebp - 0x2a4]
mov eax, dword [eax]
sub eax, edx
mov dword [ebp - 0x2a8], eax
nop dword [eax]
movzx ecx, word [edx + eax]
lea edx, [edx + 2]
mov eax, ecx
dec esi
mov dword [ebp - 0x2a4], eax
movzx eax, word [edx - 2]
mov edi, eax
mov dword [ebp - 0x21c], edi
mov edi, dword [ebp - 0x2ac]
cmp ax, cx
jne 0x43a13d
mov eax, dword [ebp - 0x2a8]
test esi, esi
jne 0x43a0f0
mov ecx, dword [ebp - 0x2bc]
mov eax, dword [ebp - 0x29c]
cmp eax, ecx
jae 0x43a159
mov dword [ebp - 0x29c], 0xffffffff
jmp 0x43a16a
mov eax, dword [ebp - 0x2a4]
mov ecx, dword [ebp - 0x21c]
movzx eax, ax
movzx ecx, cx
sub ecx, eax
mov dword [ebp - 0x29c], ecx
jmp 0x43a16a
xor eax, eax
cmp dword [ebp - 0x29c], ecx
setne al
mov dword [ebp - 0x29c], eax
lea ecx, [ebp - 0x298]
call fcn.00404d60
cmp dword [ebp - 0x29c], 0
mov esi, dword [edi + 0x7c]
mov dword [ebp - 0x298], esi
jne 0x43a196
mov ecx, esi
call fcn.00437690
mov esi, eax
mov dword [ebp - 0x298], eax
test esi, esi
jne 0x43a1a3
mov esi, dword [edi + 0x54]
mov dword [ebp - 0x298], esi
mov eax, dword [ebp - 0x22c]
mov dword [edi + 0xc4], eax
mov eax, dword [ebp - 0x2b0]
mov dword [ebp - 0x2c0], 0
push 0xc
mov word [ebp - 0x2c0], ax
call fcn.004c3423
add esp, 4
mov dword [ebp - 0x22c], eax
mov dword [ebp - 4], 3
test eax, eax
je 0x43a20e
mov dword [eax + 4], 0
mov dword [eax + 8], 1
lea eax, [ebp - 0x2c0]
push eax
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov ecx, dword [ebp - 0x22c]
mov dword [ecx], eax
test eax, eax
je 0x43a51e
jmp 0x43a210
xor ecx, ecx
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x29c], ecx
test ecx, ecx
je 0x43a528
push 0xc
mov dword [ebp - 4], 4
call fcn.004c3423
mov ecx, eax
add esp, 4
mov dword [ebp - 0x22c], ecx
mov byte [ebp - 4], 5
test ecx, ecx
je 0x43a25b
lea eax, [ebp - 0x29c]
push eax
lea eax, [edi + 0xc8]
push eax
call fcn.004048a0
jmp 0x43a25d
xor eax, eax
mov dword [ebp - 0x2a4], eax
mov byte [ebp - 4], 4
test eax, eax
je 0x43a532
lea ecx, [edi + 0xc8]
call fcn.00404d60
mov eax, dword [ebp - 0x2a4]
lea ecx, [ebp - 0x29c]
mov dword [edi + 0xc8], eax
mov dword [ebp - 4], 0xffffffff
call fcn.00404d60
nop dword [eax + eax]
mov dword [ebp - 0x22c], 0x104
lea edx, [ebp - 0x22c]
mov ecx, dword [esi + 4]
push edx
lea edx, [ebp - 0x218]
push edx
mov eax, dword [ecx]
push 0
push esi
mov eax, dword [eax + 8]
call eax
mov ecx, dword [edi + 0xc8]
mov dword [ebp - 0x21c], eax
test ecx, ecx
je 0x43a2f4
mov edx, dword [ecx]
test edx, edx
je 0x43a2ea
push edx
call dword [sym.imp.OLEAUT32.dll_VariantInit]
mov ecx, dword [edi + 0xc8]
jmp 0x43a2ec
xor eax, eax
test ecx, ecx
je 0x43a2f6
mov ecx, dword [ecx]
jmp 0x43a2f8
xor eax, eax
xor ecx, ecx
push eax
push ecx
push dword [ebp - 0x21c]
call fcn.004c94d0
add esp, 0xc
test eax, eax
je 0x43a355
mov ecx, dword [esi + 0x14]
test ecx, ecx
je 0x43a321
mov eax, dword [esi + 0x20]
shr eax, 4
test al, 1
je 0x43a321
mov esi, ecx
jmp 0x43a344
mov eax, dword [esi + 0x10]
test eax, eax
je 0x43a32c
mov esi, eax
jmp 0x43a344
mov eax, dword [esi + 8]
test eax, eax
je 0x43a341
mov esi, dword [eax + 0x10]
test esi, esi
jne 0x43a344
mov eax, dword [eax + 8]
test eax, eax
jne 0x43a333
mov esi, dword [edi + 0x54]
cmp esi, dword [ebp - 0x298]
jne 0x43a2a0
jmp case.0x439c30.259
push esi
mov ecx, edi
call fcn.00438140
push esi
mov ecx, edi
call fcn.00434da0
push eax
jmp 0x4398ff
mov ecx, dword [ebp - 0x298]
movzx eax, cx
movsx ecx, ax
mov eax, edx
lea edx, [ebp - 0x2a4]
shr eax, 0x10
push edx
lea edx, [ebp - 0x29c]
cwde
push edx
lea edx, [ebp - 0x22c]
mov dword [ebp - 0x22c], 0
push edx
push eax
push ecx
mov ecx, edi
mov dword [ebp - 0x29c], 0
mov dword [ebp - 0x2a4], 0
call fcn.00435a20
test al, 0xe0
je 0x43a3f4
mov esi, dword [ebp - 0x2a4]
mov ecx, edi
push esi
call fcn.00438140
push 0
xor eax, eax
mov ecx, edi
cmp dword [ebp + 0xc], 0x203
push 0
push esi
push dword [ebp - 0x29c]
sete al
lea eax, [eax*2 - 5]
push eax
push dword [edi + 8]
call fcn.00433a90
cmp dword [ebp + 0xc], 0x31a
jne case.0x439c30.259
mov eax, dword [edi + 4]
test eax, eax
je 0x43a40f
push eax
call dword [0x5408e8]
mov dword [edi + 4], 0
mov eax, dword [0x5408dc]
test eax, eax
je case.0x439c30.259
call eax
test eax, eax
je case.0x439c30.259
mov eax, dword [edi]
mov ecx, edi
mov esi, dword [0x5408e0]
mov eax, dword [eax]
call eax
push eax
push dword [ebp - 0x2a0]
call esi
mov dword [edi + 4], eax
jmp case.0x439c30.259
mov eax, dword [ecx + 0x20]
test edx, edx
je 0x43a46c
or eax, 0x40
cmp dword [ecx + 0x1c], 0
mov dword [ecx + 0x20], eax
jne case.default.0x439e11
and eax, 0xffffffef
mov dword [ecx + 0x20], eax
xor eax, eax
jmp 0x439926
and eax, 0xffffffbf
mov dword [ecx + 0x20], eax
xor eax, eax
jmp 0x439926
add eax, 0xffffdfff
cmp eax, 4
ja case.0x439c30.259
jmp dword [eax*4 + 0x43a6ec]
test edx, edx
setne al
movzx eax, al
push eax
push ecx
mov ecx, edi
call fcn.00434cb0
movzx eax, al
jmp 0x439926
mov eax, dword [ecx + 0x1c]
jmp 0x439926
push ecx
mov ecx, edi
call fcn.00437ae0
xor eax, eax
jmp 0x439926
mov eax, dword [edx + 8]
mov esi, dword [edx + 4]
mov dword [ebp - 0x21c], eax
mov eax, dword [edx]
push 8
mov dword [ebp - 0x2a8], eax
call fcn.004c3423
add esp, 4
mov dword [ebp - 0x22c], eax
test eax, eax
je 0x43a4f1
mov dword [eax], vtable.CListViewData.0
mov dword [eax + 4], esi
jmp 0x43a4f3
xor eax, eax
push dword [ebp - 0x21c]
mov ecx, edi
push 0x4367b0
push eax
push dword [ebp - 0x2a8]
call fcn.00436430
jmp 0x439926
push ecx
mov ecx, edi
call fcn.00434da0
jmp 0x439926
push 0x8007000e
call fcn.004c2e60
push 0x8007000e
call fcn.004c2e60
push 0x8007000e
call fcn.004c2e60
xchg byte [esi - 0x6f25ffbd], dl
inc ebx
add byte [edx - 0x70], al
inc ebx
add al, cl
mov es, word [ebx]
pop edx
nop
inc ebx
add ch, bh
xchg ecx, eax
inc ebx
add byte [esi], al
pop dword [ebx]
pop ss
pop dword [ebx]
cmp edx, dword [ecx - 0x696dffbd]
inc ebx
add cl, al
nop
inc ebx
add byte [esi], al
cdq
inc ebx
add byte [eax], al
or ecx, dword [ebx]
add dword [ebx], ecx
add al, byte [edx]
or ecx, dword [ebx]
add ecx, dword [ebx]
or ecx, dword [ebx]
add al, 11
or ecx, dword [ebx]
or eax, dword [185273099]
or ecx, dword [ebx]
or ecx, dword [ebx]
or ecx, dword [ebx]
or eax, dword [esi]
or ecx, dword [ebx]
or ecx, dword [ebx]
or ecx, dword [ebx]
or ecx, dword [ebx]
or ecx, dword [ebx]
or ecx, dword [ebx]
or ecx, dword [ebx]
or eax, dword [edi]
or ecx, dword [ebx]
or ecx, dword [ebx]
or ecx, dword [ebx]
or ecx, dword [ebx]
or ecx, dword [ebx]
or ecx, dword [ebx]
or ecx, dword [ebx]
or ecx, dword [ebx]
or ecx, dword [ebx]
or ecx, dword [ebx]
or ecx, dword [ebx]
or ecx, dword [ebx]
or ecx, dword [ebx]
or ecx, dword [ebx]
or ecx, dword [eax]
or ecx, dword [ebx]
or ecx, dword [ebx]
or ecx, dword [ebx]
or ecx, dword [ebx]
or ecx, dword [ebx]
or ecx, dword [ebx]
or ecx, dword [ebx]
or ecx, dword [ebx]
or ecx, dword [ebx]
or ecx, dword [ebx]
or ecx, dword [ebx]
or ecx, dword [ebx]
or ecx, dword [ebx]
or ecx, dword [ebx]
or ecx, dword [ebx]
or ecx, dword [ebx]
or ecx, dword [ebx]
or ecx, dword [ebx]
or ecx, dword [ebx]
or ecx, dword [ebx]
or ecx, dword [ebx]
or ecx, dword [ebx]
or ecx, dword [ebx]
or ecx, dword [ebx]
or ecx, dword [ebx]
or ecx, dword [ecx]
or ecx, dword [ebx]
or ecx, dword [ebx]
or ah, byte [esi - 112]
inc ebx
cdq
inc ebx
add byte [esi - 0x3effbc66], bl
cwde
inc ebx
add ah, ch
xchg edi, eax
inc ebx
add byte [esi], al
cdq
inc ebx
add byte [eax], al
add byte [esp + eax], al
add dword [edx], eax
add dword [edx], eax
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add edx, dword [eax + case.0x439c30.258]
jae 4433398
inc ebx
add byte [edi - 0x49ffbc63], bh
pushfd
inc ebx
add byte [edi], dh
pushfd
inc ebx
add byte [esi], al
cdq
inc ebx
add byte [eax], al
add eax, 0x5050505
add eax, 84215045
add eax, 84215045
add eax, 84083201
add eax, 84215045
add eax, 84215045
add eax, 84215045
add eax, 84215045
add eax, 84215045
add eax, 84215045
add eax, -1878784763
popfd
inc ebx
add byte [ebp - 0x63], cl
inc ebx
add byte [eax - 0x7effbc63], ah
popfd
inc ebx
add byte [ecx], cl
popfd
inc ebx
add byte [ecx], cl
popfd
inc ebx
add byte [eax], bh
popfd
inc ebx
add byte [edi], bl
popfd
inc ebx
add ch, bh
xchg ecx, eax
inc ebx
add byte [esi + 0x6e00439e], cl
sahf
inc ebx
add bl, dl
sahf
inc ebx
add byte [esi + 0x1800439e], ch
sahf
inc ebx
add byte [eax], bl
sahf
inc ebx
add byte [ebx - 0x62], dl
inc ebx
add byte [esi + ebx*4], dh
inc ebx
add ch, bh
xchg ecx, eax
inc ebx
add byte [esi - 0x58ffbc5c], cl
movsb byte es:[edi], byte [esi]
inc ebx
add byte [edi - 0x41ffbc5c], ch
movsb byte es:[edi], byte [esi]
inc ebx
add byte [ecx], dl
movsd dword es:[edi], dword [esi]
inc ebx
add byte [ebp - 0x75], dl
push ebp
mov ebp, esp
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, dword [ebp + 0xc]
cmp esi, edi
je 0x43a751
add esi, 8
mov edx, dword [esi + 8]
or eax, 0xffffffff
sub edx, 0x10
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x43a72d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [esi]
or eax, 0xffffffff
sub edx, 0x10
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x43a747
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add esi, 0x18
lea eax, [esi - 8]
cmp eax, edi
jne 0x43a712
pop edi
pop esi
pop ebp
ret