Function at 0x14003f870
Capabilities:
Log keystrokes via polling

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x258]
sub rsp, 0x358
mov rax, qword [0x1401737a8]
xor rax, rsp
mov qword [rbp + 0x240], rax
mov r12, r9
mov r13d, r8d
mov rsi, rdx
mov qword [rbp - 0x38], rdx
mov rdi, rcx
xor r15d, r15d
lea rbx, [0x140000000]
mov r14, qword [rbp + 0x2c0]
mov qword [rsp + 0x58], r14
mov ecx, 0xffffff65
lea eax, [r13 - 0x1000]
cmp eax, 0xff
jbe 0x1400411a1
cmp r13d, 0x200
jb 0x14003f943
cmp r13d, 0x20e
ja 0x14003f943
movsx eax, r14w
mov dword [rsp + 0x48], eax
mov rax, r14
shr rax, 0x10
cwde
mov dword [rsp + 0x4c], eax
mov qword [rbp - 0x78], rsi
mov dword [rbp - 0x70], r13d
mov qword [rbp - 0x68], r12
mov qword [rbp - 0x60], r14
xorps xmm0, xmm0
movups xmmword [rbp - 0x58], xmm0
lea r8, [rsp + 0x48]
mov rdx, qword [rdi + 0x58]
mov rcx, rdi
call fcn.14003f5e0
lea r9, [rbp - 0x78]
xor r8d, r8d
mov edx, 0x407
mov rcx, qword [rdi + 0x58]
call qword [sym.imp.USER32.dll_SendMessageW]
mov ecx, 0xffffff65
cmp r13d, 0x201
je 0x140040f24
cmp r13d, 0x200
je 0x140040df1
cmp r13d, 0x202
je 0x140040db2
cmp r13d, 0x100
ja 0x140040591
jne 0x14003fd22
mov eax, 0x7d7
cmp byte [rdi + 0x130], r15b
cmovne eax, ecx
mov dword [rbp - 0x10], eax
mov qword [rbp - 0x20], rsi
mov edx, 0xfffffff4
mov rcx, rsi
call qword [sym.imp.USER32.dll_GetWindowLongPtrW]
mov qword [rbp - 0x18], rax
mov word [rbp - 8], r12w
mov dword [rbp - 6], r15d
mov rcx, rsi
call qword [sym.imp.USER32.dll_GetParent]
mov rcx, rax
lea r9, [rbp - 0x20]
mov r8, qword [rbp - 0x18]
mov edx, 0x4e
call qword [sym.imp.USER32.dll_SendMessageW]
lea rax, [r12 - 0x21]
cmp rax, 0x4a
ja case.0x14003fd43.13
movzx eax, byte [rbx + rax + 0x41210]
mov ecx, dword [rbx + rax*4 + 0x411fc]
add rcx, rbx
jmp rcx
mov rsi, qword [rdi + 0xe0]
test rsi, rsi
je case.0x14003fd43.13
mov ecx, dword [rsi + 0x3c]
cmp r12, 0x27
jne 0x14003faca
mov eax, ecx
shr eax, 6
test al, 1
je case.0x14003fd43.13
shr ecx, 4
test cl, 1
je 0x14003fa3f
mov r14, r15
mov qword [rsp + 0x58], r15
mov r12d, 0x28
mov r13d, 0x100
mov rsi, qword [rbp - 0x38]
jmp 0x14003f8c3
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], rsi
xor r9d, r9d
mov r8d, 0x7d1
mov rdx, qword [rdi + 0x10]
mov rcx, rdi
call fcn.140039ce0
test rax, rax
jne case.0x14003fd43.13
or dword [rsi + 0x3c], 0x30
mov r15d, dword [rsi + 0x38]
mov rbx, qword [rsi + 0x28]
test rbx, rbx
je 0x14003fa94
nop dword [rax]
mov rcx, rbx
call fcn.14003bb20
add r15d, eax
mov rbx, qword [rbx + 0x20]
test rbx, rbx
jne 0x14003fa80
test r15d, r15d
je case.0x14003fd43.13
mov rdx, rsi
mov rcx, rdi
call fcn.14003b100
mov ebx, eax
mov r8d, eax
mov edx, eax
mov rcx, rdi
call fcn.14003e5c0
lea edx, [rbx + 1]
mov r8d, r15d
mov rcx, rdi
call fcn.14003cdc0
jmp case.0x14003fd43.13
and ecx, 0x50
cmp cl, 0x50
jne 0x14003fae5
xor r8d, r8d
mov rdx, rsi
mov rcx, rdi
call fcn.14003af90
jmp case.0x14003fd43.13
mov r15, qword [rsi + 0x10]
test r15, r15
je case.0x14003fd43.13
lea rax, [rdi + 0x80]
cmp r15, rax
je case.0x14003fd43.13
mov rdx, rsi
mov rcx, rdi
call fcn.14003b100
mov rdx, r15
mov ebx, eax
mov rcx, rdi
call fcn.14003ecd0
mov edx, ebx
mov rcx, rdi
call fcn.14003aee0
jmp case.0x14003fd43.13
mov ecx, 0xa2
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
je case.0x14003fd43.13
xor r9d, r9d
xor r8d, r8d
mov edx, 0x1200
mov rcx, qword [rdi + 0x28]
call qword [sym.imp.USER32.dll_SendMessageW]
inc eax
test eax, eax
jle 0x14003fbe7
nop dword [rax]
test r15d, r15d
jne 0x14003fb87
cmp byte [rdi + 0x104], r15b
je 0x14003fb87
mov eax, dword [rdi + 0x100]
mov dword [rbp - 0x20], 1
mov dword [rbp - 0x1c], eax
xor r8d, r8d
mov rcx, qword [rdi + 0x18]
jmp 0x14003fbb5
mov edx, r15d
mov rcx, rdi
call fcn.14003b180
mov dword [rbp - 0x20], 1
mov dword [rbp - 0x1c], eax
test r15d, r15d
jne 0x14003fbaa
xor r8d, r8d
mov rcx, qword [rdi + 0x18]
jmp 0x14003fbb5
lea eax, [r15 - 1]
movsxd r8, eax
mov rcx, qword [rdi + 0x28]
lea r9, [rbp - 0x20]
mov edx, 0x120c
call qword [sym.imp.USER32.dll_SendMessageW]
inc r15d
xor r9d, r9d
xor r8d, r8d
mov edx, 0x1200
mov rcx, qword [rdi + 0x28]
call qword [sym.imp.USER32.dll_SendMessageW]
inc eax
cmp r15d, eax
jl 0x14003fb60
mov rcx, rdi
call fcn.14003e9a0
jmp case.0x14003fd43.13
mov rcx, qword [rdi + 0xe0]
test rcx, rcx
je case.0x14003fd43.13
cmp r12, 0x28
jne 0x14003fc11
call fcn.14003dea0
jmp 0x14003fc16
call fcn.14003e410
mov rsi, rax
test rsi, rsi
je case.0x14003fd43.13
mov rdx, rsi
mov rcx, rdi
call fcn.14003b100
mov rdx, rsi
jmp 0x14003fb10
mov rsi, qword [rdi + 0xe0]
test rsi, rsi
je case.0x14003fd43.13
mov dword [rbp - 0x78], 0x1c
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp - 0x70], xmm0
mov dword [rbp - 0x60], eax
mov dword [rbp - 0x74], 2
lea r8, [rbp - 0x78]
lea edx, [rax + 2]
mov rcx, qword [rdi + 0x38]
call qword [sym.imp.USER32.dll_GetScrollInfo]
mov r8d, dword [rbp - 0x68]
test r8d, r8d
je 0x14003fc22
nop dword [rax]
cmp r12, 0x22
jne 0x14003fcc3
mov rcx, qword [rsi + 0x28]
test rcx, rcx
je 0x14003fc99
mov eax, dword [rsi + 0x3c]
shr eax, 4
test al, 1
jne 0x14003fd0e
mov rax, qword [rsi + 0x20]
test rax, rax
je 0x14003fca7
mov rsi, rax
jmp 0x14003fd11
mov rax, qword [rsi + 0x10]
test rax, rax
je 0x14003fc19
mov rcx, qword [rax + 0x20]
test rcx, rcx
jne 0x14003fd0e
mov rax, qword [rax + 0x10]
jmp 0x14003fcab
mov rcx, qword [rsi + 0x18]
test rcx, rcx
je 0x14003fced
mov rdx, qword [rcx + 0x30]
test rdx, rdx
je 0x14003fd05
mov eax, dword [rcx + 0x3c]
shr eax, 4
test al, 1
je 0x14003fd05
mov rcx, rdx
mov rdx, qword [rdx + 0x30]
test rdx, rdx
jne 0x14003fcd5
jmp 0x14003fd05
mov rcx, qword [rsi + 0x10]
test rcx, rcx
je 0x14003fc19
cmp qword [rcx + 8], 0
je 0x14003fc19
test rcx, rcx
je 0x14003fc19
mov rsi, rcx
inc r15d
cmp r15d, r8d
jae 0x14003fc22
jmp 0x14003fc80
lea eax, [r13 - 2]
cmp eax, 0x85
ja case.0x14003fd43.13
movzx eax, byte [rbx + rax + 0x4128c]
mov edx, dword [rbx + rax*4 + 0x4125c]
add rdx, rbx
jmp rdx
mov r9, r14
mov r8, r12
mov edx, r13d
mov rcx, rsi
test r12, r12
je 0x14003fd76
call qword [sym.imp.USER32.dll_DefWindowProcW]
mov rbx, rax
mov byte [rdi + 0x105], r15b
mov rcx, rdi
call fcn.14003e450
mov rax, rbx
jmp 0x1400411b7
mov byte [rdi + 0x105], 1
call qword [sym.imp.USER32.dll_DefWindowProcW]
jmp 0x1400411b7
cmp r12, rsi
je case.0x1400406e6.8
jmp case.0x14003fd43.13
mov qword [rdi + 0x60], r12
test r14w, r14w
setne r15b
mov r9, r15
mov r8, r12
mov edx, gethostbyaddr
mov rcx, qword [rdi + 0x18]
call qword [sym.imp.USER32.dll_SendMessageW]
mov r9, r15
mov r8, qword [rdi + 0x60]
mov edx, gethostbyaddr
mov rcx, qword [rdi + 0x28]
call qword [sym.imp.USER32.dll_SendMessageW]
mov r9, r15
mov r8, qword [rdi + 0x60]
mov edx, gethostbyaddr
mov rcx, qword [rdi + 0x58]
call qword [sym.imp.USER32.dll_SendMessageW]
mov r9, r15
mov r8, qword [rdi + 0x60]
mov edx, gethostbyaddr
mov rcx, qword [rdi + 0x20]
call qword [sym.imp.USER32.dll_SendMessageW]
mov r9, r15
mov r8, qword [rdi + 0x60]
mov edx, gethostbyaddr
mov rcx, qword [rdi + 0x30]
call qword [sym.imp.USER32.dll_SendMessageW]
lea rdx, [rbp - 0x48]
mov rcx, qword [rdi + 0x10]
call qword [sym.imp.USER32.dll_GetClientRect]
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp - 0x20], xmm0
movups xmmword [rbp - 0x10], xmm0
mov qword [rbp], rax
lea rax, [rbp - 0x48]
mov qword [rbp - 0x78], rax
lea rax, [rbp - 0x20]
mov qword [rbp - 0x70], rax
lea r9, [rbp - 0x78]
xor r8d, r8d
mov edx, 0x1205
mov rcx, qword [rdi + 0x18]
call qword [sym.imp.USER32.dll_SendMessageW]
mov eax, dword [rbp]
or eax, 0x40
mov dword [rsp + 0x30], eax
mov eax, dword [rbp - 4]
mov dword [rsp + 0x28], eax
mov eax, dword [rdi + 0xf8]
mov dword [rsp + 0x20], eax
xor r9d, r9d
xor r8d, r8d
mov rdx, qword [rbp - 0x18]
mov rcx, qword [rdi + 0x18]
call qword [sym.imp.USER32.dll_SetWindowPos]
mov r8d, dword [rdi + 0xf8]
mov eax, dword [rbp]
or eax, 0x40
mov ecx, dword [rbp - 8]
sub ecx, r8d
mov dword [rsp + 0x30], eax
mov eax, dword [rbp - 4]
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], ecx
xor r9d, r9d
mov rdx, qword [rdi + 0x18]
mov rcx, qword [rdi + 0x28]
call qword [sym.imp.USER32.dll_SetWindowPos]
test r14w, r14w
je case.default.0x1400406e6
mov rcx, rdi
call fcn.14003e450
xor eax, eax
jmp 0x1400411b7
mov rdx, qword [rdi + 0xe0]
test rdx, rdx
je case.0x14003fd43.13
mov rcx, rdi
call fcn.14003e540
jmp case.0x14003fd43.13
lea rdx, [rbp - 0x20]
mov rcx, rsi
call qword [sym.imp.USER32.dll_BeginPaint]
lea rcx, [rbp - 0x14]
call qword [sym.imp.GDI32.dll_CreateRectRgnIndirect]
mov rbx, rax
mov qword [rbp - 0x38], rax
mov r8, rax
lea rdx, [rbp - 0x20]
mov rcx, rdi
call fcn.140039da0
lea rdx, [rbp - 0x20]
mov rcx, rsi
call qword [sym.imp.USER32.dll_EndPaint]
nop
test rbx, rbx
je case.default.0x1400406e6
mov rcx, rbx
call qword [sym.imp.GDI32.dll_DeleteObject]
xor eax, eax
jmp 0x1400411b7
mov r9, r14
mov r8, r12
mov edx, r13d
mov rcx, rsi
call qword [sym.imp.USER32.dll_DefWindowProcW]
or rax, 1
jmp 0x1400411b7
mov rcx, rdi
call fcn.14003e9a0
mov rcx, rdi
call fcn.14003ebf0
mov rcx, rdi
call fcn.14003e680
mov dword [rbp - 0x20], 0x48
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp - 0x1c], xmm0
movups xmmword [rbp - 0xc], xmm0
movups xmmword [rbp + 4], xmm0
movups xmmword [rbp + 0x14], xmm0
mov dword [rbp + 0x24], eax
mov rcx, qword [rdi + 0x10]
mov qword [rbp - 0x18], rcx
lea rdx, [rbp - 8]
call qword [sym.imp.USER32.dll_GetClientRect]
lea r9, [rbp - 0x20]
xor r8d, r8d
mov edx, 0x434
mov rcx, qword [rdi + 0x58]
call qword [sym.imp.USER32.dll_SendMessageW]
jmp case.0x14003fd43.13
mov rax, qword [rdi + 0x58]
cmp qword [r14], rax
jne 0x140040265
mov eax, dword [r14 + 0x10]
cmp eax, 0xfffffdee
je 0x1400400bb
cmp eax, 0xfffffdf7
jne 0x140040265
lea rax, [rbp - 0x48]
mov qword [rsp + 0x30], rax
mov rax, qword [rdi + 0x118]
mov qword [rsp + 0x28], rax
mov byte [rsp + 0x20], 1
xor r9d, r9d
mov r8d, dword [rdi + 0x10c]
mov edx, dword [rdi + 0x110]
mov rcx, rdi
call fcn.14003b340
lea r9, [rbp - 0x48]
mov edx, 0x41f
mov r8d, 1
mov rcx, qword [rdi + 0x58]
call qword [sym.imp.USER32.dll_SendMessageW]
mov r9d, 2
lea r8, [rbp - 0x48]
xor edx, edx
mov rcx, qword [rdi + 0x10]
call qword [sym.imp.USER32.dll_MapWindowPoints]
mov dword [rsp + 0x30], SafeArrayPutElement
mov dword [rsp + 0x28], r15d
mov dword [rsp + 0x20], r15d
mov r9d, dword [rbp - 0x44]
mov r8d, dword [rbp - 0x48]
xor edx, edx
mov rcx, qword [rdi + 0x58]
call qword [sym.imp.USER32.dll_SetWindowPos]
xor r9d, r9d
mov r8, qword [rdi + 0x60]
lea edx, [r9 + 0x30]
mov rcx, qword [rdi + 0x58]
call qword [sym.imp.USER32.dll_SendMessageW]
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x28], r15
mov rcx, qword [rdi + 0x118]
mov qword [rsp + 0x20], rcx
mov r9d, dword [rdi + 0x10c]
mov r8d, 0x7d5
mov rdx, qword [rdi + 0x58]
mov rcx, rdi
call fcn.140039ce0
mov eax, 1
jmp 0x1400411b7
lea rax, [r14 + 0x18]
mov qword [rsp + 0x60], rax
cmp qword [rdi + 0x118], r15
je 0x14004025b
add r14, 0x20
mov qword [rax], r14
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], r15
mov rax, qword [rdi + 0x118]
mov qword [rsp + 0x20], rax
mov r9d, dword [rdi + 0x10c]
mov r8d, 0x7d4
mov rdx, qword [rdi + 0x10]
mov rcx, rdi
call fcn.140039ce0
test rax, rax
jne case.default.0x1400406e6
mov qword [rsp + 0x78], 0x50
mov rdx, qword [rdi + 0x118]
mov rcx, qword [rdx + 8]
mov rax, qword [rcx]
lea r8, [rsp + 0x78]
mov qword [rsp + 0x20], r8
mov r9, r14
mov r8d, dword [rdi + 0x10c]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov qword [rsp + 0x48], rax
mov qword [rbp - 0x48], r15
mov ecx, 0x4e
call qword [sym.imp.USER32.dll_GetSystemMetrics]
mov dword [rbp - 0x40], eax
mov rcx, rdi
call fcn.14003d010
mov dword [rbp - 0x3c], eax
lea rax, [rbp - 0x78]
mov qword [rsp + 0x30], rax
mov rcx, qword [rdi + 0x118]
mov qword [rsp + 0x28], rcx
mov byte [rsp + 0x20], 1
mov r9b, 1
mov r8d, dword [rdi + 0x10c]
mov edx, dword [rdi + 0x110]
mov rcx, rdi
call fcn.14003b340
mov dword [rbp - 0x20], 0x1c
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp - 0x18], xmm0
mov dword [rbp - 8], eax
mov dword [rbp - 0x1c], 4
lea r8, [rbp - 0x20]
lea edx, [rax + 2]
mov rcx, qword [rdi + 0x48]
call qword [sym.imp.USER32.dll_GetScrollInfo]
mov eax, dword [rdi + 0xf8]
cmp dword [rbp - 0x78], eax
jne 0x1400401d2
cmp dword [rbp - 0xc], r15d
jne case.default.0x1400406e6
mov esi, dword [rdi + 0x108]
and esi, 0xfffb3fff
bts esi, 0xa
mov rcx, qword [rdi + 0x10]
call qword [sym.imp.USER32.dll_GetDC]
mov r14, rax
mov rdx, qword [rdi + 0x60]
mov rcx, rax
call qword [sym.imp.GDI32.dll_SelectObject]
mov rbx, rax
mov dword [rsp + 0x20], esi
lea r9, [rbp - 0x48]
mov r8d, 0xffffffff
mov rdx, qword [rsp + 0x48]
mov rcx, r14
call qword [sym.imp.USER32.dll_DrawTextW]
mov rdx, rbx
mov rcx, r14
call qword [sym.imp.GDI32.dll_SelectObject]
mov rdx, r14
mov rcx, qword [rdi + 0x10]
call qword [sym.imp.USER32.dll_ReleaseDC]
mov ecx, dword [rbp - 0x70]
sub ecx, dword [rbp - 0x78]
mov eax, dword [rbp - 0x40]
sub eax, dword [rbp - 0x48]
lea rdx, [0x14011eaa0]
cmp eax, ecx
cmovg rdx, qword [rsp + 0x48]
mov rax, qword [rsp + 0x60]
mov r14, qword [rsp + 0x58]
jmp 0x140040262
lea rdx, [0x14011eaa0]
mov qword [rax], rdx
mov rcx, qword [rdi + 0x18]
mov rdx, qword [r14]
cmp rdx, rcx
je 0x14004027b
cmp rdx, qword [rdi + 0x28]
jne case.0x14003fd43.13
mov eax, dword [r14 + 0x10]
cmp eax, 0xfffffec0
ja 0x1400404b2
je 0x140040349
cmp eax, 0xfffffebb
je 0x1400402e5
cmp eax, 0xfffffebe
je 0x1400402ae
cmp eax, 0xfffffebf
je 0x14004033c
jmp case.0x14003fd43.13
cmp rdx, rcx
jne 0x1400402b8
mov r9d, r15d
jmp 0x1400402bf
mov r9d, dword [r14 + 0x18]
inc r9d
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], r15
mov r8d, 0x7d3
mov rdx, qword [rdi + 0x10]
mov rcx, rdi
call fcn.140039ce0
jmp case.0x14003fd43.13
cmp rdx, qword [rdi + 0x28]
sete r15b
add r15d, dword [r14 + 0x18]
jne 0x140040312
cmp byte [rdi + 0x104], r15b
je 0x140040312
mov ebx, dword [rdi + 0x100]
mov r8d, ebx
mov edx, r15d
mov rcx, rdi
call fcn.14003ee50
jmp 0x140040332
mov edx, r15d
mov rcx, rdi
call fcn.14003b180
mov ebx, eax
mov r8d, eax
mov edx, r15d
mov rcx, rdi
call fcn.14003ee50
test r15d, r15d
jne 0x14004033c
mov edx, ebx
mov rcx, rdi
call fcn.14003e7d0
mov rcx, rdi
call fcn.14003e9a0
jmp case.0x14003fd43.13
mov rcx, qword [r14 + 0x20]
test byte [rcx], 1
je case.0x14003fd43.13
mov r8d, dword [r14 + 0x18]
test r8d, r8d
jne 0x14004036e
mov eax, dword [rdi + 0xfc]
cmp dword [rcx + 4], eax
jl case.0x1400406e6.8
mov ebx, r15d
cmp rdx, qword [rdi + 0x28]
sete bl
add ebx, r8d
lea r8, [rsp + 0x78]
mov edx, ebx
mov rcx, rdi
call fcn.14003b540
lea rdx, [rbp - 0x78]
mov rcx, qword [rdi + 0x10]
call qword [sym.imp.USER32.dll_GetClientRect]
mov rax, qword [r14 + 0x20]
mov esi, dword [rax + 4]
mov ecx, dword [rbp - 0x80]
sub esi, ecx
add esi, dword [rsp + 0x78]
je case.default.0x1400406e6
mov dword [rbp - 0x38], ecx
mov eax, dword [rbp - 0x7c]
mov dword [rbp - 0x34], eax
mov eax, dword [rbp - 0x70]
mov dword [rbp - 0x30], eax
mov eax, dword [rbp - 0x6c]
mov dword [rbp - 0x2c], eax
test ebx, ebx
jne 0x1400403cd
lea eax, [rcx - 1]
mov dword [rbp - 0x38], eax
mov edx, 0xfffffff0
mov rcx, qword [rdi + 0x38]
call qword [sym.imp.USER32.dll_GetWindowLongPtrW]
shr rax, 0x1c
test al, 1
je 0x1400403f2
mov ecx, 2
call qword [sym.imp.USER32.dll_GetSystemMetrics]
sub dword [rbp - 0x30], eax
mov dword [rsp + 0x38], 2
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], r15
lea r9, [rbp - 0x38]
xor r8d, r8d
mov edx, esi
mov rcx, qword [rdi + 0x10]
call qword [sym.imp.USER32.dll_ScrollWindowEx]
test ebx, ebx
jne 0x140040429
cmp byte [rdi + 0x104], r15b
jne 0x140040457
mov eax, dword [rsp + 0x78]
mov dword [rbp - 0x48], eax
mov eax, dword [rbp - 0x7c]
mov dword [rbp - 0x44], eax
mov eax, dword [rbp - 0x80]
mov dword [rbp - 0x40], eax
mov eax, dword [rbp - 0x6c]
mov dword [rbp - 0x3c], eax
xor r8d, r8d
lea rdx, [rbp - 0x48]
mov rcx, qword [rdi + 0x10]
call qword [sym.imp.USER32.dll_InvalidateRect]
test ebx, ebx
jne 0x140040499
mov edx, dword [rbp - 0x80]
add edx, esi
mov rcx, rdi
call fcn.14003e7d0
mov rcx, rdi
call fcn.14003e9a0
mov rcx, rdi
call fcn.14003ebf0
mov rcx, qword [rdi + 0x28]
call qword [sym.imp.USER32.dll_UpdateWindow]
mov rcx, qword [rdi + 0x40]
call qword [sym.imp.USER32.dll_UpdateWindow]
mov rcx, qword [rdi + 0x48]
call qword [sym.imp.USER32.dll_UpdateWindow]
xor eax, eax
jmp 0x1400411b7
mov rcx, rdi
call fcn.14003e9a0
mov rcx, qword [rdi + 0x48]
call qword [sym.imp.USER32.dll_UpdateWindow]
xor eax, eax
jmp 0x1400411b7
cmp eax, 0xfffffec9
je 0x1400404e5
cmp eax, 0xfffffffb
jne case.0x14003fd43.13
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], r15
xor r9d, r9d
lea r8d, [r9 - 5]
mov rcx, rdi
call fcn.140039ce0
jmp case.0x14003fd43.13
xor r8d, r8d
xor edx, edx
mov rcx, qword [rdi + 0x10]
call qword [sym.imp.USER32.dll_InvalidateRect]
xor eax, eax
jmp 0x1400411b7
mov rcx, rdi
call fcn.1400393f0
jmp case.0x14003fd43.13
mov rcx, qword [rdi + 0x70]
test rcx, rcx
je 0x14004051d
cmp byte [rdi + 0x78], r15b
jne 0x14004051d
call qword [sym.imp.COMCTL32.dll_ImageList_Destroy]
movzx edx, word [0x1401794f4]
xor r8d, r8d
mov rcx, rsi
call qword [sym.imp.USER32.dll_SetPropW]
lea rax, vtable.CTreeList.0
mov qword [rdi], rax
lea rcx, [rdi + 0x148]
call fcn.1400176f0
lea rcx, [rdi + 0x80]
call fcn.140039030
nop
lea rax, vtable.CThemedWindow.0
mov qword [rdi], rax
mov rcx, qword [rdi + 8]
test rcx, rcx
je 0x14004056d
call qword [0x1401794e0]
nop
mov edx, 0x168
mov rcx, rdi
call fcn.1400e0fb8
mov r9, r14
mov r8, r12
mov edx, r13d
mov rcx, rsi
call qword [sym.imp.USER32.dll_DefWindowProcW]
jmp 0x1400411b7
cmp r13d, 0x201
ja 0x140040b8e
mov eax, r13d
sub eax, 0x102
je 0x140040776
sub eax, 0x11
je 0x140040736
sub eax, 1
je 0x14004069c
sub eax, 1
je 0x14004060d
cmp eax, 0x23
jne case.0x14003fd43.13
cmp r14, qword [rdi + 0x50]
jne case.0x14003fd43.13
call fcn.1400518e0
test al, al
je case.0x14003fd43.13
mov rax, qword [0x140179518]
test rax, rax
jne 0x1400411b7
call fcn.1400508b0
mov ecx, dword [rax + 0x74]
call qword [sym.imp.GDI32.dll_CreateSolidBrush]
mov qword [0x140179518], rax
jmp 0x1400411b7
mov dword [rbp - 0x78], 0x1c
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp - 0x70], xmm0
mov dword [rbp - 0x60], eax
mov dword [rbp - 0x74], 7
lea r8, [rbp - 0x78]
lea edx, [rax + 2]
mov rcx, qword [rdi + 0x38]
call qword [sym.imp.USER32.dll_GetScrollInfo]
movzx eax, r12w
cmp eax, 8
ja case.default.0x1400406e6
mov ecx, dword [rbx + rax*4 + 0x41314]
add rcx, rbx
jmp rcx
mov rax, r12
shr rax, 0x10
movzx r15d, ax
jmp case.0x14004064f.6
mov r15d, dword [rbp - 0x6c]
jmp case.0x14004064f.6
mov r15d, dword [rbp - 0x64]
inc r15d
jmp case.0x14004064f.6
mov r15d, dword [rbp - 0x64]
dec r15d
jmp case.0x14004064f.6
mov r15d, dword [rbp - 0x64]
add r15d, dword [rbp - 0x68]
jmp case.0x14004064f.6
mov r15d, dword [rbp - 0x64]
sub r15d, dword [rbp - 0x68]
mov dword [rbp - 0x64], r15d
mov edx, r15d
mov rcx, rdi
call fcn.14003f800
jmp case.0x14003fd43.13
test r14, r14
je case.0x14003fd43.13
mov dword [rbp - 0x78], 0x1c
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp - 0x70], xmm0
mov dword [rbp - 0x60], eax
mov dword [rbp - 0x74], 7
lea r8, [rbp - 0x78]
lea edx, [rax + 2]
mov rcx, r14
call qword [sym.imp.USER32.dll_GetScrollInfo]
movzx eax, r12w
cmp eax, 8
ja case.default.0x1400406e6
mov ecx, dword [rbx + rax*4 + 0x41338]
add rcx, rbx
jmp rcx
mov rax, r12
shr rax, 0x10
movzx r15d, ax
jmp case.0x1400406e6.6
mov r15d, dword [rbp - 0x6c]
jmp case.0x1400406e6.6
mov r15d, dword [rbp - 0x64]
inc r15d
jmp case.0x1400406e6.6
mov r15d, dword [rbp - 0x64]
dec r15d
jmp case.0x1400406e6.6
mov r15d, dword [rbp - 0x64]
add r15d, dword [rbp - 0x68]
jmp case.0x1400406e6.6
mov r15d, dword [rbp - 0x64]
sub r15d, dword [rbp - 0x68]
mov dword [rbp - 0x64], r15d
mov r8d, r15d
mov rdx, r14
mov rcx, rdi
call fcn.14003c570
jmp case.0x14003fd43.13
cmp r12, 0x64
jne case.0x14003fd43.13
lea rcx, [rsp + 0x48]
call qword [sym.imp.USER32.dll_GetCursorPos]
lea r9d, [r12 - 0x63]
lea r8, [rsp + 0x48]
mov rdx, rsi
xor ecx, ecx
call qword [sym.imp.USER32.dll_MapWindowPoints]
lea r8, [rsp + 0x48]
mov rdx, qword [rdi + 0x58]
mov rcx, rdi
call fcn.14003f5e0
jmp case.0x14003fd43.13
cmp dword [rdi + 0xb8], r15d
je case.0x14003fd43.13
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [rsp + 0x44], eax
mov ecx, eax
sub ecx, dword [rdi + 0x140]
lea rax, [0x140126a46]
cmp ecx, 0x2ee
jbe 0x140040821
mov rbx, qword [rdi + 0x148]
test rbx, rbx
je 0x1400407cf
cmp qword [rbx + 8], r15
jne 0x1400407c9
mov rcx, qword [rbx]
call fcn.1400e0d00
mov qword [rbx + 8], rax
lea rax, [0x140126a46]
cmp qword [rbx + 8], rax
je 0x140040821
lea rcx, [rdi + 0x148]
call fcn.1400176f0
mov ecx, reloc.OLEAUT32.dll_SafeArrayGetElement
call fcn.1400e1108
mov rbx, rax
mov qword [rsp + 0x68], rax
test rax, rax
je 0x14004080e
mov qword [rax + 8], r15
mov dword [rax + 0x10], 1
lea rcx, [0x140126a46]
call fcn.1400e0e20
mov qword [rbx], rax
jmp 0x140040811
mov rbx, r15
mov qword [rdi + 0x148], rbx
test rbx, rbx
je 0x1400411f0
mov esi, 0xffffffff
cmp qword [rdi + 0xe0], 0
je 0x140040986
lea ecx, [rsi + 0x19]
call fcn.1400e1108
mov rbx, rax
mov qword [rsp + 0x68], rax
test rax, rax
je 0x140040865
mov qword [rax + 8], r15
mov dword [rax + 0x10], 1
lea rcx, [0x140126a46]
call fcn.1400e0e20
mov qword [rbx], rax
jmp 0x140040868
mov rbx, r15
test rbx, rbx
je 0x1400411f0
mov rax, qword [rdi + 0x148]
mov qword [rsp + 0x78], rax
cmp rax, rbx
jne 0x14004088c
mov dword [rsp + 0x40], r15d
jmp 0x140040925
test rax, rax
jne 0x1400408a9
mov rcx, qword [rbx]
test rcx, rcx
je 0x140040882
call qword [sym.imp.OLEAUT32.dll_VariantInit]
test eax, eax
je 0x140040882
mov dword [rsp + 0x40], esi
jmp 0x140040925
mov rcx, qword [rax]
call qword [sym.imp.OLEAUT32.dll_VariantInit]
mov dword [rsp + 0x40], eax
mov rcx, qword [rbx]
call qword [sym.imp.OLEAUT32.dll_VariantInit]
mov r10d, eax
mov r11d, dword [rsp + 0x40]
mov edx, r11d
cmp r11d, eax
cmova edx, eax
mov rcx, qword [rsp + 0x78]
mov rcx, qword [rcx]
test edx, edx
je 0x140040909
mov r9, qword [rbx]
sub r9, rcx
nop dword [rax]
nop word [rax + rax]
dec edx
movzx eax, word [rcx + r9]
movzx r8d, word [rcx]
lea rcx, [rcx + 2]
cmp r8w, ax
jne 0x140040914
test edx, edx
jne 0x1400408f0
cmp r11d, r10d
jae 0x14004091b
mov dword [rsp + 0x40], esi
jmp 0x140040925
mov ecx, r8d
sub ecx, eax
jmp 0x140040921
mov ecx, r15d
setne cl
mov dword [rsp + 0x40], ecx
mov eax, esi
lock xadd dword [rbx + 0x10], eax
cmp eax, 1
jne 0x140040961
mov rcx, qword [rbx]
test rcx, rcx
je 0x140040942
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov qword [rbx], r15
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x140040954
call fcn.1400e0fb8
mov qword [rbx + 8], r15
mov edx, reloc.OLEAUT32.dll_SafeArrayGetElement
mov rcx, rbx
call fcn.1400e0fb8
mov rax, qword [rdi + 0xe0]
mov qword [rsp + 0x58], rax
cmp dword [rsp + 0x40], 0
jne 0x140040981
mov rcx, rax
call fcn.14003dea0
mov qword [rsp + 0x58], rax
test rax, rax
jne 0x140040992
mov rax, qword [rdi + 0xa8]
mov qword [rsp + 0x58], rax
mov eax, dword [rsp + 0x44]
mov dword [rdi + 0x140], eax
mov dword [rsp + 0x70], r15d
mov word [rsp + 0x70], r12w
mov ecx, reloc.OLEAUT32.dll_SafeArrayGetElement
call fcn.1400e1108
mov rbx, rax
mov qword [rsp + 0x68], rax
test rax, rax
je 0x1400409e2
mov qword [rax + 8], r15
mov dword [rax + 0x10], 1
lea rcx, [rsp + 0x70]
call qword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov qword [rbx], rax
test rax, rax
je 0x1400411e5
jmp 0x1400409e5
mov rbx, r15
mov qword [rsp + 0x68], rbx
test rbx, rbx
je 0x1400411f0
mov ecx, reloc.OLEAUT32.dll_SafeArrayGetElement
call fcn.1400e1108
mov rcx, rax
mov qword [rsp + 0x60], rax
test rax, rax
je 0x140040a1d
lea r8, [rsp + 0x68]
lea rdx, [rdi + 0x148]
call fcn.1400051c0
jmp 0x140040a20
mov rax, r15
mov qword [rsp + 0x60], rax
test rax, rax
je 0x1400411da
lea rcx, [rdi + 0x148]
call fcn.1400176f0
mov rax, qword [rsp + 0x60]
mov qword [rdi + 0x148], rax
lock xadd dword [rbx + 0x10], esi
cmp esi, 1
jne 0x140040a80
mov rcx, qword [rbx]
test rcx, rcx
je 0x140040a61
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov qword [rbx], r15
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x140040a73
call fcn.1400e0fb8
mov qword [rbx + 8], r15
mov edx, reloc.OLEAUT32.dll_SafeArrayGetElement
mov rcx, rbx
call fcn.1400e0fb8
mov rbx, qword [rsp + 0x58]
nop word [rax + rax]
mov qword [rsp + 0x78], 0x104
mov rcx, qword [rbx + 8]
mov rax, qword [rcx]
lea rdx, [rsp + 0x78]
mov qword [rsp + 0x20], rdx
lea r9, [rbp + 0x30]
xor r8d, r8d
mov rdx, rbx
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov r9, rax
mov qword [rsp + 0x68], rax
mov rdx, qword [rdi + 0x148]
test rdx, rdx
je 0x140040af7
mov rcx, qword [rdx]
test rcx, rcx
je 0x140040ae7
call qword [sym.imp.OLEAUT32.dll_VariantInit]
mov rdx, qword [rdi + 0x148]
mov r9, qword [rsp + 0x68]
jmp 0x140040aea
mov eax, r15d
mov r8d, eax
test rdx, rdx
je 0x140040afa
mov rdx, qword [rdx]
jmp 0x140040afd
mov r8, r15
mov rdx, r15
mov rcx, r9
call fcn.1400e8bbc
test eax, eax
je 0x140040b69
mov rcx, qword [rbx + 0x28]
test rcx, rcx
je 0x140040b21
mov eax, dword [rbx + 0x3c]
shr eax, 4
test al, 1
je 0x140040b21
mov rbx, rcx
jmp 0x140040b59
mov rax, qword [rbx + 0x20]
test rax, rax
je 0x140040b2f
mov rbx, rax
jmp 0x140040b59
mov rax, qword [rbx + 0x10]
test rax, rax
je 0x140040b52
nop dword [rax + rax]
mov rbx, qword [rax + 0x20]
test rbx, rbx
jne 0x140040b59
mov rax, qword [rax + 0x10]
test rax, rax
jne 0x140040b40
mov rbx, qword [rdi + 0xa8]
cmp rbx, qword [rsp + 0x58]
je case.0x14003fd43.13
jmp 0x140040a90
mov rdx, rbx
mov rcx, rdi
call fcn.14003ecd0
mov rdx, rbx
mov rcx, rdi
call fcn.14003b100
mov edx, eax
mov rcx, rdi
call fcn.14003aee0
jmp case.0x14003fd43.13
cmp r13d, 0x2000
ja 0x140040cef
je 0x140040cb8
mov eax, r13d
sub eax, 0x203
je 0x140040c0d
sub eax, 1
je 0x140040c0d
cmp eax, 6
jne 0x140040c9b
mov rax, r12
shr rax, 0x10
movsx ecx, ax
add ecx, dword [rdi + 0xf4]
mov dword [rdi + 0xf4], ecx
mov eax, ecx
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x28
jl case.0x14003fd43.13
mov eax, 0x66666667
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
shl eax, 3
sub ecx, eax
mov dword [rdi + 0xf4], ecx
neg edx
mov rcx, rdi
call fcn.14003f680
jmp case.0x14003fd43.13
movsx eax, r14w
mov dword [rsp + 0x48], eax
mov rax, r14
shr rax, 0x10
cwde
mov dword [rsp + 0x4c], eax
mov dword [rsp + 0x44], r15d
mov dword [rsp + 0x40], r15d
mov qword [rsp + 0x78], r15
lea rax, [rsp + 0x78]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x40]
lea r8, [rsp + 0x44]
mov rdx, qword [rsp + 0x48]
mov rcx, rdi
call fcn.14003bfc0
test al, 0xe0
je 0x140040c9b
mov rbx, qword [rsp + 0x78]
mov rdx, rbx
mov rcx, rdi
call fcn.14003ecd0
mov eax, 0xfffffffd
mov r8d, 0xfffffffb
cmp r13d, 0x203
cmove r8d, eax
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], rbx
mov r9d, dword [rsp + 0x40]
mov rdx, qword [rdi + 0x10]
mov rcx, rdi
call fcn.140039ce0
cmp r13d, 0x31a
jne case.0x14003fd43.13
mov rdx, rsi
mov rcx, rdi
call fcn.14003ae70
jmp case.0x14003fd43.13
mov eax, dword [r12 + 0x3c]
test r14, r14
je 0x140040ce0
or eax, 0x40
mov dword [r12 + 0x3c], eax
cmp dword [r12 + 0x38], r15d
jne case.default.0x1400406e6
and eax, 0xffffffef
mov dword [r12 + 0x3c], eax
xor eax, eax
jmp 0x1400411b7
and eax, 0xffffffbf
mov dword [r12 + 0x3c], eax
xor eax, eax
jmp 0x1400411b7
mov eax, r13d
sub eax, 0x2001
je 0x140040d98
sub eax, 1
je 0x140040d8e
sub eax, 1
je 0x140040d7c
sub eax, 1
je 0x140040d2b
cmp eax, 1
jne case.0x14003fd43.13
mov rdx, r12
mov rcx, rdi
call fcn.14003b100
cdqe
jmp 0x1400411b7
mov rsi, qword [r14 + 0x10]
mov rbx, qword [r14 + 8]
mov r14, qword [r14]
mov ecx, reloc.OLEAUT32.dll_SafeArrayGetDim
call fcn.1400e1108
mov qword [rsp + 0x68], rax
test rax, rax
je 0x140040d5a
lea rcx, vtable.CListViewData.0
mov qword [rax], rcx
mov qword [rax + 8], rbx
jmp 0x140040d5d
mov rax, r15
mov qword [rsp + 0x20], rsi
lea r9, [0x14003d0b0]
mov r8, rax
mov rdx, r14
mov rcx, rdi
call fcn.14003cbe0
jmp 0x1400411b7
mov rdx, r12
mov rcx, rdi
call fcn.14003e540
xor eax, eax
jmp 0x1400411b7
mov eax, dword [r12 + 0x38]
jmp 0x1400411b7
test r14, r14
setne r8b
mov rdx, r12
mov rcx, rdi
call fcn.14003af90
movzx eax, al
jmp 0x1400411b7
cmp byte [rdi + 0x128], r15b
je case.0x14003fd43.13
call qword [sym.imp.USER32.dll_GetCapture]
cmp rax, rsi
jne case.0x14003fd43.13
call qword [sym.imp.USER32.dll_ReleaseCapture]
mov edx, 0xfffffff4
mov rcx, qword [rdi + 0x10]
call qword [sym.imp.USER32.dll_GetClassLongPtrW]
mov rcx, rax
call qword [sym.imp.USER32.dll_SetCursor]
jmp case.0x14003fd43.13
cmp byte [rdi + 0x128], r15b
je case.0x14003fd43.13
movsx ebx, r14w
call qword [sym.imp.USER32.dll_GetCapture]
cmp rax, rsi
jne 0x140040e89
test r12b, 1
je 0x140040e89
mov r9d, dword [rdi + 0x12c]
sub ebx, r9d
je 0x140040e7a
mov r8d, dword [rdi + 0xf8]
mov ecx, dword [rdi + 0xfc]
lea eax, [r8 + rbx]
mov edx, ecx
sub edx, r8d
cmp eax, ecx
cmovge edx, ebx
lea eax, [r9 + rdx]
mov dword [rdi + 0x12c], eax
lea ebx, [r8 + rdx]
mov edx, ebx
mov rcx, rdi
call fcn.14003e7d0
mov dword [rbp - 0x20], 1
mov dword [rbp - 0x1c], ebx
lea r9, [rbp - 0x20]
xor r8d, r8d
mov edx, 0x120c
mov rcx, qword [rdi + 0x18]
call qword [sym.imp.USER32.dll_SendMessageW]
mov rcx, rdi
call fcn.14003e9a0
mov rcx, qword [rdi + 0x68]
call qword [sym.imp.USER32.dll_SetCursor]
jmp case.0x14003fd43.13
mov eax, ebx
sub eax, dword [rdi + 0xf8]
cdq
xor eax, edx
sub eax, edx
cmp eax, 8
jle 0x140040e7a
mov edx, 0xfffffff4
mov rcx, qword [rdi + 0x10]
call qword [sym.imp.USER32.dll_GetClassLongPtrW]
mov rsi, rax
cmp qword [rdi + 0x160], r15
je 0x140040f16
mov dword [rsp + 0x44], r15d
mov dword [rsp + 0x40], r15d
mov qword [rsp + 0x48], r15
mov dword [rsp + 0x78], ebx
mov rcx, r14
shr rcx, 0x10
movsx ecx, cx
mov dword [rsp + 0x7c], ecx
lea rax, [rsp + 0x48]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x40]
lea r8, [rsp + 0x44]
mov rdx, qword [rsp + 0x78]
mov rcx, rdi
call fcn.14003bfc0
mov rcx, qword [rsp + 0x48]
test rcx, rcx
je 0x140040f16
mov rax, qword [rdi + 0x160]
mov edx, dword [rsp + 0x40]
call rax
test rax, rax
cmovne rsi, rax
mov rcx, rsi
call qword [sym.imp.USER32.dll_SetCursor]
jmp case.0x14003fd43.13
cmp byte [rdi + 0x128], r15b
je 0x140040f76
movsx ebx, r14w
mov eax, ebx
sub eax, dword [rdi + 0xf8]
cdq
xor eax, edx
sub eax, edx
cmp eax, 8
jg 0x140040f5e
mov rcx, rsi
call qword [sym.imp.USER32.dll_SetCapture]
mov rcx, qword [rdi + 0x68]
call qword [sym.imp.USER32.dll_SetCursor]
mov dword [rdi + 0x12c], ebx
jmp 0x140040f76
mov edx, 0xfffffff4
mov rcx, qword [rdi + 0x10]
call qword [sym.imp.USER32.dll_GetClassLongPtrW]
mov rcx, rax
call qword [sym.imp.USER32.dll_SetCursor]
mov rcx, rsi
call qword [sym.imp.USER32.dll_SetFocus]
movsx eax, r14w
mov dword [rsp + 0x78], eax
mov rax, r14
shr rax, 0x10
cwde
mov dword [rsp + 0x7c], eax
mov dword [rsp + 0x44], r15d
mov qword [rsp + 0x48], r15
lea rax, [rsp + 0x48]
mov qword [rsp + 0x20], rax
xor r9d, r9d
lea r8, [rsp + 0x44]
mov rdx, qword [rsp + 0x78]
mov rcx, rdi
call fcn.14003bfc0
mov ebx, eax
mov rsi, qword [rsp + 0x48]
test al, 0xe0
je 0x140040fe9
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], rsi
xor r9d, r9d
lea r8d, [r9 - 2]
mov rdx, qword [rdi + 0x10]
mov rcx, rdi
call fcn.140039ce0
test bl, 0x40
je 0x140041174
mov eax, dword [rsi + 0x3c]
shr eax, 4
movzx ecx, al
not cl
and cl, 1
mov byte [rsp + 0x50], cl
and al, 1
cmp cl, al
je case.0x14003fd43.13
mov rdx, qword [rdi + 0x10]
mov qword [rsp + 0x30], r15
xor r9d, r9d
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], rsi
test cl, cl
mov rcx, rdi
je 0x14004106a
mov r8d, 0x7d1
call fcn.140039ce0
test rax, rax
jne case.0x14003fd43.13
or dword [rsi + 0x3c], 0x30
mov ebx, dword [rsi + 0x38]
cmp qword [rsi + 0x28], r15
je 0x1400410c2
mov r14, qword [rsi + 0x28]
mov rcx, r14
call fcn.14003bb20
add ebx, eax
mov r14, qword [r14 + 0x20]
test r14, r14
jne 0x140041050
mov r14, qword [rsp + 0x58]
jmp 0x1400410c2
mov r8d, 0x7d2
call fcn.140039ce0
test rax, rax
jne case.0x14003fd43.13
mov ecx, dword [rsi + 0x3c]
mov dword [rsp + 0x44], ecx
mov eax, ecx
shr eax, 4
test al, 1
jne 0x140041093
mov ebx, r15d
jmp 0x1400410bc
mov ebx, dword [rsi + 0x38]
cmp qword [rsi + 0x28], r15
je 0x1400410bc
mov r14, qword [rsi + 0x28]
mov rcx, r14
call fcn.14003bb20
add ebx, eax
mov r14, qword [r14 + 0x20]
test r14, r14
jne 0x1400410a0
mov r14, qword [rsp + 0x58]
mov ecx, dword [rsp + 0x44]
and ecx, 0xffffffef
mov dword [rsi + 0x3c], ecx
test ebx, ebx
je case.0x14003fd43.13
mov rcx, qword [rdi + 0xa8]
test rcx, rcx
je 0x140041122
cmp rcx, rsi
je 0x140041128
inc r15d
mov rdx, qword [rcx + 0x28]
test rdx, rdx
je 0x1400410f6
mov eax, dword [rcx + 0x3c]
shr eax, 4
test al, 1
je 0x1400410f6
mov rcx, rdx
jmp 0x1400410d6
mov rax, qword [rcx + 0x20]
test rax, rax
je 0x140041104
mov rcx, rax
jmp 0x1400410d6
mov rax, qword [rcx + 0x10]
test rax, rax
je 0x140041122
nop dword [rax]
mov rcx, qword [rax + 0x20]
test rcx, rcx
jne 0x1400410d6
mov rax, qword [rax + 0x10]
test rax, rax
jne 0x140041110
mov r15d, 0xffffffff
mov r8d, r15d
mov edx, r15d
mov rcx, rdi
call fcn.14003e5c0
lea edx, [r15 + 1]
mov rcx, rdi
cmp byte [rsp + 0x50], 0
je 0x14004114e
mov r8d, ebx
call fcn.14003cdc0
jmp case.0x14003fd43.13
neg ebx
mov r8d, ebx
call fcn.14003cdc0
mov rax, qword [rdi + 0xe0]
test rax, rax
je case.0x14003fd43.13
cmp rax, rsi
je 0x14004117c
mov rax, qword [rax + 0x10]
test rax, rax
jne 0x140041164
jmp case.0x14003fd43.13
test ebx, 0x1e0
je case.0x14003fd43.13
mov rdx, rsi
mov rcx, rdi
call fcn.14003ecd0
mov rax, qword [rdi]
mov qword [rsp + 0x20], r14
mov r9, r12
mov r8d, r13d
mov rdx, qword [rbp - 0x38]
mov rcx, rdi
call qword [rax + reloc.WS2_32.dll_htonl]
jmp 0x1400411b7
mov qword [rsp + 0x20], r14
mov r9, r12
mov r8d, r13d
mov rdx, rsi
mov rcx, rdi
call fcn.14003d0e0
mov rcx, qword [rbp + 0x240]
xor rcx, rsp
call fcn.1400e17a0
add rsp, 0x358
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov ecx, 0x8007000e
call fcn.1400e0b70
nop
mov ecx, 0x8007000e
call fcn.1400e0b70
nop
mov ecx, 0x8007000e
call fcn.1400e0b70
int3