Function at 0x401370
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
mov eax, dword [0x404008]
xor eax, ebp
mov dword [ebp - 4], eax
cmp byte [0x40438d], 0
push ebx
push esi
push edi
mov esi, ecx
jne 0x4013d6
push str._tnoclip_bind:_Middle_mouse_button__noclip_lol__n
call fcn.00401190
add esp, 4
push str._tunlock_all_bind:_F1__unlocks_all_icons_and_colors__n
call fcn.00401190
add esp, 4
push str._tfree_chests:_F2__all_chests_for_free__also_bypass_key_chests__n
call fcn.00401190
add esp, 4
push str._tfree_shop:_F3__all_items_on_all_shops_for_free__n
call fcn.00401190
add esp, 4
push str._tshop_bypass:_F4__lets_you_go_into_the_diamonds_and_mechanic_shop__n
call fcn.00401190
add esp, 4
mov byte [0x40438d], 1
mov cl, byte [esi + 4]
mov ebx, dword [sym.imp.KERNEL32.dll_WriteProcessMemory]
cmp cl, byte [0x40438a]
je 0x401411
mov eax, dword [esi]
push 0
add eax, 0x2e0ad9
mov dword [ebp - 0x10], 0x79ce9
push 4
test cl, cl
lea ecx, [ebp - 0x10]
push ecx
push eax
push dword [0x40439c]
jne 0x40140f
mov dword [ebp - 0x10], 0x79b850f
call ebx
cmp byte [0x40438e], 0
mov al, byte [esi + 4]
mov edi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
mov byte [0x40438a], al
jne 0x401467
push 4
call edi
test ax, ax
je 0x401467
mov cl, byte [esi + 4]
test cl, cl
sete al
test cl, cl
mov byte [esi + 4], al
mov ecx, 0x4032a0
mov eax, 0x40329c
cmovne eax, ecx
push eax
push str.noclip
push str._s:__s_n
call fcn.00401190
add esp, 0xc
mov byte [0x40438e], 1
jmp 0x40147d
push 4
call edi
test ax, ax
jne 0x40147d
cmp byte [0x40438e], al
je 0x40147d
mov byte [0x40438e], al
mov cl, byte [esi + 5]
cmp cl, byte [0x40438c]
je 0x4014ee
mov eax, dword [esi]
push 0
add eax, 0x1201a5
test cl, cl
push 7
lea ecx, [ebp - 0xc]
push ecx
push eax
push dword [0x40439c]
je 0x4014bd
mov dword [ebp - 0xc], 0xfe839090
mov word [ebp - 8], 0x9005
mov byte [ebp - 6], 0x90
call ebx
mov word [ebp - 0x10], 0x9090
jmp 0x4014d6
mov dword [ebp - 0xc], 0xfe830c75
mov word [ebp - 8], 0x7d05
mov byte [ebp - 6], 0x13
call ebx
mov word [ebp - 0x10], 0x47d
push 0
push 2
lea eax, [ebp - 0x10]
push eax
mov eax, dword [esi]
add eax, 0x1206a6
push eax
push dword [0x40439c]
call ebx
cmp byte [0x40438e], 0
mov al, byte [esi + 5]
mov byte [0x40438c], al
jne 0x40153e
push 0x70
call edi
test ax, ax
je 0x40153e
mov cl, byte [esi + 5]
test cl, cl
sete al
test cl, cl
mov byte [esi + 5], al
mov ecx, 0x4032a0
mov eax, 0x40329c
cmovne eax, ecx
push eax
push str.unlockall
push str._s:__s_n
call fcn.00401190
add esp, 0xc
mov byte [0x40438e], 1
jmp 0x401554
push 0x70
call edi
test ax, ax
jne 0x401554
cmp byte [0x40438e], al
je 0x401554
mov byte [0x40438e], al
mov ecx, esi
call fcn.00401020
cmp byte [0x40438e], 0
jne 0x4015a3
push 0x71
call edi
test ax, ax
je 0x4015a3
mov cl, byte [esi + 6]
test cl, cl
sete al
test cl, cl
mov byte [esi + 6], al
mov ecx, 0x4032a0
mov eax, 0x40329c
cmovne eax, ecx
push eax
push str.free_chests
push str._s:__s_n
call fcn.00401190
add esp, 0xc
mov byte [0x40438e], 1
jmp 0x4015b9
push 0x71
call edi
test ax, ax
jne 0x4015b9
cmp byte [0x40438e], al
je 0x4015b9
mov byte [0x40438e], al
mov cl, byte [esi + 7]
cmp cl, byte [0x404389]
je 0x401665
mov eax, dword [esi]
push 0
add eax, 0x168223
test cl, cl
push 7
lea ecx, [ebp - 0xc]
push ecx
push eax
push dword [0x40439c]
je 0x40161a
mov dword [ebp - 0xc], 0x90909090
mov word [ebp - 8], 0x9090
mov byte [ebp - 6], 0x90
call ebx
push 0
push 1
lea eax, [ebp - 0x11]
mov byte [ebp - 0x11], 0xeb
push eax
mov eax, dword [esi]
add eax, 0x216666
push eax
push dword [0x40439c]
call ebx
mov byte [ebp - 0xd], 0xeb
lea eax, [ebp - 0xd]
jmp 0x401650
mov dword [ebp - 0xc], 0x36e85052
mov word [ebp - 8], 5
mov byte [ebp - 6], 0
call ebx
push 0
push 1
lea eax, [ebp - 0xd]
mov byte [ebp - 0xd], 0x74
push eax
mov eax, dword [esi]
add eax, 0x216666
push eax
push dword [0x40439c]
call ebx
mov byte [ebp - 0x11], 0x7d
lea eax, [ebp - 0x11]
push 0
push 1
push eax
mov eax, dword [esi]
add eax, 0x168205
push eax
push dword [0x40439c]
call ebx
cmp byte [0x40438e], 0
mov al, byte [esi + 7]
mov byte [0x404389], al
jne 0x4016b5
push 0x72
call edi
test ax, ax
je 0x4016b5
mov cl, byte [esi + 7]
test cl, cl
sete al
test cl, cl
mov byte [esi + 7], al
mov ecx, 0x4032a0
mov eax, 0x40329c
cmovne eax, ecx
push eax
push str.free_shop
push str._s:__s_n
call fcn.00401190
add esp, 0xc
mov byte [0x40438e], 1
jmp 0x4016cb
push 0x72
call edi
test ax, ax
jne 0x4016cb
cmp byte [0x40438e], al
je 0x4016cb
mov byte [0x40438e], al
mov cl, byte [esi + 8]
cmp cl, byte [0x40438b]
je 0x401746
mov eax, dword [esi]
push 0
add eax, 0x2f9a6c
mov word [ebp - 0x10], 0x1deb
push 2
test cl, cl
lea ecx, [ebp - 0x10]
push ecx
push eax
push dword [0x40439c]
jne 0x4016fc
mov word [ebp - 0x10], 0x850f
call ebx
push 0
push 2
lea eax, [ebp - 0x10]
push eax
mov eax, dword [esi]
add eax, 0x2f90c0
push eax
push dword [0x40439c]
call ebx
push 0
push 2
lea eax, [ebp - 0x10]
push eax
mov eax, dword [esi]
add eax, 0x2f86ac
push eax
push dword [0x40439c]
call ebx
push 0
push 2
lea eax, [ebp - 0x10]
push eax
mov eax, dword [esi]
add eax, 0x2f79c4
push eax
push dword [0x40439c]
call ebx
cmp byte [0x40438e], 0
mov al, byte [esi + 8]
mov byte [0x40438b], al
jne 0x4017a5
push 0x73
call edi
test ax, ax
je 0x4017a5
mov cl, byte [esi + 8]
test cl, cl
sete al
test cl, cl
mov byte [esi + 8], al
mov ecx, 0x4032a0
mov eax, 0x40329c
cmovne eax, ecx
push eax
push str.shop_bypass
push str._s:__s_n
call fcn.00401190
add esp, 0xc
mov byte [0x40438e], 1
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00401a9a
mov esp, ebp
pop ebp
ret
push 0x73
call edi
test ax, ax
jne 0x4017bb
cmp byte [0x40438e], al
je 0x4017bb
mov byte [0x40438e], al
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00401a9a
mov esp, ebp
pop ebp
ret