Function at 0x10077190
Capabilities:
Encode data using xor
Hash data using fnv
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100e65d0
mov eax, dword fs:[0]
push eax
sub esp, 0x8c
mov eax, dword [0x10122094]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, dword [ebp + 8]
mov dword [ebp - 0x88], 0
mov eax, dword [0x1012f29c]
mov dword [ebp - 0x8c], esi
mov edi, dword [eax]
mov dword [ebp - 0x90], edi
test edi, edi
je 0x10077ca8
cmp dword [edi], 4
jne 0x10077ca8
mov edx, edi
lea ecx, [ebp - 0x7c]
call fcn.10075510
test eax, eax
jne 0x10077ca8
push 0x15
mov dword [ebp - 0x28], eax
lea ecx, [ebp - 0x28]
push str.Advanced_Item_Display
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], al
call fcn.1003f030
lea eax, [ebp - 0x28]
mov dword [ebp - 4], 0
push eax
mov ecx, 0x1012f2d0
call fcn.1005ae70
mov bl, byte [eax + 4]
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x14]
cmp edx, 0x10
jb 0x10077273
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10077269
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10077cc6
push edx
push ecx
call fcn.100b4eda
add esp, 8
test bl, bl
je 0x100773b4
lea ecx, [esi + 2]
nop
mov ax, word [esi]
add esi, 2
test ax, ax
jne 0x10077280
lea eax, [ebp - 0x7c]
sub esi, ecx
push eax
lea eax, [ebp - 0x28]
sar esi, 1
push eax
call fcn.10078fc0
mov dword [ebp - 4], 1
lea ecx, [ebp - 0x28]
mov ebx, dword [ebp - 0x14]
cmp ebx, 0x10
mov edi, dword [ebp - 0x28]
mov edx, dword [ebp - 0x18]
cmovae ecx, edi
push 0
push 0x101038b3
call fcn.100541a0
add esp, 8
test al, al
jne 0x10077373
push 0x80
push 0x1013b568
cmp ebx, 0x10
lea eax, [ebp - 0x28]
push 0xffffffffffffffff
cmovae eax, edi
push eax
push 1
push 0x4e4
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
xor edx, edx
lea ecx, [ebp - 0x58]
mov edi, eax
call fcn.10040e80
cmp dword [eax + 0x14], 8
jb 0x10077303
mov eax, dword [eax]
push eax
mov ecx, 0x10106020
test edi, edi
mov eax, 0x1013b568
cmovle eax, ecx
push eax
mov eax, 0x400
sub eax, esi
push str._s_s_n
push eax
mov eax, dword [ebp - 0x8c]
lea eax, [eax + esi*2]
push eax
call fcn.10071050
mov edx, dword [ebp - 0x44]
add esp, 0x14
cmp edx, 8
jb 0x1007736d
mov ecx, dword [ebp - 0x58]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x10077363
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10077ccb
push edx
push ecx
call fcn.100b4eda
add esp, 8
mov edi, dword [ebp - 0x28]
mov ebx, dword [ebp - 0x14]
mov dword [ebp - 4], 0xffffffff
cmp ebx, 0x10
jb 0x100773a8
inc ebx
mov eax, edi
cmp ebx, 0x1000
jb 0x1007739e
mov edi, dword [edi - 4]
add ebx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10077cd0
push ebx
push edi
call fcn.100b4eda
add esp, 8
mov esi, dword [ebp - 0x8c]
mov edi, dword [ebp - 0x90]
push 0x1c
mov dword [ebp - 0x28], 0
lea ecx, [ebp - 0x28]
push str.Always_Show_Item_Stat_Ranges
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.1003f030
lea eax, [ebp - 0x28]
mov dword [ebp - 4], 2
push eax
mov ecx, 0x1012f2d0
mov dword [ebp - 0x88], 1
call fcn.1005ae70
cmp byte [eax + 4], 0
jne 0x10077410
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
bt ax, 0xf
jae 0x10077419
cmp dword [edi], 4
jne 0x10077419
xor bl, bl
jmp 0x1007741b
mov bl, 1
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x14]
cmp edx, 0x10
jb 0x10077456
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1007744c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10077cd5
push edx
push ecx
call fcn.100b4eda
add esp, 8
test bl, bl
jne 0x100777b7
push 0x32
push edi
call fcn.1003b200
test eax, eax
je 0x100777b7
mov byte [ebp - 0x7d], bl
lea ecx, [esi + 2]
mov byte [ebp - 0x7e], bl
mov ax, word [esi]
add esi, 2
test ax, ax
jne 0x10077477
push dword [edi + 4]
sub esi, ecx
sar esi, 1
call fcn.1003afc0
mov ecx, dword [0x1012f2e0]
xor ebx, ebx
mov ecx, dword [ecx]
mov dword [ebp - 0x94], ecx
test ecx, ecx
jle 0x10077510
mov ecx, dword [0x1012f2b0]
sub eax, 0xffffff80
mov dword [ebp - 0x88], eax
mov edi, dword [ecx]
mov dword [ebp - 0x84], edi
sub edi, 0xffffff80
nop dword [eax]
mov ecx, eax
mov eax, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100774e4
test dl, dl
je 0x100774e0
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100774e4
add eax, 2
add ecx, 2
test dl, dl
jne 0x100774c4
xor eax, eax
jmp 0x100774e9
sbb eax, eax
or eax, 1
test eax, eax
je 0x10077628
add dword [ebp - 0x84], 0x1a8
inc ebx
mov eax, dword [ebp - 0x88]
add edi, 0x1a8
cmp ebx, dword [ebp - 0x94]
jl 0x100774c0
xor edi, edi
push 0
push 0x1f
push dword [ebp - 0x90]
call fcn.1003b0b0
mov ecx, dword [ebp - 0x90]
mov ebx, dword [edi + 0xcc]
mov edi, dword [edi + 0xd0]
mov dword [ebp - 0x88], eax
mov ecx, dword [ecx + 0x14]
mov dword [ebp - 0x84], ebx
mov edx, dword [ecx + 0x18]
lea ecx, [edi + 1]
shr edx, 0x16
and dl, 1
cmp eax, ecx
jne 0x10077556
test dl, dl
je 0x1007756e
lea eax, [edi + 1]
lea eax, [eax + eax*2]
shr eax, 1
cmp dword [ebp - 0x88], eax
jne 0x10077572
test dl, dl
je 0x1007763d
mov byte [ebp - 0x7e], 1
test dl, dl
je 0x10077633
movd xmm0, ebx
cvtdq2pd xmm0, xmm0
shr ebx, 0x1f
addsd xmm0, qword [ebx*8 + 0x1010ddc0]
mulsd xmm0, qword [0x1010dd40]
call fcn.100df5d0
movd xmm0, edi
mov ebx, eax
cvtdq2pd xmm0, xmm0
shr edi, 0x1f
mov dword [ebp - 0x84], ebx
addsd xmm0, qword [edi*8 + 0x1010ddc0]
mulsd xmm0, qword [0x1010dd40]
call fcn.100df5d0
mov edi, eax
cmp dword [ebp - 0x88], edi
jbe 0x10077633
cmp byte [ebp - 0x7e], 0
jne 0x100777b7
movd xmm0, ebx
cvtdq2pd xmm0, xmm0
shr ebx, 0x1f
addsd xmm0, qword [ebx*8 + 0x1010ddc0]
mulsd xmm0, qword [0x1010dd40]
call fcn.100df5d0
movd xmm0, edi
cvtdq2pd xmm0, xmm0
shr edi, 0x1f
mov dword [ebp - 0x84], eax
addsd xmm0, qword [edi*8 + 0x1010ddc0]
mulsd xmm0, qword [0x1010dd40]
call fcn.100df5d0
mov edi, eax
mov byte [ebp - 0x7d], 1
jmp 0x1007763d
mov edi, dword [ebp - 0x84]
jmp 0x10077512
cmp byte [ebp - 0x7e], 0
jne 0x100777b7
xor edx, edx
lea ecx, [ebp - 0x40]
call fcn.10040e80
mov ebx, eax
mov dword [ebp - 4], 3
cmp dword [ebx + 0x14], 8
jb 0x10077658
mov ebx, dword [ebx]
mov edx, dword [0x10122ebc]
lea ecx, [ebp - 0x28]
call fcn.10040e80
mov dword [ebp - 0x94], eax
mov byte [ebp - 4], 4
cmp dword [eax + 0x14], 8
jb 0x1007767e
mov eax, dword [eax]
mov dword [ebp - 0x94], eax
xor edx, edx
lea ecx, [ebp - 0x58]
call fcn.10040e80
cmp dword [eax + 0x14], 8
jb 0x10077690
mov eax, dword [eax]
cmp byte [ebp - 0x7d], 0
mov edx, 0x101041cc
push ebx
mov ecx, 0x10106070
cmove ecx, edx
push ecx
push edi
push dword [ebp - 0x84]
push dword [ebp - 0x94]
push dword [ebp - 0x88]
push eax
mov eax, 0x400
sub eax, esi
push str._sBase_Defense:__d__s__d____d__s_s_n
push eax
mov eax, dword [ebp - 0x8c]
lea eax, [eax + esi*2]
push eax
call fcn.10071050
mov edx, dword [ebp - 0x44]
add esp, 0x28
cmp edx, 8
jb 0x10077710
mov ecx, dword [ebp - 0x58]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x10077706
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10077cda
push edx
push ecx
call fcn.100b4eda
add esp, 8
xor eax, eax
mov byte [ebp - 4], 3
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 7
mov word [ebp - 0x58], ax
cmp edx, 8
jb 0x10077762
mov ecx, dword [ebp - 0x28]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x10077758
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10077cda
push edx
push ecx
call fcn.100b4eda
add esp, 8
xor eax, eax
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 7
mov word [ebp - 0x28], ax
cmp edx, 8
jb 0x100777b7
mov ecx, dword [ebp - 0x40]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x100777ad
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10077cda
push edx
push ecx
call fcn.100b4eda
add esp, 8
mov eax, dword [ebp - 0x90]
mov esi, 0x63
mov eax, dword [eax + 0x14]
mov ecx, dword [eax + 0x2c]
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0x84], ecx
cmp byte [ebp - 0x84], 0x63
movzx ecx, cl
mov bl, byte [eax + 0x44]
cmova ecx, esi
mov dl, byte [eax + 0x45]
cmp bl, cl
movzx eax, bl
mov dword [ebp - 0x94], eax
movzx eax, cl
mov ecx, dword [ebp - 0x94]
cmovbe ecx, eax
movzx edi, cl
test dl, dl
je 0x10077813
movzx eax, dl
add eax, edi
cmp eax, esi
jbe 0x1007780f
mov dl, 0x63
jmp 0x1007782b
add dl, cl
jmp 0x1007782b
movzx eax, bl
mov dl, cl
shr eax, 1
sub esi, eax
cmp edi, esi
jge 0x10077826
shr bl, 1
sub dl, bl
jmp 0x1007782b
add dl, dl
sub dl, 0x63
mov eax, dword [ebp - 0x90]
lea ecx, [ebp - 0x28]
push 0x15
mov dword [ebp - 0x28], 0
push str.Advanced_Item_Display
mov esi, dword [eax + 0x14]
movzx edi, dl
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov esi, dword [esi]
mov byte [ebp - 0x28], 0
call fcn.1003f030
lea eax, [ebp - 0x28]
mov dword [ebp - 4], 5
mov ebx, 2
mov ecx, 0x1012f2d0
push eax
mov dword [ebp - 0x88], ebx
call fcn.1005ae70
cmp byte [eax + 4], 0
je 0x100778f1
push 9
mov dword [ebp - 0x40], 0
lea ecx, [ebp - 0x40]
push str.Show_iLvl
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0xf
mov byte [ebp - 0x40], 0
call fcn.1003f030
lea eax, [ebp - 0x40]
mov dword [ebp - 4], 6
mov ebx, 6
mov ecx, 0x1012f2d0
push eax
mov dword [ebp - 0x88], ebx
call fcn.1005ae70
cmp byte [eax + 4], 0
je 0x100778f1
cmp dword [ebp - 0x84], edi
je 0x100778f1
cmp esi, 4
je 0x100778eb
cmp esi, ebx
je 0x100778eb
cmp esi, 8
jne 0x100778f1
mov byte [ebp - 0x7d], 1
jmp 0x100778f5
mov byte [ebp - 0x7d], 0
mov dword [ebp - 4], 5
test bl, 4
je 0x1007794a
mov edx, dword [ebp - 0x2c]
and ebx, 0xfffffffb
cmp edx, 0x10
jb 0x10077938
mov ecx, dword [ebp - 0x40]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1007792e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10077cdf
push edx
push ecx
call fcn.100b4eda
add esp, 8
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0xf
mov byte [ebp - 0x40], 0
mov dword [ebp - 4], 0xffffffff
test bl, 2
je 0x1007798d
mov edx, dword [ebp - 0x14]
and ebx, 0xfffffffd
cmp edx, 0x10
jb 0x1007798d
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10077983
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10077cdf
push edx
push ecx
call fcn.100b4eda
add esp, 8
cmp byte [ebp - 0x7d], 0
je 0x10077a1c
mov esi, dword [ebp - 0x8c]
lea ecx, [esi + 2]
mov ax, word [esi]
add esi, 2
test ax, ax
jne 0x100779a0
sub esi, ecx
xor edx, edx
lea ecx, [ebp - 0x58]
sar esi, 1
call fcn.10040e80
cmp dword [eax + 0x14], 8
jb 0x100779c1
mov eax, dword [eax]
push edi
push eax
mov eax, 0x400
sub eax, esi
push str._sAffix_Level:__d_n
push eax
mov eax, dword [ebp - 0x8c]
lea eax, [eax + esi*2]
push eax
call fcn.10071050
mov edx, dword [ebp - 0x44]
add esp, 0x14
cmp edx, 8
jb 0x10077a1c
mov ecx, dword [ebp - 0x58]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x10077a12
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10077ce4
push edx
push ecx
call fcn.100b4eda
add esp, 8
push 0x15
mov dword [ebp - 0x58], 0
lea ecx, [ebp - 0x58]
push str.Advanced_Item_Display
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 0xf
mov byte [ebp - 0x58], 0
call fcn.1003f030
lea eax, [ebp - 0x58]
mov dword [ebp - 4], 7
or ebx, 8
mov ecx, 0x1012f2d0
push eax
mov dword [ebp - 0x88], ebx
call fcn.1005ae70
cmp byte [eax + 4], 0
je 0x10077b45
push 9
mov dword [ebp - 0x28], 0
lea ecx, [ebp - 0x28]
push str.Show_iLvl
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.1003f030
lea eax, [ebp - 0x28]
mov dword [ebp - 4], 8
or ebx, 0x10
mov ecx, 0x1012f2d0
push eax
mov dword [ebp - 0x88], ebx
call fcn.1005ae70
cmp byte [eax + 4], 0
je 0x10077b45
cmp dword [ebp - 0x84], 1
jle 0x10077b45
lea ecx, [ebp - 0x78]
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x30], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x2c], 0xf
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10077ae4
sub ecx, edx
lea eax, [ebp - 0x78]
push ecx
push eax
lea ecx, [ebp - 0x40]
call fcn.1003f030
mov esi, dword [ebp - 0x40]
lea edi, [ebp - 0x40]
or ebx, 0x20
mov edx, 0x811c9dc5
cmp dword [ebp - 0x2c], 0x10
cmovae edi, esi
xor ecx, ecx
cmp dword [ebp - 0x30], ecx
jbe 0x10077b28
movzx eax, byte [ecx + edi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, dword [ebp - 0x30]
jb 0x10077b16
push edx
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x98]
push eax
call fcn.1007a8d0
cmp dword [eax + 4], 0
jne 0x10077b48
mov byte [ebp - 0x7d], 1
jmp 0x10077b4c
mov esi, dword [ebp - 0x40]
mov byte [ebp - 0x7d], 0
test bl, 0x20
je 0x10077b87
mov eax, dword [ebp - 0x2c]
and ebx, 0xffffffdf
cmp eax, 0x10
jb 0x10077b87
lea ecx, [eax + 1]
mov eax, esi
cmp ecx, 0x1000
jb 0x10077b7d
mov esi, dword [esi - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10077ce9
push ecx
push esi
call fcn.100b4eda
add esp, 8
mov dword [ebp - 4], 7
test bl, 0x10
je 0x10077bdc
mov edx, dword [ebp - 0x14]
and ebx, 0xffffffef
cmp edx, 0x10
jb 0x10077bca
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10077bc0
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10077ce9
push edx
push ecx
call fcn.100b4eda
add esp, 8
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
mov dword [ebp - 4], 0xffffffff
test bl, 8
je 0x10077c1c
mov edx, dword [ebp - 0x44]
cmp edx, 0x10
jb 0x10077c1c
mov ecx, dword [ebp - 0x58]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10077c12
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10077ce9
push edx
push ecx
call fcn.100b4eda
add esp, 8
cmp byte [ebp - 0x7d], 0
je 0x10077ca8
mov ebx, dword [ebp - 0x8c]
mov esi, ebx
lea ecx, [esi + 2]
mov ax, word [esi]
add esi, 2
test ax, ax
jne 0x10077c31
sub esi, ecx
xor edx, edx
lea ecx, [ebp - 0x70]
sar esi, 1
call fcn.10040e80
cmp dword [eax + 0x14], 8
jb 0x10077c52
mov eax, dword [eax]
push dword [ebp - 0x84]
push eax
mov eax, 0x400
sub eax, esi
push str._sItem_Level:__d_n
push eax
lea eax, [ebx + esi*2]
push eax
call fcn.10071050
mov edx, dword [ebp - 0x5c]
add esp, 0x14
cmp edx, 8
jb 0x10077ca8
mov ecx, dword [ebp - 0x70]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x10077c9e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10077cee
push edx
push ecx
call fcn.100b4eda
add esp, 8
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.100b4e9c
mov esp, ebp
pop ebp
ret 4
call fcn.100ba49f
call fcn.100ba49f
call fcn.100ba49f
call fcn.100ba49f
call fcn.100ba49f
call fcn.100ba49f
call fcn.100ba49f
call fcn.100ba49f
call fcn.100ba49f
int3