Function at 0x438100
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x248
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
mov ebx, ecx
push 1
mov dword [ebp - 0x2c], ebx
mov ecx, dword [edi + 0xc]
call fcn.0041e4b0
mov ecx, dword [edi + 0xc]
mov esi, eax
push 0x10
mov dword [ebp - 0xc], esi
call fcn.0041e4b0
test esi, esi
mov dword [ebp - 0x24], eax
mov esi, dword [ebp + 0x14]
jne 0x43813f
test eax, eax
je 0x43842f
push 0x11
mov dword [ebp - 4], 0
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ecx, 0x8000
test cx, ax
je 0x438173
mov ecx, dword [edi + 0xc]
push 2
call fcn.0041e4b0
mov dword [ebp - 4], eax
mov dword [ebp - 0xc], 0
mov dword [ebp - 0x24], 0
test esi, esi
je 0x43819f
mov ecx, dword [ebx + 0x70]
test ecx, ecx
jne 0x43818b
push dword [ebp + 0x18]
mov ecx, dword [ebx + 0x1c]
call fcn.00484150
jmp 0x438198
cmp ecx, 6
jne 0x438198
push edi
mov ecx, ebx
call fcn.0043b230
mov dword [ebx + 0x70], 0xc
mov ecx, dword [ebp + 0xc]
mov eax, ecx
mov ebx, dword [0x515c6c]
imul eax, ecx
cwde
test ecx, ecx
jle 0x4381b6
add ebx, eax
jmp 0x4381b8
sub ebx, eax
mov ecx, dword [ebp + 0x10]
mov eax, ecx
mov esi, dword [0x515c70]
imul eax, ecx
cwde
test ecx, ecx
jle 0x4381cf
add esi, eax
jmp 0x4381d1
sub esi, eax
cmp dword [ebp - 4], 0
mov dword [0x515c70], esi
je 0x4381e1
xor ebx, ebx
jmp 0x438210
mov eax, esi
cdq
mov ecx, eax
mov eax, ebx
xor ecx, edx
sub ecx, edx
cdq
xor eax, edx
sub eax, edx
xor edx, edx
add eax, eax
cmp eax, ecx
cmovl ebx, edx
add ecx, ecx
mov eax, ebx
cdq
xor eax, edx
sub eax, edx
xor edx, edx
cmp ecx, eax
cmovl esi, edx
mov dword [0x515c70], esi
mov dword [0x515c6c], ebx
mov eax, ebx
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x64
jg 0x438232
mov eax, esi
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x64
jle 0x4383bc
mov eax, esi
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x64
jle 0x438303
mov ebx, dword [ebp + 0x10]
xor ecx, ecx
test ebx, ebx
mov eax, 0x51eb851f
setg cl
imul esi
lea ecx, [ecx*2 - 1]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
imul ecx, eax
mov esi, ecx
shl esi, 4
sub esi, ecx
shl esi, 3
cmp esi, 0x7fff
jle 0x438280
mov esi, 0x7fff
jmp 0x43828e
cmp esi, 0xffff8001
mov eax, 0xffff8001
cmovl esi, eax
cmp dword [ebp - 0xc], 0
push esi
je 0x43829e
push 2
push 0x3e8
jmp 0x4382b8
cmp dword [ebp - 0x24], 0
push 0
je 0x4382b3
xor eax, eax
test esi, esi
setns al
inc eax
push eax
push 0
jmp 0x4382bb
push 0x3e9
push dword [edi + 0x10]
mov ecx, dword [edi + 0xc]
call fcn.00422000
mov eax, 0x88888889
xor ecx, ecx
imul esi
add edx, esi
mov esi, dword [0x515c70]
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
xor eax, edx
sub eax, edx
test ebx, ebx
mov ebx, dword [0x515c6c]
setle cl
lea ecx, [ecx*2 - 1]
imul eax, ecx
imul eax, eax, 0x64
add esi, eax
mov dword [0x515c70], esi
mov eax, ebx
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x64
jle 0x438216
xor ecx, ecx
mov eax, 0x51eb851f
cmp dword [ebp + 0xc], ecx
setle cl
imul ebx
lea ecx, [ecx*2 - 1]
sar edx, 5
mov eax, edx
mov dword [ebp - 0x28], ecx
shr eax, 0x1f
add eax, edx
imul eax, ecx
mov esi, eax
shl esi, 4
sub esi, eax
shl esi, 3
cmp esi, 0x7fff
jle 0x438352
mov esi, 0x7fff
jmp 0x438360
cmp esi, 0xffff8001
mov eax, 0xffff8001
cmovl esi, eax
cmp dword [ebp - 0xc], 0
mov ecx, dword [edi + 0xc]
push esi
je 0x438376
push 1
push 0x3e8
push dword [edi + 0x10]
jmp 0x438385
xor eax, eax
test esi, esi
push 0
setns al
add eax, 3
push eax
push 0
call fcn.00422000
mov eax, 0x88888889
mov ebx, dword [0x515c6c]
imul esi
add edx, esi
mov esi, dword [0x515c70]
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
xor eax, edx
sub eax, edx
imul eax, dword [ebp - 0x28]
imul eax, eax, 0x64
add ebx, eax
jmp 0x438210
mov ebx, dword [ebp - 0x2c]
cmp dword [ebx + 0x70], 0xc
jne 0x438420
cmp dword [ebp - 4], 0
je 0x4383f9
mov eax, dword [ebx + 0x1c]
push 0xa
push dword [eax + 0xb8]
call dword [sym.imp.USER32.dll_KillTimer]
mov eax, dword [ebx + 0x14]
mov ecx, 0x516884
push edi
push 6
push dword [eax + 0x44]
push edi
call fcn.00406280
mov dword [ebx + 0x70], 6
jmp 0x438420
push 0
push edi
push 0
push dword [0x516658]
call fcn.0043ac00
mov ecx, dword [0x517ce4]
push 0x102
call fcn.00482820
mov dword [ebx + 0x70], 0
mov ecx, dword [edi + 0xc]
call fcn.004261a0
test eax, eax
jne 0x438456
mov esi, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x10]
neg ecx
push ecx
push dword [ebp + 0xc]
mov dword [ebp + 0x10], ecx
mov ecx, dword [ebx + 0xc]
call fcn.004820c0
test eax, eax
je 0x438464
test esi, esi
je 0x438456
push dword [ebp + 0x18]
mov ecx, dword [ebx + 0x1c]
call fcn.00484150
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret 0x18
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 1
test esi, esi
je 0x438481
push dword [ebp + 0x18]
mov ecx, dword [ebx + 0x1c]
call fcn.00484150
lea eax, [ebp - 0x1c]
push eax
call fcn.0045fc40
mov ecx, dword [ebx + 0xc]
lea eax, [ebp - 0x20]
add esp, 4
push eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp + 8]
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.004808d0
mov edi, eax
mov dword [ebp - 4], edi
test edi, edi
je 0x438456
mov eax, dword [ebp - 0x20]
cmp ax, 6
je 0x438456
mov edx, dword [sym.imp.USER32.dll_GetParent]
cmp ax, 9
jne 0x43853e
mov eax, dword [ebp + 8]
xor ecx, ecx
xor esi, esi
mov dword [ebp + 0x18], 0
cmp edi, eax
cmove eax, ecx
mov ecx, dword [ebp - 0x10]
cmp edi, ecx
mov dword [ebp + 8], eax
cmove ecx, esi
mov dword [ebp - 0x10], ecx
test eax, eax
je 0x4384fa
push eax
call edx
mov ecx, dword [ebp - 0x10]
mov edx, dword [sym.imp.USER32.dll_GetParent]
mov dword [ebp + 0x18], eax
mov eax, dword [ebp + 8]
test ecx, ecx
je 0x438509
push ecx
call edx
mov ecx, dword [ebp - 0x10]
mov esi, eax
mov eax, dword [ebp + 8]
test eax, eax
je 0x438518
xor edx, edx
cmp dword [ebp + 0x18], edi
cmovne eax, edx
mov dword [ebp + 8], eax
test ecx, ecx
je 0x438527
cmp esi, edi
je 0x43852c
mov dword [ebp - 0x10], 0
xor ecx, ecx
mov dword [ebp + 0x10], ecx
mov edx, dword [ebp + 0xc]
xor ecx, ecx
test eax, eax
mov dword [ebp - 0x20], ecx
cmove edx, ecx
mov dword [ebp + 0xc], edx
jmp 0x43856f
cmp ax, 7
je 0x43855c
cmp ax, 8
je 0x43855c
cmp ax, 0xd
je 0x43855c
cmp ax, 1
je 0x43855c
cmp ax, 2
jne 0x43856c
lea eax, [ebp - 0x24]
mov ecx, ebx
push eax
push 1
call fcn.0043c790
mov dword [ebp - 0x28], eax
mov edx, dword [ebp + 0xc]
test edx, edx
jle 0x438583
mov ecx, edx
imul ecx, edx
movsx ecx, cx
add dword [0x515c74], ecx
jmp 0x43858f
mov eax, edx
imul eax, edx
cwde
sub dword [0x515c74], eax
mov esi, dword [ebp + 0x10]
mov eax, esi
imul eax, esi
cwde
test esi, esi
jle 0x4385a4
add dword [0x515c78], eax
jmp 0x4385aa
sub dword [0x515c78], eax
push 0x11
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ecx, 0x8000
test cx, ax
je 0x4385c8
mov dword [0x515c74], 0
jmp 0x438610
mov edi, dword [0x515c78]
mov eax, edi
mov ecx, dword [0x515c74]
cdq
mov esi, eax
mov eax, ecx
xor esi, edx
sub esi, edx
cdq
xor eax, edx
sub eax, edx
xor edx, edx
add eax, eax
cmp eax, esi
cmovl ecx, edx
mov eax, ecx
mov dword [0x515c74], ecx
cdq
lea ecx, [esi + esi]
mov esi, dword [ebp + 0x10]
xor eax, edx
sub eax, edx
xor edx, edx
cmp ecx, eax
cmovl edi, edx
mov dword [0x515c78], edi
mov edi, dword [ebp - 4]
push 0x100
lea eax, [ebp - 0x248]
push eax
push edi
call dword [sym.imp.USER32.dll_GetClassNameW]
cmp word [ebp - 0x20], 1
je 0x438655
push str.Chrome_WidgetWin_0
lea eax, [ebp - 0x248]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
je 0x438655
mov eax, dword [ebp + 0xc]
xor ecx, ecx
cdq
xor eax, edx
sub eax, edx
cmp eax, 9
setg cl
mov dword [ebp - 0xc], ecx
jmp 0x43865c
mov dword [ebp - 0xc], 0
mov eax, esi
xor ecx, ecx
cdq
xor eax, edx
sub eax, edx
mov edx, 0x640
cmp eax, 9
mov eax, 0x64
setg cl
cmp dword [ebp - 0xc], 0
mov dword [ebp - 8], ecx
cmovne eax, edx
mov dword [ebp + 0x18], eax
test ecx, ecx
je 0x4386df
mov dword [ebp + 0x14], edx
mov esi, dword [0x515c78]
cmp dword [ebp - 0xc], 0
jne 0x4386be
cmp dword [0x515c7c], 0
jle 0x4386be
mov ecx, dword [0x515c74]
mov eax, ecx
cdq
xor eax, edx
sub eax, edx
xor edx, edx
cmp eax, 0xc8
cmovg ecx, edx
mov dword [0x515c74], ecx
mov ecx, dword [ebp - 8]
test ecx, ecx
je 0x43870e
mov ecx, dword [ebp + 0x14]
mov eax, esi
cdq
xor eax, edx
movsx ecx, cx
sub eax, edx
cmp eax, ecx
jle 0x43870e
mov dword [0x515c80], 5
jmp 0x43871d
cmp dword [0x515c80], 0
mov dword [ebp + 0x14], 0x64
jle 0x438689
mov esi, dword [0x515c78]
mov eax, esi
cdq
xor eax, edx
sub eax, edx
xor edx, edx
cmp eax, 0xc8
cmovg esi, edx
mov dword [0x515c78], esi
jmp 0x43868f
mov eax, dword [0x515c80]
test eax, eax
jle 0x43871d
dec eax
mov dword [0x515c80], eax
cmp dword [ebp - 0xc], 0
je 0x438743
mov eax, dword [0x515c74]
cdq
xor eax, edx
sub eax, edx
mov edx, dword [ebp + 0x18]
movsx ecx, dx
cmp eax, ecx
jle 0x438746
mov dword [0x515c7c], 5
jmp 0x438755
mov edx, dword [ebp + 0x18]
mov eax, dword [0x515c7c]
test eax, eax
jle 0x438755
dec eax
mov dword [0x515c7c], eax
mov eax, dword [ebp - 0x20]
cmp ax, 7
je 0x438764
cmp ax, 8
jne 0x43876e
mov dword [0x515c74], 0
movsx ecx, dx
mov dword [ebp + 0x18], ecx
jmp case.default.0x4388d1
mov ecx, dword [ebp + 0x18]
lea esp, [esp]
mov eax, dword [0x515c74]
cdq
xor eax, edx
sub eax, edx
cmp eax, ecx
jg 0x4387a6
mov ecx, dword [ebp + 0x14]
mov eax, esi
cdq
xor eax, edx
movsx ecx, cx
sub eax, edx
cmp eax, ecx
jle 0x4395a4
mov ecx, dword [ebp + 0x18]
movsx eax, word [ebp - 0x20]
mov edx, 1
cmp eax, 0xc
ja case.0x4387bf.1
movzx eax, byte [eax + 0x439960]
jmp dword [eax*4 + 0x43994c]
cmp dword [0x515c74], ecx
jle 0x4387d2
push 0
jmp 0x4387e0
mov eax, ecx
neg eax
cmp dword [0x515c74], eax
jge 0x4387f3
push 1
push 1
push edi
call fcn.00434b30
mov esi, dword [0x515c78]
mov edx, eax
add esp, 0xc
mov eax, dword [ebp + 0x14]
cwde
cmp esi, eax
jle 0x438805
push 0
push 0
push edi
jmp 0x4388a9
neg eax
cmp esi, eax
jge 0x4388b9
push 1
push 0
push edi
jmp 0x4388a9
cmp dword [0x515c74], ecx
jle 0x438825
push 0
jmp 0x438833
mov eax, ecx
neg eax
cmp dword [0x515c74], eax
jge 0x438848
push 1
push 1
push dword [ebp + 8]
call fcn.00434b30
mov esi, dword [0x515c78]
mov edx, eax
add esp, 0xc
mov eax, dword [ebp + 0x14]
cwde
cmp esi, eax
jle 0x438859
push 0
push 0
push dword [ebp - 0x10]
jmp 0x4388a9
neg eax
cmp esi, eax
jge 0x4388b9
push 1
push 0
push dword [ebp - 0x10]
jmp 0x4388a9
cmp dword [0x515c74], ecx
jle 0x438877
push 0
push 1
push edi
jmp 0x4388a9
mov eax, ecx
neg eax
cmp dword [0x515c74], eax
jge case.0x4387bf.1
push 1
push 1
push edi
jmp 0x4388a9
cmp dword [0x515c74], ecx
jle 0x438896
push 0
jmp 0x4388a4
mov eax, ecx
neg eax
cmp dword [0x515c74], eax
jge case.0x4387bf.1
push 1
push 1
push dword [ebp + 8]
call fcn.00434b30
mov esi, dword [0x515c78]
mov edx, eax
add esp, 0xc
test edx, edx
je 0x43992d
movsx eax, word [ebp - 0x20]
mov ecx, dword [ebp + 0x18]
cmp eax, 0xf
ja case.default.0x4388d1
jmp dword [eax*4 + 0x439970]
mov eax, dword [ebp + 0x14]
movsx ecx, ax
cmp esi, ecx
jg 0x4388ea
mov eax, ecx
neg eax
cmp esi, eax
jge 0x43893d
mov eax, esi
or esi, 0xffffffff
cdq
idiv ecx
cmp dword [ebp - 8], 0
mov ecx, ebx
mov edi, eax
mov eax, 0xfffffff0
push 0x102
cmovne esi, eax
call fcn.0043c4e0
imul esi, edi
push 0
push esi
push 0
push 0
push 0x800
call fcn.004825a0
mov ecx, dword [ebp + 0x14]
add esp, 0x14
mov esi, dword [0x515c78]
movsx eax, cx
imul edi, eax
sub esi, edi
mov edi, dword [ebp - 4]
mov dword [0x515c78], esi
mov ecx, dword [ebp + 0x18]
cmp dword [0x515c74], ecx
jle 0x43897d
push 0x10f
mov ecx, ebx
call fcn.0043c4e0
push 0
push 0x78
push 0
push 0
push 0x1000
call fcn.004825a0
mov ecx, dword [ebp + 0x18]
add esp, 0x14
sub dword [0x515c74], ecx
mov esi, dword [0x515c78]
jmp case.default.0x4388d1
mov eax, ecx
neg eax
cmp dword [0x515c74], eax
jge case.default.0x4388d1
push 0x10f
mov ecx, ebx
call fcn.0043c4e0
push 0
push 0xffffffffffffff88
push 0
push 0
push 0x1000
call fcn.004825a0
mov ecx, dword [ebp + 0x18]
add esp, 0x14
add dword [0x515c74], ecx
mov esi, dword [0x515c78]
jmp case.default.0x4388d1
mov eax, dword [ebp + 0x14]
movsx ecx, ax
cmp esi, ecx
jle 0x438a11
mov eax, esi
or esi, 0xffffffff
cdq
idiv ecx
cmp dword [ebp - 8], 0
mov ecx, ebx
mov edi, eax
mov eax, 0xfffffff0
push 0x102
cmovne esi, eax
call fcn.0043c4e0
mov ecx, dword [ebx + 0xc]
lea eax, [ebp - 0x1c]
push 0
imul esi, edi
push eax
push esi
push dword [ebp - 4]
call fcn.00482120
mov eax, dword [ebp + 0x14]
movsx ecx, ax
imul edi, ecx
jmp 0x438bab
neg ecx
cmp esi, ecx
mov ecx, dword [ebp + 0x18]
jmp 0x438b5f
mov eax, dword [ebp + 0x14]
movsx ecx, ax
cmp esi, ecx
jle 0x438a6c
mov eax, esi
or esi, 0xffffffff
cdq
idiv ecx
cmp dword [ebp - 8], 0
mov ecx, ebx
mov edi, eax
mov eax, 0xfffffff0
push 0x102
cmovne esi, eax
call fcn.0043c4e0
mov ecx, dword [ebx + 0xc]
lea eax, [ebp - 0x1c]
push 0
imul esi, edi
push eax
push esi
push dword [ebp - 4]
call fcn.00482070
mov eax, dword [ebp + 0x14]
movsx ecx, ax
imul edi, ecx
jmp 0x438bab
neg ecx
cmp esi, ecx
mov ecx, dword [ebp + 0x18]
jge case.default.0x4388d1
mov eax, esi
mov esi, dword [ebp + 0x14]
movsx ecx, si
or esi, 0xffffffff
cdq
idiv ecx
cmp dword [ebp - 8], 0
mov ecx, ebx
mov edi, eax
mov eax, 0xfffffff0
push 0x102
cmovne esi, eax
call fcn.0043c4e0
mov ecx, dword [ebx + 0xc]
lea eax, [ebp - 0x1c]
push 0
imul esi, edi
push eax
push esi
push dword [ebp - 4]
call fcn.00482070
jmp 0x438ba2
mov ecx, dword [ebp + 0x18]
cmp dword [0x515c74], ecx
jle 0x438afb
push 0x10f
mov ecx, ebx
call fcn.0043c4e0
push 0x14d0001
push 0x27
push 0x100
push edi
mov ecx, 0x515d60
call fcn.00466880
mov esi, dword [ebp + 0x18]
sub dword [0x515c74], esi
push 0x14d0001
push 0x27
jmp 0x438b3a
mov eax, ecx
neg eax
cmp dword [0x515c74], eax
jge 0x438b53
push 0x10f
mov ecx, ebx
call fcn.0043c4e0
push 0x14b0001
push 0x25
push 0x100
push edi
mov ecx, 0x515d60
call fcn.00466880
mov esi, dword [ebp + 0x18]
add dword [0x515c74], esi
push 0x14b0001
push 0x25
push 0x101
push edi
mov ecx, 0x515d60
call fcn.00466610
mov ecx, dword [ebp + 0x18]
mov esi, dword [0x515c78]
mov eax, dword [ebp + 0x14]
cwde
cmp esi, eax
jg 0x438b65
neg eax
cmp esi, eax
jge case.default.0x4388d1
mov eax, esi
mov esi, dword [ebp + 0x14]
movsx ecx, si
or esi, 0xffffffff
cdq
idiv ecx
cmp dword [ebp - 8], 0
mov ecx, ebx
mov edi, eax
mov eax, 0xfffffff0
push 0x102
cmovne esi, eax
call fcn.0043c4e0
mov ecx, dword [ebx + 0xc]
lea eax, [ebp - 0x1c]
push 0
imul esi, edi
push eax
push esi
push dword [ebp - 4]
call fcn.00482120
mov ecx, dword [ebp + 0x14]
movsx eax, cx
imul edi, eax
mov esi, dword [0x515c78]
sub esi, edi
mov edi, dword [ebp - 4]
mov dword [0x515c78], esi
jmp case.0x4388d1.4
mov ecx, dword [ebp + 0x18]
cmp dword [0x515c74], ecx
jle 0x438c06
push 0x10f
mov ecx, ebx
call fcn.0043c4e0
push dword [ebp + 8]
xor eax, eax
mov ecx, 0x515d60
cmp dword [ebp - 0xc], eax
setne al
lea eax, [eax*2 + 1]
push eax
push 0x114
push edi
call fcn.00466880
mov ecx, dword [ebp + 0x18]
sub dword [0x515c74], ecx
jmp 0x438c45
mov eax, ecx
neg eax
cmp dword [0x515c74], eax
jge 0x438c4b
push 0x10f
mov ecx, ebx
call fcn.0043c4e0
mov eax, dword [ebp - 0xc]
mov ecx, 0x515d60
push dword [ebp + 8]
neg eax
sbb eax, eax
and eax, 2
push eax
push 0x114
push edi
call fcn.00466880
mov ecx, dword [ebp + 0x18]
add dword [0x515c74], ecx
mov esi, dword [0x515c78]
mov eax, dword [ebp + 0x14]
cwde
cmp esi, eax
jle 0x438c9b
push 0x102
mov ecx, ebx
call fcn.0043c4e0
push dword [ebp - 0x10]
xor eax, eax
mov ecx, 0x515d60
cmp dword [ebp - 8], eax
setne al
lea eax, [eax*2 + 1]
push eax
push 0x115
push edi
call fcn.00466880
mov esi, dword [0x515c78]
mov ecx, dword [ebp + 0x14]
movsx eax, cx
sub esi, eax
mov dword [0x515c78], esi
jmp case.0x4388d1.4
neg eax
cmp esi, eax
jge case.default.0x4388d1
push 0x102
mov ecx, ebx
call fcn.0043c4e0
mov eax, dword [ebp - 8]
mov ecx, 0x515d60
push dword [ebp - 0x10]
neg eax
sbb eax, eax
and eax, 2
push eax
push 0x115
push edi
call fcn.00466880
mov esi, dword [0x515c78]
mov ecx, dword [ebp + 0x14]
movsx eax, cx
add esi, eax
mov dword [0x515c78], esi
jmp case.0x4388d1.4
mov ecx, dword [ebp + 0x18]
cmp dword [0x515c74], ecx
jle 0x438d2d
push 0x10f
mov ecx, ebx
call fcn.0043c4e0
push dword [ebp + 8]
xor eax, eax
mov ecx, 0x515d60
cmp dword [ebp - 0xc], eax
setne al
lea eax, [eax*2 + 1]
push eax
push 0x114
push edi
call fcn.00466610
mov ecx, dword [ebp + 0x18]
sub dword [0x515c74], ecx
jmp 0x438d6c
mov eax, ecx
neg eax
cmp dword [0x515c74], eax
jge 0x438d72
push 0x10f
mov ecx, ebx
call fcn.0043c4e0
mov eax, dword [ebp - 0xc]
mov ecx, 0x515d60
push dword [ebp + 8]
neg eax
sbb eax, eax
and eax, 2
push eax
push 0x114
push edi
call fcn.00466610
mov ecx, dword [ebp + 0x18]
add dword [0x515c74], ecx
mov esi, dword [0x515c78]
mov eax, dword [ebp + 0x14]
cwde
cmp esi, eax
jle 0x438dc2
push 0x102
mov ecx, ebx
call fcn.0043c4e0
push dword [ebp - 0x10]
xor eax, eax
mov ecx, 0x515d60
cmp dword [ebp - 8], eax
setne al
lea eax, [eax*2 + 1]
push eax
push 0x115
push edi
call fcn.00466610
mov esi, dword [0x515c78]
mov ecx, dword [ebp + 0x14]
movsx eax, cx
sub esi, eax
mov dword [0x515c78], esi
jmp case.0x4388d1.4
neg eax
cmp esi, eax
jge case.default.0x4388d1
push 0x102
mov ecx, ebx
call fcn.0043c4e0
mov eax, dword [ebp - 8]
mov ecx, 0x515d60
push dword [ebp - 0x10]
neg eax
sbb eax, eax
and eax, 2
push eax
push 0x115
push edi
call fcn.00466610
mov esi, dword [0x515c78]
mov ecx, dword [ebp + 0x14]
movsx eax, cx
add esi, eax
mov dword [0x515c78], esi
jmp case.0x4388d1.4
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_GetParent]
mov ecx, dword [0x515c74]
mov edi, eax
mov esi, dword [ebp + 0x18]
cmp ecx, esi
jle 0x438e5e
push 0x10f
mov ecx, ebx
call fcn.0043c4e0
push dword [ebp + 8]
xor eax, eax
mov ecx, 0x515d60
cmp dword [ebp - 0xc], eax
setne al
lea eax, [eax*2 + 1]
push eax
push 0x114
push edi
call fcn.00466880
sub dword [0x515c74], esi
jmp 0x438e96
mov eax, esi
neg eax
cmp ecx, eax
jge 0x438e96
push 0x10f
mov ecx, ebx
call fcn.0043c4e0
mov eax, dword [ebp - 0xc]
mov ecx, 0x515d60
push dword [ebp + 8]
neg eax
sbb eax, eax
and eax, 2
push eax
push 0x114
push edi
call fcn.00466880
add dword [0x515c74], esi
push dword [ebp - 0x10]
call dword [sym.imp.USER32.dll_GetParent]
mov esi, dword [0x515c78]
mov edi, eax
mov eax, dword [ebp + 0x14]
cwde
mov dword [ebp - 4], edi
cmp esi, eax
jle 0x438efa
push 0x102
mov ecx, ebx
call fcn.0043c4e0
push dword [ebp - 0x10]
xor eax, eax
mov ecx, 0x515d60
cmp dword [ebp - 8], eax
setne al
lea eax, [eax*2 + 1]
push eax
push 0x115
push edi
call fcn.00466880
mov esi, dword [0x515c78]
mov ecx, dword [ebp + 0x14]
movsx eax, cx
sub esi, eax
mov dword [0x515c78], esi
jmp case.0x4388d1.4
neg eax
cmp esi, eax
jge case.0x4388d1.4
push 0x102
mov ecx, ebx
call fcn.0043c4e0
mov eax, dword [ebp - 8]
mov ecx, 0x515d60
push dword [ebp - 0x10]
neg eax
sbb eax, eax
and eax, 2
push eax
push 0x115
push edi
call fcn.00466880
mov esi, dword [0x515c78]
mov ecx, dword [ebp + 0x14]
movsx eax, cx
add esi, eax
mov dword [0x515c78], esi
jmp case.0x4388d1.4
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_GetParent]
mov ecx, dword [0x515c74]
mov edi, eax
mov esi, dword [ebp + 0x18]
cmp ecx, esi
jle 0x438f96
push 0x10f
mov ecx, ebx
call fcn.0043c4e0
push dword [ebp + 8]
xor eax, eax
mov ecx, 0x515d60
cmp dword [ebp - 0xc], eax
setne al
lea eax, [eax*2 + 1]
push eax
push 0x114
push edi
call fcn.00466610
sub dword [0x515c74], esi
jmp 0x438fce
mov eax, esi
neg eax
cmp ecx, eax
jge 0x438fce
push 0x10f
mov ecx, ebx
call fcn.0043c4e0
mov eax, dword [ebp - 0xc]
mov ecx, 0x515d60
push dword [ebp + 8]
neg eax
sbb eax, eax
and eax, 2
push eax
push 0x114
push edi
call fcn.00466610
add dword [0x515c74], esi
push dword [ebp - 0x10]
call dword [sym.imp.USER32.dll_GetParent]
mov esi, dword [0x515c78]
mov edi, eax
mov eax, dword [ebp + 0x14]
cwde
mov dword [ebp - 4], edi
cmp esi, eax
jle 0x439032
push 0x102
mov ecx, ebx
call fcn.0043c4e0
push dword [ebp - 0x10]
xor eax, eax
mov ecx, 0x515d60
cmp dword [ebp - 8], eax
setne al
lea eax, [eax*2 + 1]
push eax
push 0x115
push edi
call fcn.00466610
mov esi, dword [0x515c78]
mov ecx, dword [ebp + 0x14]
movsx eax, cx
sub esi, eax
mov dword [0x515c78], esi
jmp case.0x4388d1.4
neg eax
cmp esi, eax
jge case.0x4388d1.4
push 0x102
mov ecx, ebx
call fcn.0043c4e0
mov eax, dword [ebp - 8]
mov ecx, 0x515d60
push dword [ebp - 0x10]
neg eax
sbb eax, eax
and eax, 2
push eax
push 0x115
push edi
call fcn.00466610
mov esi, dword [0x515c78]
mov ecx, dword [ebp + 0x14]
movsx eax, cx
add esi, eax
mov dword [0x515c78], esi
jmp case.0x4388d1.4
mov ecx, dword [ebp + 0x18]
cmp dword [0x515c74], ecx
jle 0x4390b8
push 0x10f
mov ecx, ebx
call fcn.0043c4e0
push 0x14d0001
push 0x27
push 0x100
push edi
mov ecx, 0x515d60
call fcn.00466880
mov ecx, dword [ebp + 0x18]
sub dword [0x515c74], ecx
jmp 0x4390f0
mov eax, ecx
neg eax
cmp dword [0x515c74], eax
jge 0x4390f6
push 0x10f
mov ecx, ebx
call fcn.0043c4e0
push 0x14b0001
push 0x25
push 0x100
push edi
mov ecx, 0x515d60
call fcn.00466880
mov ecx, dword [ebp + 0x18]
add dword [0x515c74], ecx
mov esi, dword [0x515c78]
mov eax, dword [ebp + 0x14]
cwde
cmp esi, eax
jle 0x43913a
push 0x102
mov ecx, ebx
call fcn.0043c4e0
push 0x1500001
push 0x28
push 0x100
push edi
mov ecx, 0x515d60
call fcn.00466880
mov esi, dword [0x515c78]
mov ecx, dword [ebp + 0x14]
movsx eax, cx
sub esi, eax
mov dword [0x515c78], esi
jmp case.0x4388d1.4
neg eax
cmp esi, eax
jge case.default.0x4388d1
push 0x102
mov ecx, ebx
call fcn.0043c4e0
push 0x1480001
push 0x26
push 0x100
push edi
mov ecx, 0x515d60
call fcn.00466880
mov esi, dword [0x515c78]
mov ecx, dword [ebp + 0x14]
movsx eax, cx
add esi, eax
mov dword [0x515c78], esi
jmp case.0x4388d1.4
mov eax, dword [0x515c74]
mov ecx, dword [ebp + 0x18]
cdq
xor eax, edx
mov dword [ebp - 0x48], 1
sub eax, edx
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x38], 0
cmp eax, ecx
jle 0x4390f6
push 0x1c
lea eax, [ebp - 0x48]
mov dword [ebp - 0x44], 0x11
push eax
push 1
mov ecx, 0x515d60
mov dword [ebp - 0x40], 0
call fcn.00466780
mov esi, dword [ebp + 0x18]
xor eax, eax
cmp dword [0x515c74], esi
mov ecx, 0x515d60
push 0x1c
setg al
lea eax, [eax*2 + 0x25]
mov word [ebp - 0x44], ax
xor eax, eax
mov word [ebp - 0x42], ax
mov dword [ebp - 0x40], eax
lea eax, [ebp - 0x48]
push eax
push 1
call fcn.00466780
xor eax, eax
mov dword [ebp - 0x40], 2
cmp dword [0x515c74], esi
mov ecx, 0x515d60
push 0x1c
setg al
lea eax, [eax*2 + 0x25]
mov word [ebp - 0x44], ax
xor eax, eax
mov word [ebp - 0x42], ax
lea eax, [ebp - 0x48]
push eax
push 1
call fcn.00466780
push 0x1c
lea eax, [ebp - 0x48]
mov dword [ebp - 0x44], 0x11
push eax
push 1
mov ecx, 0x515d60
mov dword [ebp - 0x40], 2
call fcn.00466780
mov ecx, esi
cmp dword [0x515c74], ecx
jle 0x439276
push 0x10f
mov ecx, ebx
call fcn.0043c4e0
mov ecx, esi
sub dword [0x515c74], ecx
jmp 0x4390f0
mov eax, ecx
neg eax
cmp dword [0x515c74], eax
jge 0x4390f0
push 0x10f
mov ecx, ebx
call fcn.0043c4e0
jmp 0x4390e7
mov ecx, dword [ebp + 0x18]
cmp dword [0x515c74], ecx
jle 0x4392dc
push 0x10f
mov ecx, ebx
call fcn.0043c4e0
push dword [ebp + 8]
xor eax, eax
mov ecx, 0x515d60
cmp dword [ebp - 0xc], eax
setne al
lea eax, [eax*2 + 1]
push eax
push 0x114
push edi
call fcn.00466880
mov ecx, dword [ebp + 0x18]
sub dword [0x515c74], ecx
jmp 0x43931b
mov eax, ecx
neg eax
cmp dword [0x515c74], eax
jge 0x439321
push 0x10f
mov ecx, ebx
call fcn.0043c4e0
mov eax, dword [ebp - 0xc]
mov ecx, 0x515d60
push dword [ebp + 8]
neg eax
sbb eax, eax
and eax, 2
push eax
push 0x114
push edi
call fcn.00466880
mov ecx, dword [ebp + 0x18]
add dword [0x515c74], ecx
mov esi, dword [0x515c78]
mov eax, dword [ebp + 0x14]
cwde
cmp esi, eax
jle 0x439396
mov eax, esi
mov esi, dword [ebp + 0x14]
movsx ecx, si
or esi, 0xffffffff
cdq
idiv ecx
cmp dword [ebp - 8], 0
mov ecx, ebx
mov dword [ebp - 0x14], eax
mov eax, 0xfffffff0
push 0x102
cmovne esi, eax
call fcn.0043c4e0
push 0x11
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
imul esi, dword [ebp - 0x14]
test ax, ax
mov ecx, dword [ebx + 0xc]
lea eax, [ebp - 0x1c]
jns 0x43936d
push 8
jmp 0x43936f
push 0
push eax
push esi
push edi
call fcn.00482120
mov edx, dword [ebp + 0x14]
mov ecx, dword [ebp - 0x14]
mov esi, dword [0x515c78]
movsx eax, dx
imul ecx, eax
sub esi, ecx
mov dword [0x515c78], esi
jmp case.0x4388d1.4
neg eax
cmp esi, eax
jge case.default.0x4388d1
jmp 0x439329
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_GetParent]
mov ecx, dword [ebp + 0x18]
mov esi, eax
cmp dword [0x515c74], ecx
jle 0x4393f2
push 0x10f
mov ecx, ebx
call fcn.0043c4e0
push dword [ebp + 8]
xor ecx, ecx
cmp dword [ebp - 0xc], ecx
setne cl
lea ecx, [ecx*2 + 1]
push ecx
push 0x114
push esi
mov ecx, 0x515d60
call fcn.00466610
mov ecx, dword [ebp + 0x18]
sub dword [0x515c74], ecx
jmp 0x439431
mov eax, ecx
neg eax
cmp dword [0x515c74], eax
jge 0x439431
push 0x10f
mov ecx, ebx
call fcn.0043c4e0
mov eax, dword [ebp - 0xc]
mov ecx, 0x515d60
push dword [ebp + 8]
neg eax
sbb eax, eax
and eax, 2
push eax
push 0x114
push esi
call fcn.00466610
mov ecx, dword [ebp + 0x18]
add dword [0x515c74], ecx
mov eax, dword [ebp + 0x14]
mov esi, dword [0x515c78]
cwde
cmp esi, eax
jle 0x4394ac
mov eax, esi
mov esi, dword [ebp + 0x14]
movsx ecx, si
or esi, 0xffffffff
cdq
idiv ecx
cmp dword [ebp - 8], 0
mov ecx, ebx
mov dword [ebp - 0x14], eax
mov eax, 0xfffffff0
push 0x102
cmovne esi, eax
call fcn.0043c4e0
push 0x11
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
imul esi, dword [ebp - 0x14]
test ax, ax
mov ecx, dword [ebx + 0xc]
lea eax, [ebp - 0x1c]
jns 0x439483
push 8
jmp 0x439485
push 0
push eax
push esi
push edi
call fcn.00482070
mov edx, dword [ebp + 0x14]
mov ecx, dword [ebp - 0x14]
mov esi, dword [0x515c78]
movsx eax, dx
imul ecx, eax
sub esi, ecx
mov dword [0x515c78], esi
jmp case.0x4388d1.4
neg eax
cmp esi, eax
jge case.default.0x4388d1
jmp 0x43943f
mov edx, dword [0x515c74]
mov ecx, dword [ebp + 0x18]
cmp edx, ecx
jg 0x4394cd
mov eax, ecx
neg eax
cmp edx, eax
jge 0x43953c
mov eax, dword [0x515c74]
mov edi, 1
cdq
idiv ecx
cmp dword [ebp - 0xc], 0
movzx esi, word [ebp - 0x18]
mov ebx, eax
movzx ecx, word [ebp - 0x1c]
mov eax, 0x10
cmovne edi, eax
shl esi, 0x10
or esi, ecx
mov ecx, dword [ebp - 0x2c]
push 0x10f
call fcn.0043c4e0
imul ebx, edi
mov edi, dword [ebp - 4]
push esi
mov eax, ebx
shl eax, 4
sub eax, ebx
shl eax, 3
movzx eax, ax
shl eax, 0x10
push eax
push 0x20e
push edi
call dword [sym.imp.USER32.dll_SendMessageW]
mov esi, dword [0x515c78]
mov ebx, dword [ebp - 0x2c]
mov ecx, dword [ebp + 0x18]
mov dword [0x515c74], 0
mov eax, dword [ebp + 0x14]
cwde
cmp esi, eax
jle 0x438b5b
mov eax, esi
mov esi, dword [ebp + 0x14]
movsx ecx, si
or esi, 0xffffffff
cdq
idiv ecx
cmp dword [ebp - 8], 0
mov ecx, ebx
mov edi, eax
mov eax, 0xfffffff0
push 0x102
cmovne esi, eax
call fcn.0043c4e0
mov ecx, dword [ebx + 0xc]
lea eax, [ebp - 0x1c]
push 0
imul esi, edi
push eax
push esi
push dword [ebp - 4]
call fcn.00482120
mov ecx, dword [ebp + 0x14]
mov esi, dword [0x515c78]
movsx eax, cx
imul edi, eax
sub esi, edi
mov edi, dword [ebp - 4]
mov dword [0x515c78], esi
jmp case.0x4388d1.4
cmp dword [ebp - 0x28], 0
je 0x4395b6
push 0
push dword [ebp - 0x24]
mov ecx, ebx
call fcn.0043c790
mov ecx, dword [0x517ce4]
push 0x102
call fcn.00482820
mov eax, dword [ebp - 0x20]
cmp ax, 1
jne 0x439743
mov esi, dword [0x515c78]
xor ebx, ebx
cmp esi, 0x64
jle 0x4395ff
lea ecx, [esi - 0x65]
mov eax, 0x51eb851f
mul ecx
shr edx, 5
inc edx
imul eax, edx, 0xffffff9c
add esi, eax
imul ecx, edx, 0xffffff88
mov dword [0x515c78], esi
movzx ebx, cx
cmp esi, 0xffffff9c
jge 0x43962b
mov ecx, 0xffffff9b
mov eax, 0x51eb851f
sub ecx, esi
mul ecx
shr edx, 5
inc edx
imul eax, edx, 0x64
add esi, eax
mov eax, edx
shl eax, 4
sub eax, edx
mov dword [0x515c78], esi
lea ebx, [ebx + eax*8]
test bx, bx
je 0x4396d4
mov eax, dword [0x515c88]
xor esi, esi
test al, 1
jne 0x439654
or eax, 1
push 0x17
mov dword [0x515c88], eax
call dword [sym.imp.USER32.dll_GetSystemMetrics]
mov dword [0x515c84], eax
push 0x11
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
mov ecx, 8
push 0x10
cmovne esi, ecx
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x439677
or esi, 4
push 1
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x439692
xor eax, eax
cmp dword [0x515c84], eax
setne al
inc eax
or esi, eax
push 2
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x4396ad
mov eax, dword [0x515c84]
neg eax
sbb eax, eax
add eax, 2
or esi, eax
movsx ecx, word [ebp - 0x18]
movsx eax, word [ebp - 0x1c]
shl ecx, 0x10
or ecx, eax
movsx eax, bx
push ecx
shl eax, 0x10
mov ecx, 0x515d60
or eax, esi
push eax
push 0x20a
push edi
call fcn.00466880
mov ecx, dword [0x515c74]
mov eax, ecx
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x64
jle 0x438456
lea ebx, [ebx]
cmp ecx, 0x64
jle 0x4396ff
mov eax, 0x27
sub ecx, 0x64
jmp 0x439707
mov eax, 0x25
add ecx, 0x64
push 0x14d0001
push eax
push 0x100
mov dword [0x515c74], ecx
mov ecx, 0x515d60
push edi
call fcn.00466880
mov ecx, dword [0x515c74]
mov eax, ecx
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x64
jg 0x4396f0
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret 0x18
cmp ax, 4
jne 0x439797
mov ecx, dword [ebp + 0x10]
test ecx, ecx
je 0x439767
mov eax, ecx
imul eax, ecx
test ecx, ecx
jns 0x43975b
neg eax
mov ecx, dword [ebx + 0xc]
push 0
push eax
push edi
call fcn.00480660
mov ecx, dword [ebp + 0xc]
test ecx, ecx
je 0x438456
mov eax, ecx
imul eax, ecx
test ecx, ecx
jns 0x43977d
neg eax
mov ecx, dword [ebx + 0xc]
push 1
push eax
push edi
call fcn.00480660
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret 0x18
mov eax, dword [ebp + 0xc]
xor ebx, ebx
cdq
mov ecx, 0x640
xor eax, edx
sub eax, edx
cmp eax, 9
mov eax, 0x64
mov esi, eax
setg bl
test ebx, ebx
push str.Chrome_WidgetWin_0
cmovne esi, ecx
cmp dword [ebp - 8], 0
cmovne eax, ecx
mov dword [ebp + 0x10], eax
lea eax, [ebp - 0x248]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
neg eax
sbb eax, eax
and eax, ebx
mov ebx, dword [ebp + 0x10]
mov dword [ebp + 0xc], eax
mov eax, dword [0x515c74]
cdq
xor eax, edx
sub eax, edx
cmp eax, esi
jg 0x439800
mov eax, dword [0x515c78]
cdq
xor eax, edx
sub eax, edx
cmp eax, ebx
jle 0x438456
mov ecx, 1
cmp dword [0x515c74], esi
jle 0x439811
push 0
jmp 0x43981f
mov eax, esi
neg eax
cmp dword [0x515c74], eax
jge 0x43982c
push 1
push 1
push edi
call fcn.00434b30
mov ecx, eax
add esp, 0xc
cmp dword [0x515c78], ebx
jle 0x439838
push 0
jmp 0x439846
mov eax, ebx
neg eax
cmp dword [0x515c78], eax
jge 0x439853
push 1
push 0
push edi
call fcn.00434b30
mov ecx, eax
add esp, 0xc
test ecx, ecx
je 0x43993f
cmp dword [0x515c74], esi
jle 0x43988e
push dword [ebp + 8]
xor eax, eax
mov ecx, 0x515d60
cmp dword [ebp + 0xc], eax
setne al
lea eax, [eax*2 + 1]
push eax
push 0x114
push edi
call fcn.00466880
sub dword [0x515c74], esi
jmp 0x4398be
mov eax, esi
neg eax
cmp dword [0x515c74], eax
jge 0x4398be
mov eax, dword [ebp + 0xc]
mov ecx, 0x515d60
push dword [ebp + 8]
neg eax
sbb eax, eax
and eax, 2
push eax
push 0x114
push edi
call fcn.00466880
add dword [0x515c74], esi
cmp dword [0x515c78], ebx
jle 0x4398f4
push dword [ebp - 0x10]
xor eax, eax
mov ecx, 0x515d60
cmp dword [ebp - 8], eax
setne al
lea eax, [eax*2 + 1]
push eax
push 0x115
push edi
call fcn.00466880
sub dword [0x515c78], ebx
jmp 0x4397e0
mov eax, ebx
neg eax
cmp dword [0x515c78], eax
jge 0x4397e0
mov eax, dword [ebp - 8]
mov ecx, 0x515d60
push dword [ebp - 0x10]
neg eax
sbb eax, eax
and eax, 2
push eax
push 0x115
push edi
call fcn.00466880
add dword [0x515c78], ebx
jmp 0x4397e0
cmp dword [ebp - 0x28], 0
je 0x43993f
push 0
push dword [ebp - 0x24]
mov ecx, ebx
call fcn.0043c790
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 0x18