Function at 0x1020b6e
Capabilities:
Swap mouse buttons

Disassembly:
push 0x34
push 0x1038e48
call fcn.01011b8c
mov dword [ebp - 0x20], ecx
and dword [ebp - 0x1c], 0
mov eax, dword [0x103b010]
mov esi, 0x103b010
mov edi, 0x10043a8
cmp eax, esi
je 0x1020bad
test byte [eax + 0x1c], 1
je 0x1020bad
push edi
push 0x6b
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.0100dedd
mov eax, dword [0x103b010]
mov ebx, dword [ebp + 8]
mov ecx, dword [ebx]
cmp ecx, 0x45
ja 0x1020f20
je 0x1020e96
cmp ecx, 0x21
je 0x1020e24
cmp ecx, 0x25
je 0x1020d84
cmp ecx, 0x2f
je 0x1020f66
cmp ecx, 0x43
jne 0x1020f3d
cmp eax, esi
je 0x1020c02
test byte [eax + 0x1c], 1
je 0x1020c02
push edi
push 0x7f
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.0100dedd
mov eax, dword [0x103b010]
cmp dword [ebp + 0xc], 0xc
jbe 0x1020d62
add ebx, 4
je 0x1020d45
mov ecx, dword [ebx + 4]
lea edx, [ecx + 0xc]
cmp dword [ebp + 0xc], edx
jne 0x1020d45
and dword [ebp + 0xc], 0
lea eax, [ebx + 8]
mov dword [ebp + 8], eax
lea edx, [ebp + 0xc]
push edx
push ecx
push eax
call fcn.010185ac
mov dword [ebp - 0x1c], eax
test eax, eax
jge 0x1020c75
mov eax, dword [0x103b010]
cmp eax, esi
je 0x10211c4
test byte [eax + 0x1c], 4
je 0x10211c4
push dword [ebp - 0x1c]
push 0x10048a4
push edi
push 0x80
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.01020599
jmp 0x10211c4
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax + 2]
cmp eax, dword [ebx + 4]
je 0x1020cae
mov eax, dword [0x103b010]
cmp eax, esi
je 0x10211bd
test byte [eax + 0x1c], 4
je 0x10211bd
push edi
push 0x81
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.0100dedd
jmp 0x10211bd
mov dword [ebp - 0x30], 0xc
mov ebx, dword [ebx]
mov dword [ebp - 0x2c], ebx
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x28], ecx
mov eax, dword [0x103b010]
cmp eax, esi
je 0x1020ce4
test byte [eax + 0x1c], 1
je 0x1020ce4
push ecx
push ebx
push 0xc
push edi
push 0x82
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.0101f64e
push 2
lea eax, [ebp - 0x30]
push eax
push 0xc
push 0x43
call dword [sym.imp.USER32.dll_SystemParametersInfoW]
test eax, eax
jne 0x10211c4
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov eax, dword [0x103b010]
cmp eax, esi
je 0x1020d25
test byte [eax + 0x1c], 4
je 0x1020d25
push ebx
push edi
push 0x83
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.0100dce0
test ebx, ebx
jle 0x1020d35
and ebx, 0xffff
or ebx, 0x80070000
mov dword [ebp - 0x1c], ebx
test ebx, ebx
jl 0x10211c4
jmp 0x10211bd
cmp eax, esi
je 0x10211bd
test byte [eax + 0x1c], 4
je 0x10211bd
push edi
push 0x84
jmp 0x1020c9e
cmp eax, esi
je 0x10211bd
test byte [eax + 0x1c], 4
je 0x10211bd
push 0xc
push dword [ebp + 0xc]
push edi
push 0x85
jmp 0x10211b2
cmp eax, esi
je 0x1020da1
test byte [eax + 0x1c], 1
je 0x1020da1
push edi
push 0x6c
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.0100dedd
mov eax, dword [0x103b010]
cmp dword [ebp + 0xc], 5
jne 0x1020e05
movzx eax, byte [ebx + 4]
test byte [0x103d3f4], 1
je 0x1020dc1
test byte [0x103d3f8], 1
jne 0x10211c4
push 2
push 0
xor ecx, ecx
test eax, eax
setne cl
push ecx
push 0x25
call dword [sym.imp.USER32.dll_SystemParametersInfoW]
test eax, eax
jne 0x10211c4
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov eax, dword [0x103b010]
cmp eax, esi
je 0x1020d25
test byte [eax + 0x1c], 4
je 0x1020d25
push ebx
push edi
push 0x6d
jmp 0x1020d1a
cmp eax, esi
je 0x10211bd
test byte [eax + 0x1c], 4
je 0x10211bd
push 1
push dword [ebp + 0xc]
push edi
push 0x6e
jmp 0x10211b2
cmp eax, esi
je 0x1020e41
test byte [eax + 0x1c], 1
je 0x1020e41
push edi
push 0x78
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.0100dedd
mov eax, dword [0x103b010]
cmp dword [ebp + 0xc], 5
jne 0x1020e77
xor ecx, ecx
cmp byte [ebx + 4], 1
sete cl
mov ebx, ecx
cmp eax, esi
je 0x1020e6b
test byte [eax + 0x1c], 2
je 0x1020e6b
push ebx
push edi
push 0x79
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.0100dce0
push ebx
call dword [sym.imp.USER32.dll_SwapMouseButton]
jmp 0x10211c4
cmp eax, esi
je 0x10211bd
test byte [eax + 0x1c], 4
je 0x10211bd
push 5
push dword [ebp + 0xc]
push edi
push 0x7a
jmp 0x10211b2
cmp eax, esi
je 0x1020eb3
test byte [eax + 0x1c], 1
je 0x1020eb3
push edi
push 0x72
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.0100dedd
mov eax, dword [0x103b010]
cmp dword [ebp + 0xc], 5
jne 0x1020f01
movzx eax, byte [ebx + 4]
push 2
push 0
xor ecx, ecx
test eax, eax
setne cl
push ecx
push 0x45
call dword [sym.imp.USER32.dll_SystemParametersInfoW]
test eax, eax
jne 0x10211c4
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov eax, dword [0x103b010]
cmp eax, esi
je 0x1020d25
test byte [eax + 0x1c], 4
je 0x1020d25
push ebx
push edi
push 0x73
jmp 0x1020d1a
cmp eax, esi
je 0x10211bd
test byte [eax + 0x1c], 4
je 0x10211bd
push 1
push dword [ebp + 0xc]
push edi
push 0x74
jmp 0x10211b2
mov edx, ecx
sub edx, 0x100b
je 0x102113d
sub edx, 0xdff5
je 0x102101b
dec edx
je 0x1020f66
cmp eax, esi
je 0x10211bd
test byte [eax + 0x1c], 4
je 0x10211bd
push ecx
push edi
push 0x86
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.0100dce0
jmp 0x10211bd
cmp eax, esi
je 0x1020f83
test byte [eax + 0x1c], 1
je 0x1020f83
push edi
push 0x75
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.0100dedd
mov eax, dword [0x103b010]
cmp dword [ebp + 0xc], 0xc
jne 0x1020ffc
movsx eax, word [ebx + 4]
mov dword [ebp - 0x34], eax
movsx eax, word [ebx + 6]
mov dword [ebp - 0x30], eax
movsx eax, word [ebx + 8]
mov dword [ebp - 0x2c], eax
movsx eax, word [ebx + 0xa]
mov dword [ebp - 0x28], eax
push 2
lea eax, [ebp - 0x34]
push eax
push 1
push 0x2f
call dword [sym.imp.USER32.dll_SystemParametersInfoW]
test eax, eax
jne 0x1020fe1
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov eax, dword [0x103b010]
cmp eax, esi
je 0x1020d25
test byte [eax + 0x1c], 4
je 0x1020d25
push ebx
push edi
push 0x76
jmp 0x1020d1a
cmp dword [ebx], 0xf001
jne 0x10211c4
push 1
mov ecx, dword [ebp - 0x20]
call fcn.0101fdfc
jmp 0x10211c4
cmp eax, esi
je 0x10211bd
test byte [eax + 0x1c], 4
je 0x10211bd
push 8
push dword [ebp + 0xc]
push edi
push 0x77
jmp 0x10211b2
cmp eax, esi
je 0x1021038
test byte [eax + 0x1c], 1
je 0x1021038
push edi
push 0x7b
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.0100dedd
mov eax, dword [0x103b010]
cmp dword [ebp + 0xc], 0xc
jne 0x1021121
mov ecx, dword [ebx + 4]
mov dword [ebp - 0x2c], ecx
mov ebx, dword [ebx + 8]
mov dword [ebp - 0x28], ebx
cmp eax, esi
je 0x1021082
test byte [eax + 0x1c], 1
je 0x1021082
mov ecx, ebx
shr ecx, 0x10
movsx ecx, cx
push ecx
movsx ecx, bx
push ecx
mov ecx, dword [ebp - 0x2c]
shr ecx, 0x10
movsx ecx, cx
push ecx
movsx ecx, word [ebp - 0x2c]
push ecx
push edi
push 0x7c
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.0101f611
movsx eax, word [ebp - 0x2c]
mov dword [ebp - 0x44], eax
movsx eax, bx
mov dword [ebp - 0x3c], eax
movsx eax, word [ebp - 0x2a]
mov dword [ebp - 0x40], eax
movsx eax, word [ebp - 0x26]
mov dword [ebp - 0x38], eax
and dword [ebp - 4], 0
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax + 0x18c]
sub esp, 0x10
lea esi, [ebp - 0x44]
mov edi, esp
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [ecx]
call dword [eax + 0x20]
push eax
call fcn.0102b8a3
mov dword [ebp - 0x1c], eax
jmp 0x1021115
mov dword [ebp - 4], 0xfffffffe
jmp 0x10211c4
cmp eax, esi
je 0x10211bd
test byte [eax + 0x1c], 4
je 0x10211bd
push 0x10
push dword [ebp + 0xc]
push edi
push 0x7e
jmp 0x10211b2
cmp eax, esi
je 0x102115a
test byte [eax + 0x1c], 1
je 0x102115a
push edi
push 0x6f
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.0100dedd
mov eax, dword [0x103b010]
cmp dword [ebp + 0xc], 5
jne 0x10211a0
movzx eax, byte [ebx + 4]
push 2
push eax
push 0
push 0x100b
call dword [sym.imp.USER32.dll_SystemParametersInfoW]
test eax, eax
jne 0x10211c4
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov eax, dword [0x103b010]
cmp eax, esi
je 0x1020d25
test byte [eax + 0x1c], 4
je 0x1020d25
push ebx
push edi
push 0x70
jmp 0x1020d1a
cmp eax, esi
je 0x10211bd
test byte [eax + 0x1c], 4
je 0x10211bd
push 1
push dword [ebp + 0xc]
push edi
push 0x71
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.0102b062
mov dword [ebp - 0x1c], 0x80004005
mov eax, dword [ebp - 0x1c]
call fcn.01011bd1
ret 8