Function at 0x403cf0
Capabilities:
Manipulate console buffer

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x54
mov eax, dword [0x435070]
xor eax, esp
mov dword [esp + 0x50], eax
push ebx
push esi
xor eax, eax
mov ebx, ecx
push edi
mov dword [esp + 0x18], ebx
mov esi, eax
mov dword [esp + 0x24], eax
push 0xfffffffffffffff5
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
mov edi, eax
lea eax, [esp + 0x44]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_GetConsoleScreenBufferInfo]
movsx edx, word [esp + 0x46]
lea eax, [esp + 0x40]
movsx ecx, word [esp + 0x44]
push eax
imul edx, ecx
push esi
push edx
push 0x20
push edi
call dword [sym.imp.KERNEL32.dll_FillConsoleOutputCharacterA]
movsx ecx, word [esp + 0x46]
lea eax, [esp + 0x40]
push eax
movsx eax, word [esp + 0x48]
imul ecx, eax
push esi
push ecx
push 7
push edi
call dword [sym.imp.KERNEL32.dll_FillConsoleOutputAttribute]
push esi
push edi
call dword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
mov ecx, ebx
call fcn.00403c50
mov eax, dword [ebp + 8]
sub eax, 0
je 0x403d94
sub eax, 1
je 0x403d8d
sub eax, 1
jne 0x403db5
mov edx, str.Map:_Howling_Abyss
jmp 0x403d99
mov edx, str.Map:_The_Twisted_Treeline
jmp 0x403d99
mov edx, str.Map:_Summoners_Rift
mov ecx, 0x435f80
call fcn.00403150
push eax
call fcn.004033f0
add esp, 4
push eax
call fcn.004033f0
add esp, 4
call fcn.0040eb40
cdq
idiv dword [ebx + 0x174]
mov eax, dword [esp + 0x18]
mov ebx, edx
mov edi, dword [eax + 0x158]
mov dword [esp + 0x20], edi
call fcn.0040eb40
mov ecx, dword [esp + 0x18]
cdq
mov ecx, dword [ecx + 0x15c]
add ecx, edi
idiv ecx
mov eax, dword [esp + 0x20]
mov edi, edx
cmp edi, eax
jl 0x403ef0
sub edi, eax
mov eax, dword [esp + 0x18]
push str.Teemo
lea ecx, [edi + edi*2]
mov edi, dword [eax + 4]
shl ecx, 3
add edi, ecx
mov dword [esp + 0x20], ecx
mov ecx, edi
call fcn.00406bb0
test al, al
je 0x403e4b
mov edx, str.Satan
mov ecx, 0x435f80
call fcn.00403150
cmp dword [edi + 0x14], 0x10
mov ecx, dword [edi + 0x10]
jb 0x403e32
mov edi, dword [edi]
push ecx
mov edx, edi
mov ecx, eax
call fcn.00406de0
add esp, 4
push eax
call fcn.004033f0
mov ebx, dword [esp + 0x20]
jmp 0x403ebc
push str.Ryze
mov ecx, edi
call fcn.00406bb0
test al, al
je 0x403e62
mov edx, str.Chopin
jmp 0x403e1d
lea ecx, [ebx + ebx*2]
mov ebx, dword [esp + 0x18]
mov eax, dword [ebx + 0x1c]
cmp dword [eax + ecx*8 + 0x14], 0x10
lea edx, [eax + ecx*8]
mov eax, dword [edx + 0x10]
jb 0x403e7b
mov edx, dword [edx]
push eax
mov ecx, 0x435f80
call fcn.00406de0
mov edi, dword [ebx + 4]
add esp, 4
mov ebx, dword [esp + 0x1c]
mov edx, 0x43135c
mov ecx, eax
add edi, ebx
call fcn.00403150
cmp dword [edi + 0x14], 0x10
mov ecx, dword [edi + 0x10]
jb 0x403ea9
mov edi, dword [edi]
push ecx
mov edx, edi
mov ecx, eax
call fcn.00406de0
add esp, 4
push eax
call fcn.004033f0
mov eax, dword [esp + 0x1c]
add esp, 4
mov eax, dword [eax + 4]
add eax, ebx
mov ebx, dword [esp + 0x18]
lea edi, [ebx + 0x38]
mov dword [esp + 0x20], edi
cmp edi, eax
je 0x403ee3
push 0xffffffffffffffff
push 0
push eax
mov ecx, edi
call fcn.00402830
mov dword [esp + 0x1c], 1
jmp 0x403f7b
mov eax, dword [esp + 0x18]
lea ecx, [ebx + ebx*2]
mov eax, dword [eax + 0x1c]
cmp dword [eax + ecx*8 + 0x14], 0x10
lea edx, [eax + ecx*8]
mov eax, dword [edx + 0x10]
jb 0x403f09
mov edx, dword [edx]
push eax
mov ecx, 0x435f80
call fcn.00406de0
mov ecx, dword [esp + 0x1c]
lea ebx, [edi + edi*2]
add esp, 4
shl ebx, 3
mov edx, 0x43135c
mov edi, dword [ecx]
mov ecx, eax
add edi, ebx
call fcn.00403150
cmp dword [edi + 0x14], 0x10
mov ecx, dword [edi + 0x10]
jb 0x403f3c
mov edi, dword [edi]
push ecx
mov edx, edi
mov ecx, eax
call fcn.00406de0
add esp, 4
push eax
call fcn.004033f0
mov eax, dword [esp + 0x1c]
add esp, 4
mov eax, dword [eax]
add eax, ebx
mov ebx, dword [esp + 0x18]
lea edi, [ebx + 0x38]
mov dword [esp + 0x20], edi
cmp edi, eax
je 0x403f75
push 0xffffffffffffffff
push 0
push eax
mov ecx, edi
call fcn.00402830
xor eax, eax
mov dword [esp + 0x1c], eax
push str.Udyr
mov ecx, edi
call fcn.00406bb0
test al, al
je 0x403fa1
call fcn.0040eb40
mov edx, eax
and edx, 0x80000003
jns 0x403fae
dec edx
or edx, 0xfffffffc
inc edx
jmp 0x403fae
call fcn.0040eb40
cdq
mov ecx, 3
idiv ecx
cmp edx, 3
ja case.default.0x403fb3
jmp dword [edx*4 + 0x404660]
mov edx, str.Max:_Q
jmp 0x403fd4
mov edx, str.Max:_W
jmp 0x403fd4
mov edx, str.Max:_E
jmp 0x403fd4
mov edx, str.Max:_R
mov ecx, 0x435f80
call fcn.00403150
push eax
call fcn.004033f0
add esp, 4
push str.KhaZix
mov ecx, edi
call fcn.00406bb0
test al, al
je case.default.0x40400d
call fcn.0040eb40
and eax, 0x80000003
jns 0x404008
dec eax
or eax, 0xfffffffc
inc eax
cmp eax, 3
ja case.default.0x40400d
jmp dword [eax*4 + 0x404670]
mov edx, str.First_upgrade:_Q
jmp 0x40402e
mov edx, str.First_upgrade:_W
jmp 0x40402e
mov edx, str.First_upgrade:_E
jmp 0x40402e
mov edx, str.First_upgrade:_R
mov ecx, 0x435f80
call fcn.00403150
push eax
call fcn.004033f0
add esp, 4
push str.Gangplank
mov ecx, edi
call fcn.00406bb0
test al, al
je 0x404093
call fcn.0040eb40
cdq
mov ecx, 3
idiv ecx
sub edx, 0
je 0x40407b
sub edx, 1
je 0x404074
sub edx, 1
jne 0x404093
mov edx, str.First_upgrade:_Fire_at_Will
jmp 0x404080
mov edx, str.First_upgrade:_Raise_Morale
jmp 0x404080
mov edx, str.First_upgrade:_Deaths_Daughter
mov ecx, 0x435f80
call fcn.00403150
push eax
call fcn.004033f0
add esp, 4
call fcn.0040eb40
cdq
mov ecx, 9
idiv ecx
cmp dword [ebp + 8], 2
mov edi, edx
jne 0x4040bb
cmp edi, 7
jl 0x4040ce
sub edi, 7
lea eax, [edi*2 + 0x1f]
add eax, edi
jmp 0x4040d4
cmp edi, 7
jl 0x4040ce
sub edi, 7
lea eax, [edi*2 + 0x25]
add eax, edi
jmp 0x4040d4
lea eax, [edi + 5]
lea eax, [edi + eax*2]
cmp dword [ebx + eax*8 + 0x14], 0x10
lea edx, [ebx + eax*8]
mov eax, dword [edx + 0x10]
jb 0x4040e3
mov edx, dword [edx]
push eax
mov ecx, 0x435f80
call fcn.00406de0
add esp, 4
call fcn.0040eb40
cdq
mov ecx, 9
idiv ecx
cmp dword [ebp + 8], 2
jne 0x40411b
cmp edx, 7
jl 0x404132
sub edx, 7
cmp edi, edx
je 0x4040f1
lea eax, [edx*2 + 0x1f]
add eax, edx
jmp 0x40413c
cmp edx, 7
jl 0x404132
sub edx, 7
cmp edi, edx
je 0x4040f1
lea eax, [edx*2 + 0x25]
add eax, edx
jmp 0x40413c
cmp edi, edx
je 0x4040f1
lea eax, [edx + 5]
lea eax, [edx + eax*2]
mov edx, 0x431444
lea edi, [ebx + eax*8]
mov ecx, 0x435f80
call fcn.00403150
cmp dword [edi + 0x14], 0x10
mov ecx, dword [edi + 0x10]
jb 0x404159
mov edi, dword [edi]
push ecx
mov edx, edi
mov ecx, eax
call fcn.00406de0
add esp, 4
push eax
call fcn.004033f0
add esp, 4
call fcn.0040eb40
cdq
mov ecx, 9
idiv ecx
mov eax, dword [ebx + 0x18]
lea ecx, [edx + edx*2]
mov edx, str.Keystone:
lea edi, [eax + ecx*8]
mov ecx, 0x435f80
call fcn.00403150
cmp dword [edi + 0x14], 0x10
mov ecx, dword [edi + 0x10]
jb 0x40419f
mov edi, dword [edi]
push ecx
mov edx, edi
mov ecx, eax
call fcn.00406de0
add esp, 4
push eax
call fcn.004033f0
add esp, 4
mov ebx, 5
mov edx, str.Items:
mov dword [esp + 0x14], ebx
mov ecx, 0x435f80
call fcn.00403150
push eax
call fcn.004033f0
mov edi, dword [esp + 0x24]
add esp, 4
mov ecx, edi
push str.Viktor
call fcn.00406bb0
test al, al
je 0x404274
mov edx, 0x431478
mov ecx, 0x435f80
call fcn.00403150
mov edx, str.Perfect_Hex_Core
mov ecx, eax
call fcn.00403150
call fcn.0040eb40
and eax, 0x80000003
jns 0x40421a
dec eax
or eax, 0xfffffffc
inc eax
cmp eax, 3
ja case.default.0x404223
jmp dword [eax*4 + 0x404680]
mov edx, str.__first_upgrade:_Q_
mov ecx, 0x435f80
call fcn.00403150
jmp 0x4042cf
mov edx, str.__first_upgrade:_W_
mov ecx, 0x435f80
call fcn.00403150
jmp 0x4042cf
mov edx, str.__first_upgrade:_E_
mov ecx, 0x435f80
call fcn.00403150
jmp 0x4042cf
mov edx, str.__first_upgrade:_R_
mov ecx, 0x435f80
call fcn.00403150
jmp 0x4042cf
push str.Cassiopeia
mov ecx, edi
call fcn.00406bb0
test al, al
je 0x40428f
mov ebx, 6
mov dword [esp + 0x14], ebx
jmp case.default.0x404223
call fcn.0040eb40
mov edi, dword [esp + 0x18]
cdq
idiv dword [edi + 0x160]
mov eax, dword [edi + 8]
lea ecx, [edx + edx*2]
mov edx, 0x431478
lea edi, [eax + ecx*8]
mov ecx, 0x435f80
call fcn.00403150
cmp dword [edi + 0x14], 0x10
mov ecx, dword [edi + 0x10]
jb 0x4042c2
mov edi, dword [edi]
push ecx
mov edx, edi
mov ecx, eax
call fcn.00406de0
add esp, 4
push eax
call fcn.004033f0
add esp, 4
mov esi, dword [esp + 0x18]
xor edi, edi
mov byte [esp + 0x13], 0
mov ecx, dword [ebp + 8]
test ecx, ecx
jne 0x4042f8
call fcn.0040eb40
cdq
idiv dword [esi + 0x164]
jmp 0x40431c
cmp ecx, 1
jne 0x40430b
call fcn.0040eb40
cdq
idiv dword [esi + 0x168]
jmp 0x40431c
cmp ecx, 2
jne 0x404323
call fcn.0040eb40
cdq
idiv dword [esi + 0x16c]
mov ecx, dword [ebp + 8]
mov dword [esp + edi*4 + 0x28], edx
cmp edi, 5
ja case.default.0x40432c
jmp dword [edi*4 + 0x404690]
mov eax, dword [esp + 0x3c]
cmp eax, dword [esp + 0x38]
jne case.0x40432c.4
mov edi, 4
jmp case.default.0x40432c
mov eax, dword [esp + edi*4 + 0x28]
cmp eax, dword [esp + 0x34]
jne case.0x40432c.3
dec edi
jmp case.default.0x40432c
mov eax, dword [esp + edi*4 + 0x28]
cmp eax, dword [esp + 0x30]
jne case.0x40432c.2
dec edi
jmp case.default.0x40432c
mov eax, dword [esp + edi*4 + 0x28]
cmp eax, dword [esp + 0x2c]
jne case.0x40432c.1
dec edi
jmp case.default.0x40432c
mov eax, dword [esp + edi*4 + 0x28]
cmp eax, dword [esp + 0x28]
jne case.0x40432c.0
dec edi
jmp case.default.0x40432c
mov eax, ecx
sub eax, 0
je 0x40449b
sub eax, 1
je 0x40444a
sub eax, 1
jne case.default.0x40432c
mov eax, dword [esp + edi*4 + 0x28]
push str.Face_of_the_Mountain
lea ecx, [eax + eax*2]
mov eax, dword [esi + 0x14]
lea ebx, [eax + ecx*8]
mov ecx, ebx
call fcn.00406bb0
test al, al
jne 0x4043e1
push str.Frost_Queens_Claim
mov ecx, ebx
call fcn.00406bb0
test al, al
jne 0x4043e1
push str.Talisman_of_Ascension
mov ecx, ebx
call fcn.00406bb0
test al, al
je 0x4043f3
cmp byte [esp + 0x13], 0
je 0x4043ee
dec edi
jmp 0x4045c5
mov byte [esp + 0x13], 1
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x404411
push str.Runaans_Hurricane
mov ecx, ebx
call fcn.00406bb0
test al, al
je 0x40442d
dec edi
jmp 0x4045c5
cmp eax, 1
jne 0x40442d
push str.Ravenous_Hydra
mov ecx, ebx
call fcn.00406bb0
test al, al
jne 0x40440b
push str.Titanic_Hydra
jmp 0x404400
push str.Cassiopeia
lea ecx, [esi + 0x38]
call fcn.00406bb0
test al, al
je 0x40458f
lea eax, [edi + 1]
jmp 0x404592
mov eax, dword [esp + edi*4 + 0x28]
push str.Face_of_the_Mountain
lea ecx, [eax + eax*2]
mov eax, dword [esi + 0x10]
lea ebx, [eax + ecx*8]
mov ecx, ebx
call fcn.00406bb0
test al, al
jne 0x40448b
push str.Frost_Queens_Claim
mov ecx, ebx
call fcn.00406bb0
test al, al
jne 0x40448b
push str.Talisman_of_Ascension
mov ecx, ebx
call fcn.00406bb0
test al, al
je 0x4043f3
cmp byte [esp + 0x13], 0
jne 0x40440b
jmp 0x4043ee
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x4044c4
mov eax, dword [esp + edi*4 + 0x28]
push str.Runaans_Hurricane
lea ecx, [eax + eax*2]
mov eax, dword [esi + 0xc]
lea ecx, [eax + ecx*8]
call fcn.00406bb0
test al, al
je 0x4044fe
dec edi
jmp case.default.0x40432c
cmp eax, 1
jne 0x4044fe
mov eax, dword [esp + edi*4 + 0x28]
push str.Ravenous_Hydra
lea ecx, [eax + eax*2]
mov eax, dword [esi + 0xc]
lea ebx, [eax + ecx*8]
mov ecx, ebx
call fcn.00406bb0
test al, al
jne 0x40440b
push str.Titanic_Hydra
mov ecx, ebx
call fcn.00406bb0
test al, al
jne 0x40440b
mov eax, dword [esp + edi*4 + 0x28]
push str.Eye_of_the_Equinox
lea ecx, [eax + eax*2]
mov eax, dword [esi + 0xc]
lea ebx, [eax + ecx*8]
mov ecx, ebx
call fcn.00406bb0
test al, al
jne 0x40456b
push str.Eye_of_the_Oasis
mov ecx, ebx
call fcn.00406bb0
test al, al
jne 0x40456b
push str.Eye_of_the_Watchers
mov ecx, ebx
call fcn.00406bb0
test al, al
jne 0x40456b
push str.Face_of_the_Mountain
mov ecx, ebx
call fcn.00406bb0
test al, al
jne 0x40456b
push str.Frost_Queens_Claim
mov ecx, ebx
call fcn.00406bb0
test al, al
jne 0x40456b
push str.Talisman_of_Ascension
mov ecx, ebx
call fcn.00406bb0
test al, al
je 0x40457b
cmp byte [esp + 0x13], 0
jne 0x40440b
mov byte [esp + 0x13], 1
push str.Cassiopeia
lea ecx, [esi + 0x38]
call fcn.00406bb0
test al, al
lea eax, [edi + 1]
jne 0x404592
lea eax, [edi + 2]
push eax
call fcn.00404f60
mov edx, 0x43158c
mov ecx, eax
call fcn.00403150
cmp dword [ebx + 0x14], 0x10
mov ecx, dword [ebx + 0x10]
jb 0x4045af
mov ebx, dword [ebx]
push ecx
mov edx, ebx
mov ecx, eax
call fcn.00406de0
add esp, 4
push eax
call fcn.004033f0
add esp, 4
mov ebx, dword [esp + 0x14]
inc edi
cmp edi, ebx
jl 0x4042e3
mov esi, dword [esp + 0x24]
push 0x435f80
call fcn.004033f0
add esp, 4
mov edx, str.Press:
mov ecx, 0x435f80
call fcn.00403150
push eax
call fcn.004033f0
add esp, 4
mov edx, str.__E__to_back_to_main_menu
mov ecx, 0x435f80
call fcn.00403150
push eax
call fcn.004033f0
add esp, 4
mov edx, str._ENTER_to_reroll
mov ecx, 0x435f80
call fcn.00403150
push eax
call fcn.004033f0
add esp, 4
mov edx, 0x431118
mov ecx, eax
call fcn.00403150
call fcn.00402330
cmp al, 0x45
je 0x40464c
mov ebx, dword [esp + 0x18]
cmp al, 0x65
jne 0x403d15
mov ecx, dword [esp + 0x5c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00409537
mov esp, ebp
pop ebp
ret 4