Function at 0x10073090
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100bd098
mov eax, dword fs:[0]
push eax
sub esp, 0x64
mov eax, dword [0x100e50d4]
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 edi, edx
mov dword [ebp - 0x48], edi
mov ebx, ecx
mov esi, dword [ebp + 0xc]
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0xf
mov byte [ebp - 0x2c], 0
mov dword [ebp - 4], 0
test edi, edi
je 0x10074045
cmp dword [ebp + 8], 0
je 0x10074045
push 0x12
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ecx, 0x8000
mov byte [0x100f28f4], 1
test cx, ax
lea edi, [edi + 0x10]
mov ecx, dword [ebp + 8]
cmovbe edi, dword [ebp - 0x48]
test cl, 1
je 0x10073538
mov eax, dword [0x10104818]
mov eax, dword [eax + 4]
mov dword [ebp - 0x48], eax
cmp eax, 0xffffffff
je 0x10073538
mov edx, edi
mov ecx, ebx
call fcn.10071be0
push 1
push edi
mov edx, ebx
lea ecx, [ebp - 0x68]
call fcn.1002c3b0
mov esi, dword [ebp - 0x48]
add esp, 8
push eax
mov eax, dword [0x10104818]
lea ecx, [esi + esi*2]
shl ecx, 3
add eax, 0x10
mov dword [ebp - 0x4c], ecx
add ecx, eax
call fcn.10012470
mov edx, dword [ebp - 0x54]
cmp edx, 0x10
jb 0x1007319e
mov ecx, dword [ebp - 0x68]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10073194
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100743a0
push edx
push ecx
call fcn.10097faf
add esp, 8
mov eax, dword [ebp - 0x4c]
mov ecx, dword [0x10104818]
add eax, 0x10
add eax, ecx
cmp dword [eax + 0x14], 0x10
jb 0x100731b4
mov eax, dword [eax]
push eax
imul eax, esi, 0xe4
add ecx, 0x1600
add ecx, eax
call fcn.10018fd0
cmp dword [0x1010455c], 1
je 0x10073359
push edi
lea ecx, [esi + 0xc]
mov edx, ebx
call fcn.10016420
add esp, 4
cmp byte [0x100f25a3], 0
je 0x100734de
push ecx
push ebx
push ecx
lea ecx, [ebp - 0x40]
call fcn.10054c40
sub esp, 0x30
lea eax, [ebp - 0x40]
mov ecx, esp
mov dword [ebp - 0x4c], esp
push eax
call fcn.10071a10
mov edx, esi
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x68]
call fcn.1000ee30
sub esp, 0x18
mov byte [ebp - 4], 2
mov ecx, esp
mov dword [ebp - 0x48], esp
mov edx, 0x100ef0b8
push eax
call fcn.10016580
sub esp, 0x14
mov byte [ebp - 4], 3
mov ecx, esp
mov dword [ebp - 0x50], esp
push 0x100ef0a0
call fcn.10012510
sub esp, 0x18
mov byte [ebp - 4], 4
mov ecx, esp
push 0x100ef088
call fcn.10012510
mov ecx, 4
mov byte [ebp - 4], 5
call fcn.1006d380
mov byte [ebp - 4], 0
add esp, 0x78
mov edx, dword [ebp - 0x54]
cmp edx, 0x10
jb 0x100732a3
mov ecx, dword [ebp - 0x68]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10073299
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100743a5
push edx
push ecx
call fcn.10097faf
add esp, 8
push ecx
push edi
push ecx
lea ecx, [ebp - 0x40]
call fcn.10054c40
sub esp, 0x30
lea eax, [ebp - 0x40]
mov ecx, esp
mov dword [ebp - 0x44], esp
push eax
call fcn.10071a10
mov edx, esi
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x68]
call fcn.1000ee30
sub esp, 0x18
mov byte [ebp - 4], 7
mov ecx, esp
mov dword [ebp - 0x50], esp
mov edx, 0x100ef0d0
push eax
call fcn.10016580
sub esp, 0x14
mov byte [ebp - 4], 8
mov ecx, esp
mov dword [ebp - 0x4c], esp
push 0x100ef0a0
call fcn.10012510
sub esp, 0x18
mov byte [ebp - 4], 9
mov ecx, esp
push 0x100ef088
call fcn.10012510
mov ecx, 4
mov byte [ebp - 4], 0xa
call fcn.1006d380
mov byte [ebp - 4], 0
add esp, 0x78
mov edx, dword [ebp - 0x54]
cmp edx, 0x10
jb 0x100734cc
mov ecx, dword [ebp - 0x68]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100734c2
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100743aa
jmp 0x100734c2
cmp byte [0x100f25a3], 0
je 0x100734de
push ecx
push ebx
push ecx
lea ecx, [ebp - 0x40]
call fcn.10054c40
sub esp, 0x30
lea eax, [ebp - 0x40]
mov ecx, esp
mov dword [ebp - 0x44], esp
push eax
call fcn.10071a10
mov edx, esi
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x68]
call fcn.1000ee30
sub esp, 0x18
mov byte [ebp - 4], 0xc
mov ecx, esp
mov dword [ebp - 0x50], esp
mov edx, 0x100ef0e8
push eax
call fcn.10016580
sub esp, 0x14
mov byte [ebp - 4], 0xd
mov ecx, esp
mov dword [ebp - 0x4c], esp
push 0x100ef0a0
call fcn.10012510
sub esp, 0x18
mov byte [ebp - 4], 0xe
mov ecx, esp
push 0x100ef088
call fcn.10012510
mov ecx, 4
mov byte [ebp - 4], 0xf
call fcn.1006d380
mov byte [ebp - 4], 0
add esp, 0x78
mov edx, dword [ebp - 0x54]
cmp edx, 0x10
jb 0x10073419
mov ecx, dword [ebp - 0x68]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1007340f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100743af
push edx
push ecx
call fcn.10097faf
add esp, 8
push ecx
push edi
push ecx
lea ecx, [ebp - 0x40]
call fcn.10054c40
sub esp, 0x30
lea eax, [ebp - 0x40]
mov ecx, esp
mov dword [ebp - 0x44], esp
push eax
call fcn.10071a10
mov edx, esi
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x68]
call fcn.1000ee30
sub esp, 0x18
mov byte [ebp - 4], 0x11
mov ecx, esp
mov dword [ebp - 0x50], esp
mov edx, 0x100ef100
push eax
call fcn.10016580
sub esp, 0x14
mov byte [ebp - 4], 0x12
mov ecx, esp
mov dword [ebp - 0x4c], esp
push 0x100ef0a0
call fcn.10012510
sub esp, 0x18
mov byte [ebp - 4], 0x13
mov ecx, esp
push 0x100ef088
call fcn.10012510
mov ecx, 4
mov byte [ebp - 4], 0x14
call fcn.1006d380
mov byte [ebp - 4], 0
add esp, 0x78
mov edx, dword [ebp - 0x54]
cmp edx, 0x10
jb 0x100734cc
mov ecx, dword [ebp - 0x68]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100734c2
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100743b4
push edx
push ecx
call fcn.10097faf
add esp, 8
mov byte [ebp - 0x68], 0
mov dword [ebp - 0x54], 0xf
mov dword [ebp - 0x58], 0
cmp dword [0x100f26dc], 0
mov eax, dword [0x1010455c]
lea ecx, [eax + esi*2]
mov eax, dword [0x10104818]
mov dword [eax + ecx*4 + 0x20e4], ebx
mov eax, dword [0x1010455c]
lea ecx, [eax + esi*2]
mov eax, dword [0x10104818]
mov dword [eax + ecx*4 + 0x2114], edi
jle 0x10074045
mov eax, dword [0x100f2710]
mov eax, dword [eax]
mov eax, dword [eax + 0x3f4]
mov ecx, dword [eax + 0x238]
test ecx, ecx
je 0x10074045
call fcn.10015850
jmp 0x10074045
test cl, 2
je 0x10073957
mov eax, dword [0x10104ca8]
mov eax, dword [eax + 4]
mov dword [ebp - 0x48], eax
cmp eax, 0xffffffff
je 0x10073957
mov edx, edi
mov ecx, ebx
call fcn.10071be0
push 1
push edi
mov edx, ebx
lea ecx, [ebp - 0x68]
call fcn.1002c3b0
mov esi, dword [ebp - 0x48]
add esp, 8
push eax
mov eax, dword [0x10104ca8]
lea ecx, [esi + esi*2]
shl ecx, 3
add eax, 0x14
mov dword [ebp - 0x4c], ecx
add ecx, eax
call fcn.10012470
mov edx, dword [ebp - 0x54]
cmp edx, 0x10
jb 0x100735be
mov ecx, dword [ebp - 0x68]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100735b4
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100743b9
push edx
push ecx
call fcn.10097faf
add esp, 8
mov eax, dword [ebp - 0x4c]
mov ecx, dword [0x10104ca8]
add eax, 0x14
add eax, ecx
cmp dword [eax + 0x14], 0x10
jb 0x100735d4
mov eax, dword [eax]
push eax
imul eax, esi, 0xe4
add ecx, 0x2bf4
add ecx, eax
call fcn.10018fd0
cmp dword [0x1010455c], 1
je 0x10073778
push edi
mov edx, ebx
mov ecx, esi
call fcn.10016420
add esp, 4
cmp byte [0x100f25a3], 0
je 0x100738fd
push ecx
push ebx
push ecx
lea ecx, [ebp - 0x40]
call fcn.10054c40
sub esp, 0x30
lea eax, [ebp - 0x40]
mov ecx, esp
mov dword [ebp - 0x44], esp
push eax
call fcn.10071a10
mov edx, esi
mov byte [ebp - 4], 0x15
lea ecx, [ebp - 0x68]
call fcn.1000ee30
sub esp, 0x18
mov byte [ebp - 4], 0x16
mov ecx, esp
mov dword [ebp - 0x50], esp
mov edx, 0x100ef118
push eax
call fcn.10016580
sub esp, 0x14
mov byte [ebp - 4], 0x17
mov ecx, esp
mov dword [ebp - 0x4c], esp
push 0x100ef0a0
call fcn.10012510
sub esp, 0x18
mov byte [ebp - 4], 0x18
mov ecx, esp
push 0x100ef088
call fcn.10012510
mov ecx, 4
mov byte [ebp - 4], 0x19
call fcn.1006d380
mov byte [ebp - 4], 0
add esp, 0x78
mov edx, dword [ebp - 0x54]
cmp edx, 0x10
jb 0x100736c2
mov ecx, dword [ebp - 0x68]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100736b8
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100743be
push edx
push ecx
call fcn.10097faf
add esp, 8
push ecx
push edi
push ecx
lea ecx, [ebp - 0x40]
call fcn.10054c40
sub esp, 0x30
lea eax, [ebp - 0x40]
mov ecx, esp
mov dword [ebp - 0x44], esp
push eax
call fcn.10071a10
mov edx, esi
mov byte [ebp - 4], 0x1a
lea ecx, [ebp - 0x68]
call fcn.1000ee30
sub esp, 0x18
mov byte [ebp - 4], 0x1b
mov ecx, esp
mov dword [ebp - 0x50], esp
mov edx, 0x100ef130
push eax
call fcn.10016580
sub esp, 0x14
mov byte [ebp - 4], 0x1c
mov ecx, esp
mov dword [ebp - 0x4c], esp
push 0x100ef0a0
call fcn.10012510
sub esp, 0x18
mov byte [ebp - 4], 0x1d
mov ecx, esp
push 0x100ef088
call fcn.10012510
mov ecx, 4
mov byte [ebp - 4], 0x1e
call fcn.1006d380
mov byte [ebp - 4], 0
add esp, 0x78
mov edx, dword [ebp - 0x54]
cmp edx, 0x10
jb 0x100738eb
mov ecx, dword [ebp - 0x68]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100738e1
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100743c3
jmp 0x100738e1
cmp byte [0x100f25a3], 0
je 0x100738fd
push ecx
push ebx
push ecx
lea ecx, [ebp - 0x40]
call fcn.10054c40
sub esp, 0x30
lea eax, [ebp - 0x40]
mov ecx, esp
mov dword [ebp - 0x44], esp
push eax
call fcn.10071a10
mov edx, esi
mov byte [ebp - 4], 0x1f
lea ecx, [ebp - 0x68]
call fcn.1000ee30
sub esp, 0x18
mov byte [ebp - 4], 0x20
mov ecx, esp
mov dword [ebp - 0x50], esp
mov edx, 0x100ef148
push eax
call fcn.10016580
sub esp, 0x14
mov byte [ebp - 4], 0x21
mov ecx, esp
mov dword [ebp - 0x4c], esp
push 0x100ef0a0
call fcn.10012510
sub esp, 0x18
mov byte [ebp - 4], 0x22
mov ecx, esp
push 0x100ef088
call fcn.10012510
mov ecx, 4
mov byte [ebp - 4], 0x23
call fcn.1006d380
mov byte [ebp - 4], 0
add esp, 0x78
mov edx, dword [ebp - 0x54]
cmp edx, 0x10
jb 0x10073838
mov ecx, dword [ebp - 0x68]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1007382e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100743c8
push edx
push ecx
call fcn.10097faf
add esp, 8
push ecx
push edi
push ecx
lea ecx, [ebp - 0x40]
call fcn.10054c40
sub esp, 0x30
lea eax, [ebp - 0x40]
mov ecx, esp
mov dword [ebp - 0x44], esp
push eax
call fcn.10071a10
mov edx, esi
mov byte [ebp - 4], 0x24
lea ecx, [ebp - 0x68]
call fcn.1000ee30
sub esp, 0x18
mov byte [ebp - 4], 0x25
mov ecx, esp
mov dword [ebp - 0x50], esp
mov edx, 0x100ef160
push eax
call fcn.10016580
sub esp, 0x14
mov byte [ebp - 4], 0x26
mov ecx, esp
mov dword [ebp - 0x4c], esp
push 0x100ef0a0
call fcn.10012510
sub esp, 0x18
mov byte [ebp - 4], 0x27
mov ecx, esp
push 0x100ef088
call fcn.10012510
mov ecx, 4
mov byte [ebp - 4], 0x28
call fcn.1006d380
mov byte [ebp - 4], 0
add esp, 0x78
mov edx, dword [ebp - 0x54]
cmp edx, 0x10
jb 0x100738eb
mov ecx, dword [ebp - 0x68]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100738e1
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100743cd
push edx
push ecx
call fcn.10097faf
add esp, 8
mov byte [ebp - 0x68], 0
mov dword [ebp - 0x54], 0xf
mov dword [ebp - 0x58], 0
cmp dword [0x100f26dc], 0
mov eax, dword [0x1010455c]
lea ecx, [eax + esi*2]
mov eax, dword [0x10104ca8]
mov dword [eax + ecx*4 + 0x4544], ebx
mov eax, dword [0x1010455c]
lea ecx, [eax + esi*2]
mov eax, dword [0x10104ca8]
mov dword [eax + ecx*4 + 0x45a4], edi
jle 0x10074045
mov eax, dword [0x100f2710]
mov eax, dword [eax]
mov eax, dword [eax + 0x3f4]
mov ecx, dword [eax + 0x238]
test ecx, ecx
je 0x10074045
call fcn.10015850
jmp 0x10074045
test cl, 4
je 0x10074384
cmp esi, 0x123
ja 0x10074384
cmp ebx, 0x20a
jne 0x10073b08
sub esp, 0x18
mov ecx, esp
push 0xe
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
push str.SelectMainHero
mov byte [ecx], 0
call fcn.1000ecc0
call fcn.1006bfe0
add esp, 0x18
cmp esi, eax
je 0x10074384
sub esp, 0x18
mov ecx, esp
push 0xb
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
push str.SelectHero2
mov byte [ecx], 0
call fcn.1000ecc0
call fcn.1006bfe0
add esp, 0x18
cmp esi, eax
je 0x10074384
sub esp, 0x18
mov ecx, esp
push 0xb
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
push str.SelectHero3
mov byte [ecx], 0
call fcn.1000ecc0
call fcn.1006bfe0
add esp, 0x18
cmp esi, eax
je 0x10074384
sub esp, 0x18
mov ecx, esp
push 0xb
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
push str.SelectHero4
mov byte [ecx], 0
call fcn.1000ecc0
call fcn.1006bfe0
add esp, 0x18
cmp esi, eax
je 0x10074384
sub esp, 0x18
mov ecx, esp
push 0xb
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
push str.SelectHero5
mov byte [ecx], 0
call fcn.1000ecc0
call fcn.1006bfe0
add esp, 0x18
cmp esi, eax
je 0x10074384
sub esp, 0x18
mov ecx, esp
push 0xa
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
push str.CameraGrip
mov byte [ecx], 0
call fcn.1000ecc0
call fcn.1006bfe0
add esp, 0x18
cmp esi, eax
je 0x10074384
sub esp, 0x18
mov ecx, esp
push 0xd
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
push str.ChatWheelHot1
mov byte [ecx], 0
call fcn.1000ecc0
call fcn.1006bfe0
add esp, 0x18
cmp esi, eax
je 0x10074384
sub esp, 0x18
mov ecx, esp
push 0xd
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
push str.ChatWheelHot2
mov byte [ecx], 0
call fcn.1000ecc0
call fcn.1006bfe0
add esp, 0x18
cmp esi, eax
je 0x10074384
mov edx, edi
mov ecx, ebx
call fcn.10071be0
mov eax, dword [esi*4 + 0x1010481c]
mov byte [ebp - 0x48], 0
test dword [eax + 0x194], 0x1000
jne 0x10073b56
sub esp, 0x18
mov ecx, esp
push 8
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
push str.Teleport
mov byte [ecx], 0
call fcn.1000ecc0
call fcn.1006bfe0
add esp, 0x18
cmp esi, eax
jne 0x10073b5a
mov byte [ebp - 0x48], 1
push dword [ebp - 0x48]
mov edx, ebx
lea ecx, [ebp - 0x68]
push edi
call fcn.1002c3b0
mov ecx, dword [esi*4 + 0x1010481c]
add esp, 8
add ecx, 0x210
push eax
call fcn.10012470
mov edx, dword [ebp - 0x54]
cmp edx, 0x10
jb 0x10073bb2
mov ecx, dword [ebp - 0x68]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10073ba8
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100743d2
push edx
push ecx
call fcn.10097faf
add esp, 8
mov ecx, dword [esi*4 + 0x1010481c]
cmp dword [ecx + 0x224], 0x10
lea eax, [ecx + 0x210]
jb 0x10073bca
mov eax, dword [eax]
push eax
add ecx, 0x868
call fcn.10018fd0
mov eax, dword [esi*4 + 0x1010481c]
mov eax, dword [eax + 0x194]
test eax, 0x800
je 0x10073d6e
push ecx
push ebx
push ecx
lea ecx, [ebp - 0x40]
call fcn.10054c40
sub esp, 0x30
lea eax, [ebp - 0x40]
mov ecx, esp
mov dword [ebp - 0x44], esp
push eax
call fcn.10071a10
sub esp, 0x18
mov byte [ebp - 4], 0x29
mov eax, dword [esi*4 + 0x1010481c]
mov ecx, esp
add eax, 0x126c
mov dword [ebp - 0x50], esp
push eax
call fcn.10012510
sub esp, 0x18
mov byte [ebp - 4], 0x2a
mov eax, dword [esi*4 + 0x1010481c]
mov ecx, esp
add eax, 0x1f8
mov dword [ebp - 0x4c], esp
push eax
call fcn.10012510
sub esp, 0x18
mov byte [ebp - 4], 0x2b
mov ecx, esp
push 0x100ef088
call fcn.10012510
mov ecx, dword [esi*4 + 0x1010481c]
mov byte [ebp - 4], 0
mov ecx, dword [ecx + 0x1c8]
call fcn.1006d380
add esp, 0x74
push edi
push ecx
lea ecx, [ebp - 0x40]
call fcn.10054c40
sub esp, 0x30
lea eax, [ebp - 0x40]
mov ecx, esp
mov dword [ebp - 0x44], esp
push eax
call fcn.10071a10
sub esp, 0x18
mov byte [ebp - 4], 0x2c
mov eax, dword [esi*4 + 0x1010481c]
mov ecx, esp
add eax, 0x1284
mov dword [ebp - 0x50], esp
push eax
call fcn.10012510
sub esp, 0x18
mov byte [ebp - 4], 0x2d
mov eax, dword [esi*4 + 0x1010481c]
mov ecx, esp
add eax, 0x1f8
mov dword [ebp - 0x4c], esp
push eax
call fcn.10012510
sub esp, 0x18
mov byte [ebp - 4], 0x2e
mov ecx, esp
push 0x100ef088
call fcn.10012510
mov ecx, dword [esi*4 + 0x1010481c]
mov byte [ebp - 4], 0
mov ecx, dword [ecx + 0x1c8]
call fcn.1006d380
add esp, 0x60
mov ecx, esp
mov dword [ecx + 0x10], 0
push 0xb
mov dword [ecx + 0x14], 0xf
push str.GlyphButton
mov byte [ecx], 0
call fcn.1000ecc0
call fcn.1006bfe0
add esp, 0x18
cmp esi, eax
jne 0x10073d2e
mov edx, edi
mov ecx, ebx
call fcn.10028ec0
jmp 0x10074016
sub esp, 0x18
mov ecx, esp
push 0xf
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
push str.MenuTalentLearn
mov byte [ecx], 0
call fcn.1000ecc0
call fcn.1006bfe0
add esp, 0x18
cmp esi, eax
jne 0x10074016
mov edx, edi
mov ecx, ebx
call fcn.1004afa0
jmp 0x10074016
cmp dword [0x1010455c], 1
je 0x10073efa
sub esp, 0x18
mov ecx, esp
push 8
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
push str.Teleport
mov byte [ecx], 0
call fcn.1000ecc0
call fcn.1006bfe0
add esp, 0x18
cmp esi, eax
jne 0x10073db2
push edi
push ebx
call sym.WarCraftHelper.dll_SetButtonTeleportKey
jmp 0x10073df0
sub esp, 0x18
mov ecx, esp
push 0xe
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
push str.SelectMainHero
mov byte [ecx], 0
call fcn.1000ecc0
call fcn.1006bfe0
add esp, 0x18
cmp esi, eax
jne 0x10073df0
mov eax, dword [esi*4 + 0x1010481c]
mov eax, dword [eax + 0x1e8]
mov dword [ebp - 0x4c], eax
mov eax, dword [esi*4 + 0x1010481c]
test byte [eax + 0x194], 8
je 0x10074016
cmp byte [0x100f25a3], 0
je 0x10074016
push ecx
push ebx
push ecx
lea ecx, [ebp - 0x40]
call fcn.10054c40
sub esp, 0x30
lea eax, [ebp - 0x40]
mov ecx, esp
mov dword [ebp - 0x44], esp
push eax
call fcn.10071a10
sub esp, 0x18
mov byte [ebp - 4], 0x2f
mov eax, dword [esi*4 + 0x1010481c]
mov ecx, esp
add eax, 0x126c
mov dword [ebp - 0x50], esp
push eax
call fcn.10012510
sub esp, 0x18
mov byte [ebp - 4], 0x30
mov eax, dword [esi*4 + 0x1010481c]
mov ecx, esp
add eax, 0x1f8
mov dword [ebp - 0x48], esp
push eax
call fcn.10012510
sub esp, 0x18
mov byte [ebp - 4], 0x31
mov ecx, esp
push 0x100ef088
call fcn.10012510
mov ecx, dword [esi*4 + 0x1010481c]
mov byte [ebp - 4], 0
mov ecx, dword [ecx + 0x1c8]
call fcn.1006d380
mov eax, dword [ebp - 0x4c]
add esp, 0x74
add eax, edi
push eax
push ecx
lea ecx, [ebp - 0x40]
call fcn.10054c40
sub esp, 0x30
lea eax, [ebp - 0x40]
mov ecx, esp
mov dword [ebp - 0x6c], esp
push eax
call fcn.10071a10
sub esp, 0x18
mov byte [ebp - 4], 0x32
mov eax, dword [esi*4 + 0x1010481c]
mov ecx, esp
add eax, 0x1284
mov dword [ebp - 0x44], esp
push eax
call fcn.10012510
sub esp, 0x18
mov byte [ebp - 4], 0x33
mov eax, dword [esi*4 + 0x1010481c]
mov ecx, esp
add eax, 0x1f8
mov dword [ebp - 0x50], esp
push eax
call fcn.10012510
mov byte [ebp - 4], 0x34
jmp 0x10073fee
test al, 8
je 0x10074016
cmp byte [0x100f25a3], 0
je 0x10074016
push ecx
push ebx
push ecx
lea ecx, [ebp - 0x40]
call fcn.10054c40
sub esp, 0x30
lea eax, [ebp - 0x40]
mov ecx, esp
mov dword [ebp - 0x6c], esp
push eax
call fcn.10071a10
sub esp, 0x18
mov byte [ebp - 4], 0x35
mov eax, dword [esi*4 + 0x1010481c]
mov ecx, esp
add eax, 0x129c
mov dword [ebp - 0x44], esp
push eax
call fcn.10012510
sub esp, 0x18
mov byte [ebp - 4], 0x36
mov eax, dword [esi*4 + 0x1010481c]
mov ecx, esp
add eax, 0x1f8
mov dword [ebp - 0x50], esp
push eax
call fcn.10012510
sub esp, 0x18
mov byte [ebp - 4], 0x37
mov ecx, esp
push 0x100ef088
call fcn.10012510
mov ecx, dword [esi*4 + 0x1010481c]
mov byte [ebp - 4], 0
mov ecx, dword [ecx + 0x1c8]
call fcn.1006d380
add esp, 0x74
push edi
push ecx
lea ecx, [ebp - 0x40]
call fcn.10054c40
sub esp, 0x30
lea eax, [ebp - 0x40]
mov ecx, esp
mov dword [ebp - 0x6c], esp
push eax
call fcn.10071a10
sub esp, 0x18
mov byte [ebp - 4], 0x38
mov eax, dword [esi*4 + 0x1010481c]
mov ecx, esp
add eax, 0x12b4
mov dword [ebp - 0x44], esp
push eax
call fcn.10012510
sub esp, 0x18
mov byte [ebp - 4], 0x39
mov eax, dword [esi*4 + 0x1010481c]
mov ecx, esp
add eax, 0x1f8
mov dword [ebp - 0x50], esp
push eax
call fcn.10012510
mov byte [ebp - 4], 0x3a
sub esp, 0x18
mov ecx, esp
push 0x100ef088
call fcn.10012510
mov ecx, dword [esi*4 + 0x1010481c]
mov byte [ebp - 4], 0
mov ecx, dword [ecx + 0x1c8]
call fcn.1006d380
add esp, 0x78
mov ecx, dword [esi*4 + 0x1010481c]
test byte [ecx + 0x194], 8
je 0x10074045
mov eax, dword [0x1010455c]
mov dword [ecx + eax*4 + 0x1a34], ebx
mov ecx, dword [esi*4 + 0x1010481c]
mov eax, dword [0x1010455c]
mov dword [ecx + eax*4 + 0x1a3c], edi
mov eax, dword [0x10104818]
mov byte [eax], 0
mov eax, dword [0x10104818]
mov ecx, dword [eax + 4]
cmp ecx, 0xffffffff
je 0x100740fd
imul edi, ecx, 0xe4
lea esi, [eax + 0xb50]
add esi, edi
cmp byte [esi], 0
je 0x100740ab
push 7
push dword [esi + 4]
call dword [0x100f273c]
push dword [esi + 4]
call dword [0x100f2714]
push 0
push dword [esi + 4]
call dword [0x100f273c]
cmp byte [esi], 0
je 0x100740a6
mov eax, dword [esi + 0x34]
mov byte [esi + 1], 0
mov dword [eax + 0xb0], 0
mov eax, dword [0x10104818]
cmp byte [edi + eax + 0x5f8], 0
lea ecx, [edi + eax]
je 0x100740d4
mov eax, dword [ecx + 0x62c]
mov byte [ecx + 0x5f9], 0
mov dword [eax + 0xb0], 0
mov eax, dword [0x10104818]
cmp byte [edi + eax + 0x10a8], 0
lea ecx, [edi + eax]
je 0x100740fd
mov eax, dword [ecx + 0x10dc]
mov byte [ecx + 0x10a9], 0
mov dword [eax + 0xb0], 0
mov eax, dword [0x10104818]
mov dword [eax + 4], 0xffffffff
mov eax, dword [0x10104ca8]
mov byte [eax], 0
mov eax, dword [0x10104ca8]
mov ecx, dword [eax + 4]
cmp ecx, 0xffffffff
je 0x100741bc
imul edi, ecx, 0xe4
lea esi, [eax + 0x1694]
add esi, edi
cmp byte [esi], 0
je 0x1007416a
push 7
push dword [esi + 4]
call dword [0x100f273c]
push dword [esi + 4]
call dword [0x100f2714]
push 0
push dword [esi + 4]
call dword [0x100f273c]
cmp byte [esi], 0
je 0x10074165
mov eax, dword [esi + 0x34]
mov byte [esi + 1], 0
mov dword [eax + 0xb0], 0
mov eax, dword [0x10104ca8]
cmp byte [edi + eax + 0xbe4], 0
lea ecx, [edi + eax]
je 0x10074193
mov eax, dword [ecx + 0xc18]
mov byte [ecx + 0xbe5], 0
mov dword [eax + 0xb0], 0
mov eax, dword [0x10104ca8]
cmp byte [edi + eax + 0x2144], 0
lea ecx, [edi + eax]
je 0x100741bc
mov eax, dword [ecx + 0x2178]
mov byte [ecx + 0x2145], 0
mov dword [eax + 0xb0], 0
mov eax, dword [0x10104ca8]
mov dword [eax + 4], 0xffffffff
mov esi, 0x1010481c
mov eax, dword [esi]
mov byte [eax], 0
mov edi, dword [esi]
test byte [edi + 0x194], 8
je 0x100742d3
cmp byte [edi + 0x6a0], 0
je 0x1007422d
push 7
push dword [edi + 0x6a4]
call dword [0x100f273c]
push dword [edi + 0x6a4]
call dword [0x100f2714]
push 0
push dword [edi + 0x6a4]
call dword [0x100f273c]
cmp byte [edi + 0x6a0], 0
je 0x1007422d
mov eax, dword [edi + 0x6d4]
mov byte [edi + 0x6a1], 0
mov dword [eax + 0xb0], 0
mov eax, dword [esi]
cmp byte [eax + 0x5bc], 0
je 0x10074251
mov byte [eax + 0x5bd], 0
mov eax, dword [eax + 0x5f0]
mov dword [eax + 0xb0], 0
mov eax, dword [esi]
cmp byte [eax + 0x784], 0
je 0x10074273
mov byte [eax + 0x785], 0
mov eax, dword [eax + 0x7b8]
mov dword [eax + 0xb0], 0
mov eax, dword [esi]
cmp byte [eax + 0x3f4], 0
je 0x1007429d
push dword [eax + 0x3fc]
call dword [0x100f2740]
test eax, eax
jle 0x1007429d
mov byte [eax + 0x28f], 0x14
mov dword [eax + 0x168], 1
mov eax, dword [esi]
cmp byte [eax + 0x4d8], 0
je 0x100742d3
push dword [eax + 0x4e0]
call dword [0x100f2740]
test eax, eax
je 0x100742d3
mov dword [eax + 0xac], 0x8c
mov dword [eax + 0x1f4], 0x8cffffff
mov byte [eax + 0x23c], 1
add esi, 4
cmp esi, 0x10104ca8
jl 0x100741c8
cmp byte [0x10103fe4], 0
je 0x10074354
cmp dword [0x10103fe8], 5
jne 0x10074354
mov esi, dword [0x100f26c0]
cmp esi, dword [0x100f25fc]
jae 0x10074354
mov edi, dword [esi*4 + 0x1010481c]
test dword [edi + 0x194], 0x40000
je 0x1007434b
mov edi, dword [edi + 0xa40]
cmp byte [edi], 0
je 0x1007434b
mov eax, dword [edi + 8]
test eax, eax
jle 0x1007434b
push eax
call dword [0x100f2740]
test eax, eax
jle 0x1007434b
mov edx, dword [eax + 0x1d4]
test dl, 1
jne 0x10074344
inc edx
mov dword [eax + 0x1d4], edx
mov ecx, edi
call fcn.1001afe0
inc esi
cmp esi, dword [0x100f25fc]
jb 0x10074302
mov edx, dword [ebp - 0x18]
cmp edx, 0x10
jb 0x10074384
mov ecx, dword [ebp - 0x2c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1007437a
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100743d7
push edx
push ecx
call fcn.10097faf
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.10097f9e
mov esp, ebp
pop ebp
ret
call fcn.1009d41c
call fcn.1009d41c
call fcn.1009d41c
call fcn.1009d41c
call fcn.1009d41c
call fcn.1009d41c
call fcn.1009d41c
call fcn.1009d41c
call fcn.1009d41c
call fcn.1009d41c
call fcn.1009d41c
call fcn.1009d41c
int3