Function at 0x43cd90
Capabilities:
Log keystrokes via polling

Disassembly:
mov eax, dword [0x51b718]
sub esp, 0x27c
push ebx
push ebp
xor ebp, ebp
push esi
cmp eax, ebp
push edi
jne 0x43cdb4
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x27c
ret 0x10
mov eax, dword [esp + 0x294]
cmp eax, 0xf
je case.0x43ed89.21018
cmp eax, 0x406
je 0x43f3b8
cmp eax, 0x2400
jne 0x43d29c
mov esi, dword [esp + 0x298]
cmp esi, 0x2af9
ja 0x43cfe0
je 0x43cf73
lea eax, [esi - 0x2711]
cmp eax, 4
ja case.0x43ed89.21018
jmp dword [eax*4 + 0x43f45c]
push ebp
mov ecx, 0x177c
call fcn.0044d8d0
mov edx, eax
mov ecx, 1
call fcn.0040e4e0
cmp eax, 1
jne case.0x43ed89.21018
mov ecx, dword [0x51b79c]
push 0xffffffffffffffff
push 0xbd9
call fcn.00446100
pop edi
pop esi
pop ebp
mov dword [0x496844], 4
mov eax, 1
pop ebx
add esp, 0x27c
ret 0x10
mov ecx, dword [0x51b79c]
push 0xffffffffffffffff
push 0xbfa
call fcn.00446100
push 0x10
mov byte [0x51b741], 0
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ah, 0x80
jne 0x43ce8e
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
test ah, 0x80
je 0x43e876
push ebp
push ebp
mov ecx, str.eightball
call fcn.004385b0
mov edx, eax
mov ecx, str.LastGameID
call fcn.004077a0
pop edi
pop esi
mov byte [0x4b0d38], al
pop ebp
mov dword [0x496844], 3
mov eax, 1
pop ebx
add esp, 0x27c
ret 0x10
mov ecx, dword [0x51b79c]
push 0xffffffffffffffff
push 0xbfa
call fcn.00446100
xor eax, eax
mov ecx, 0x51b6e8
mov dword [0x51b6e8], eax
mov dword [0x51b6e8], 0x51b774
mov dword [0x51b6ec], eax
mov dword [0x51b6ec], 0x51b764
call fcn.004294f0
test al, al
je case.0x43ed89.21018
jmp 0x43f307
mov ecx, dword [0x51b79c]
push 0xffffffffffffffff
push 0xbfa
call fcn.00446100
mov ecx, 0x1770
call fcn.0044d8d0
mov ecx, eax
call fcn.0044d8a0
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x27c
ret 0x10
mov ecx, dword [0x51b79c]
push 0xffffffffffffffff
push 0xbfa
call fcn.00446100
pop edi
pop esi
pop ebp
mov dword [0x496844], 0xa
mov eax, 1
pop ebx
add esp, 0x27c
ret 0x10
mov ecx, dword [0x51b79c]
push 0xffffffffffffffff
push 0xbd9
call fcn.00446100
mov edx, dword [0x496848]
push ebp
push ebp
mov ecx, str.GameSelect
call fcn.00407800
mov edx, dword [0x51b76c]
push ebp
push ebp
mov ecx, str.GameSelectIndex
call fcn.00407800
mov edx, dword [0x51b770]
push ebp
push ebp
mov ecx, str.GameSelectBase
call fcn.00407800
mov cl, byte [0x51b741]
pop edi
neg cl
sbb ecx, ecx
pop esi
add ecx, 0xf
pop ebp
mov dword [0x496844], ecx
mov eax, 1
pop ebx
add esp, 0x27c
ret 0x10
cmp esi, 0x2ee2
ja 0x43d446
je 0x43d418
lea eax, [esi - 0x2afa]
cmp eax, 0xd
ja case.0x43ed89.21018
jmp dword [eax*4 + 0x43f470]
mov ecx, dword [0x51b79c]
push 0xffffffffffffffff
push 0xbd9
call fcn.00446100
push ebp
push ebp
xor edx, edx
mov ecx, str.GameSelectBase
call fcn.00407800
push ebp
push ebp
xor edx, edx
mov ecx, str.GameSelectIndex
call fcn.00407800
pop edi
pop esi
pop ebp
mov dword [0x496844], 2
xor eax, eax
pop ebx
add esp, 0x27c
ret 0x10
mov ecx, dword [0x51b79c]
push 0xffffffffffffffff
push 0xbd9
call fcn.00446100
push ebp
push ebp
xor edx, edx
mov ecx, str.GameSelectBase
call fcn.00407800
push ebp
push ebp
xor edx, edx
mov ecx, str.GameSelectIndex
call fcn.00407800
pop edi
pop esi
pop ebp
mov dword [0x496844], 5
xor eax, eax
pop ebx
add esp, 0x27c
ret 0x10
mov ecx, dword [0x51b79c]
push 0xffffffffffffffff
push 0xbd9
call fcn.00446100
push ebp
push ebp
xor edx, edx
mov ecx, str.GameSelectBase
call fcn.00407800
push ebp
push ebp
xor edx, edx
mov ecx, str.GameSelectIndex
call fcn.00407800
pop edi
pop esi
pop ebp
mov dword [0x496844], 6
xor eax, eax
pop ebx
add esp, 0x27c
ret 0x10
mov ecx, dword [0x51b79c]
push 0xffffffffffffffff
push 0xbd9
call fcn.00446100
mov dl, byte [0x51b741]
pop edi
neg dl
sbb edx, edx
pop esi
and edx, 0xf
pop ebp
inc edx
mov eax, 1
mov dword [0x496844], edx
pop ebx
add esp, 0x27c
ret 0x10
mov ecx, dword [0x51b79c]
push 0xffffffffffffffff
push 0xbd9
call fcn.00446100
mov esi, dword [0x51b770]
mov eax, dword [0x51b74c]
sub esi, 6
xor ecx, ecx
mov dword [0x51b770], esi
mov eax, dword [eax]
cmp eax, ebp
je 0x43d158
mov edx, dword [eax]
cmp dword [edx], 0x2aff
je 0x43d156
mov eax, dword [eax + 4]
cmp eax, ebp
jne 0x43d143
jmp 0x43d158
mov ecx, dword [eax]
mov eax, dword [ecx + 4]
mov edx, dword [ecx + 0xc]
sub edx, eax
mov dword [ecx + 0xc], edx
jns 0x43d168
mov dword [ecx + 0xc], ebp
mov ecx, dword [0x51b74c]
mov eax, dword [ecx]
xor ecx, ecx
cmp eax, ebp
je 0x43d18b
mov edx, dword [eax]
cmp dword [edx], 0x2aff
je 0x43d189
mov eax, dword [eax + 4]
cmp eax, ebp
jne 0x43d176
jmp 0x43d18b
mov ecx, dword [eax]
push 0x51b76c
push ebp
call fcn.00445870
mov eax, dword [0x51b74c]
xor ecx, ecx
mov eax, dword [eax]
cmp eax, ebp
je 0x43d270
mov edx, dword [eax]
cmp dword [edx], 0x2aff
je 0x43d26e
mov eax, dword [eax + 4]
cmp eax, ebp
jne 0x43d1a7
jmp 0x43d270
mov ecx, dword [0x51b79c]
push 0xffffffffffffffff
push 0xbd9
call fcn.00446100
mov esi, dword [0x51b770]
mov edx, dword [0x51b74c]
add esi, 6
xor ecx, ecx
mov dword [0x51b770], esi
mov eax, dword [edx]
cmp eax, ebp
je 0x43d205
mov edx, dword [eax]
cmp dword [edx], 0x2aff
je 0x43d203
mov eax, dword [eax + 4]
cmp eax, ebp
jne 0x43d1f0
jmp 0x43d205
mov ecx, dword [eax]
mov eax, dword [ecx + 4]
mov esi, dword [ecx + 0xc]
mov edx, dword [ecx + 8]
add esi, eax
mov eax, esi
mov dword [ecx + 0xc], esi
cmp eax, edx
jle 0x43d221
mov edx, dword [ecx + 4]
sub eax, edx
mov dword [ecx + 0xc], eax
mov eax, dword [0x51b74c]
xor ecx, ecx
mov eax, dword [eax]
cmp eax, ebp
je 0x43d243
mov edx, dword [eax]
cmp dword [edx], 0x2aff
je 0x43d241
mov eax, dword [eax + 4]
cmp eax, ebp
jne 0x43d22e
jmp 0x43d243
mov ecx, dword [eax]
push 0x51b76c
push ebp
call fcn.00445870
mov eax, dword [0x51b74c]
xor ecx, ecx
mov eax, dword [eax]
cmp eax, ebp
je 0x43d270
mov edx, dword [eax]
cmp dword [edx], 0x2aff
je 0x43d26e
mov eax, dword [eax + 4]
cmp eax, ebp
jne 0x43d25b
jmp 0x43d270
mov ecx, dword [eax]
mov eax, dword [ecx + 0xc]
mov ecx, dword [0x51b76c]
lea edx, [ecx + eax]
mov ecx, dword [0x51b72c]
call fcn.00438580
push ebp
mov edx, 0x2afe
mov ecx, 1
mov byte [0x4b0d38], al
call fcn.00464bf0
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x27c
ret 0x10
xor ecx, ecx
mov cl, byte [0x4b0d38]
call fcn.004384d0
mov esi, eax
cmp esi, ebp
je case.0x43ed89.21018
mov ecx, dword [0x51b718]
push ebp
call fcn.00467d00
mov ecx, dword [0x51b718]
mov dword [esp + 0x18], ebp
mov dword [esp + 0x1c], ebp
mov eax, dword [ecx + 0x34]
mov edx, dword [ecx + 0x30]
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], edx
mov edx, dword [ecx]
lea eax, [esp + 0x18]
push eax
call dword [edx + 4]
lea edx, [esi + 0x80]
lea ecx, [esp + 0x84]
call fcn.004634d0
mov edx, str..smk
lea ecx, [esp + 0x84]
call fcn.00463540
push 0x495d50
lea edx, [esp + 0x88]
lea ecx, [esp + 0x18c]
call fcn.00435500
lea ecx, [esp + 0x188]
call fcn.0044db60
mov edx, 0x3e8
xor ecx, ecx
mov byte [0x496850], 1
call fcn.00464f30
mov ecx, dword [0x51b79c]
push 0xffffffffffffffff
push 0xfa8
call fcn.00446130
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x27c
ret 0x10
mov ecx, dword [0x51b79c]
push 0xffffffffffffffff
push 0xbea
call fcn.00446020
mov ecx, dword [0x51b74c]
mov eax, dword [ecx]
xor ecx, ecx
cmp eax, ebp
je 0x43d3a7
mov edx, dword [eax]
cmp dword [edx], 0x2aff
je 0x43d3a5
mov eax, dword [eax + 4]
cmp eax, ebp
jne 0x43d392
jmp 0x43d3a7
mov ecx, dword [eax]
add esi, 0xffffd501
push 0x51b76c
push esi
call fcn.00445870
mov eax, dword [0x51b74c]
xor ecx, ecx
mov eax, dword [eax]
cmp eax, ebp
je 0x43d3da
mov edx, dword [eax]
cmp dword [edx], 0x2aff
je 0x43d3d8
mov eax, dword [eax + 4]
cmp eax, ebp
jne 0x43d3c5
jmp 0x43d3da
mov ecx, dword [eax]
mov eax, dword [ecx + 0xc]
mov ecx, dword [0x51b76c]
lea edx, [eax + ecx]
mov ecx, dword [0x51b72c]
call fcn.00438580
push ebp
mov edx, 0x2afe
mov ecx, 1
mov byte [0x4b0d38], al
call fcn.00464bf0
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x27c
ret 0x10
mov ecx, dword [0x51b79c]
push 0xffffffffffffffff
push 0xbd9
call fcn.00446100
pop edi
pop esi
pop ebp
mov dword [0x496844], 8
mov eax, 1
pop ebx
add esp, 0x27c
ret 0x10
cmp esi, 0x32ca
ja 0x43d539
je 0x43d5f1
lea eax, [esi - 0x2ee3]
cmp eax, 4
ja case.0x43ed89.21018
jmp dword [eax*4 + 0x43f4a8]
mov ecx, dword [0x51b79c]
push 0xffffffffffffffff
push 0xbd9
call fcn.00446100
pop edi
pop esi
pop ebp
mov dword [0x496844], 0xf
mov eax, 1
pop ebx
add esp, 0x27c
ret 0x10
mov ecx, dword [0x51b79c]
push 0xffffffffffffffff
push 0xbd9
call fcn.00446100
push ebp
push ebp
mov edx, 2
jmp 0x43d4eb
mov ecx, dword [0x51b79c]
push 0xffffffffffffffff
push 0xbd9
call fcn.00446100
push ebp
push ebp
mov edx, 3
jmp 0x43d4eb
mov ecx, dword [0x51b79c]
push 0xffffffffffffffff
push 0xbd9
call fcn.00446100
push ebp
push ebp
mov edx, 4
mov ecx, str.NumPlayers
call fcn.00407800
pop edi
pop esi
pop ebp
mov byte [0x49d51a], 0
mov eax, 1
pop ebx
add esp, 0x27c
ret 0x10
mov ecx, dword [0x51b79c]
push 0xffffffffffffffff
push 0xbd9
call fcn.00446100
pop edi
pop esi
pop ebp
mov byte [0x49d51a], 1
mov eax, 1
pop ebx
add esp, 0x27c
ret 0x10
cmp esi, 0x4655
ja 0x43e47a
je 0x43e40a
cmp esi, 0x426e
ja 0x43de33
cmp esi, 0x426d
jae 0x43ddd6
cmp esi, 0x3e81
ja 0x43da4a
je 0x43da10
cmp esi, 0x36b2
ja 0x43d87b
je 0x43d802
sub esi, 0x32cb
je 0x43d76a
dec esi
je 0x43d5e4
sub esi, 0x3e5
jne case.0x43ed89.21018
mov ecx, dword [0x51b79c]
push 0xffffffffffffffff
push 0xbd9
call fcn.00446100
mov edx, dword [0x51da28]
push 0xa
push edx
call dword [sym.imp.USER32.dll_KillTimer]
call fcn.00429b60
pop edi
pop esi
pop ebp
mov dword [0x496844], 0x10
mov eax, 1
pop ebx
add esp, 0x27c
ret 0x10
cmp dword [0x5205f4], 0xd
jne case.0x43ed89.21018
mov eax, dword [0x51b738]
lea eax, [eax + eax*4]
lea ecx, [eax*4 + 0x4b60a4]
call fcn.0044d7c0
mov eax, dword [0x51b738]
lea ecx, [eax + eax*4]
xor eax, eax
lea edi, [ecx*4 + 0x4b60a4]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
je case.0x43ed89.21018
mov ecx, dword [0x51b79c]
push 0xffffffffffffffff
push 0xbd9
call fcn.00446100
mov ecx, dword [0x51b738]
mov al, byte [0x49d51a]
inc ecx
test al, al
mov dword [0x51b738], ecx
jne 0x43d6f5
push ebp
push ebp
mov edx, 2
mov ecx, str.NumPlayers
call fcn.004077a0
cmp dword [0x51b738], eax
jge 0x43d6f5
push ebp
push 0x495f68
push 0x4954c8
push ebp
xor edx, edx
mov ecx, 0x32cc
call fcn.00464b30
push eax
call fcn.0047e660
add esp, 0x14
xor edx, edx
mov ecx, 0x32cd
mov esi, eax
call fcn.00464b30
mov ecx, eax
call fcn.00440a80
xor edx, edx
mov ecx, 0x32cc
call fcn.00464b30
mov eax, dword [0x51b738]
push 0xf
mov ecx, 0x32cc
lea edx, [eax + eax*4]
lea edx, [edx*4 + 0x4b60a4]
call fcn.00423990
mov ecx, dword [esi + 0x70]
call fcn.004634b0
mov ecx, dword [esi + 0x70]
mov dword [esi + 0x7c], eax
call fcn.004634b0
mov dword [esi + 0x80], eax
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x27c
ret 0x10
mov ecx, dword [0x51b738]
xor eax, eax
cmp ecx, ebp
jle 0x43d74e
mov esi, 0x4b60a4
lea edi, [eax + 1]
lea eax, [esp + 0x5c]
push edi
push str.Player__d
push eax
call fcn.0047e3b7
add esp, 0xc
mov ecx, esi
call fcn.004634b0
test eax, eax
jne 0x43d732
lea edx, [esp + 0x5c]
mov ecx, esi
call fcn.004634d0
push ebp
push ebp
mov edx, esi
lea ecx, [esp + 0x64]
call fcn.004078c0
mov ecx, dword [0x51b738]
mov eax, edi
add esi, 0x14
cmp eax, ecx
jl 0x43d706
pop edi
pop esi
pop ebp
mov dword [0x496844], 3
mov eax, 1
pop ebx
add esp, 0x27c
ret 0x10
mov ecx, dword [0x51b79c]
push 0xffffffffffffffff
push 0xbd9
call fcn.00446100
mov eax, dword [0x51b738]
cmp eax, ebp
jle 0x43d7e6
mov ecx, eax
xor edx, edx
dec ecx
mov dword [0x51b738], ecx
mov ecx, 0x32cd
call fcn.00464b30
mov ecx, eax
call fcn.00440a80
xor edx, edx
mov ecx, 0x32cc
call fcn.00464b30
xor edx, edx
mov ecx, 0x32cc
call fcn.00464b30
mov eax, dword [0x51b738]
push 0xf
lea ecx, [eax + eax*4]
lea edx, [ecx*4 + 0x4b60a4]
mov ecx, 0x32cc
call fcn.00423990
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x27c
ret 0x10
pop edi
pop esi
pop ebp
mov dword [0x496844], 7
mov eax, 1
pop ebx
add esp, 0x27c
ret 0x10
mov ecx, dword [0x51b79c]
push 0xffffffffffffffff
push 0xbd9
call fcn.00446100
mov edx, dword [0x51da28]
push 0xa
push edx
call dword [sym.imp.USER32.dll_KillTimer]
call fcn.00429b60
xor eax, eax
mov ecx, 0x51b6e8
mov dword [0x51b6e8], eax
mov dword [0x51b6e8], 0x51b774
mov dword [0x51b6ec], eax
mov dword [0x51b6ec], 0x51b764
call fcn.004294f0
test al, al
je case.0x43ed89.21018
call fcn.00429b60
pop edi
pop esi
pop ebp
mov dword [0x496844], 0xc
mov eax, 1
pop ebx
add esp, 0x27c
ret 0x10
sub esi, 0x3a99
je 0x43d913
dec esi
je 0x43d8ac
dec esi
jne case.0x43ed89.21018
cmp dword [0x5205f4], 0xd
je 0x43d913
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x27c
ret 0x10
mov ecx, dword [0x51b79c]
push 0xffffffffffffffff
push 0xbd9
call fcn.00446100
call fcn.00429b60
xor ecx, ecx
mov dword [0x51b6e8], ecx
mov dword [0x51b6e8], 0x51b774
mov dword [0x51b6ec], ecx
mov ecx, 0x51b6e8
mov dword [0x51b6ec], 0x51b764
call fcn.004294f0
test al, al
je case.0x43ed89.21018
pop edi
pop esi
pop ebp
mov dword [0x496844], 0xc
mov eax, 1
pop ebx
add esp, 0x27c
ret 0x10
mov ecx, 0x51b67c
call fcn.0044d7c0
mov edi, 0x51b67c
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je case.0x43ed89.21018
mov ecx, dword [0x51b79c]
push 0xffffffffffffffff
push 0xbd9
call fcn.00446100
mov edx, 0x51b650
mov ecx, 0x51b67c
call fcn.00429770
test al, 2
jne 0x43d9b1
test al, 4
je 0x43d977
pop edi
pop esi
pop ebp
mov dword [0x496844], 0xb
mov eax, 1
pop ebx
add esp, 0x27c
ret 0x10
mov edx, dword [0x51da28]
push 0xa
push edx
call dword [sym.imp.USER32.dll_KillTimer]
call fcn.00429b60
mov ecx, 0x51b67c
call fcn.00405020
pop edi
pop esi
pop ebp
mov dword [0x496844], 0x10
mov eax, 1
pop ebx
add esp, 0x27c
ret 0x10
push ebp
mov ecx, 0x1f62
call fcn.0044d8d0
mov edx, eax
xor ecx, ecx
call fcn.0040e4e0
call fcn.00429b60
xor eax, eax
mov ecx, 0x51b6e8
mov dword [0x51b6e8], eax
mov dword [0x51b6e8], 0x51b774
mov dword [0x51b6ec], eax
mov dword [0x51b6ec], 0x51b764
call fcn.004294f0
pop edi
pop esi
pop ebp
mov dword [0x496844], 0xc
mov eax, 1
pop ebx
add esp, 0x27c
ret 0x10
mov ecx, dword [0x51b79c]
push 0xffffffffffffffff
push 0xbd9
call fcn.00446100
cmp dword [0x51b650], ebp
jl case.0x43ed89.21018
pop edi
pop esi
pop ebp
mov dword [0x496844], 9
mov eax, 1
pop ebx
add esp, 0x27c
ret 0x10
cmp esi, 0x3e8f
ja 0x43dca2
cmp esi, 0x3e85
jae 0x43dc0a
sub esi, 0x3e82
je 0x43dbd0
dec esi
je 0x43db20
dec esi
jne case.0x43ed89.21018
mov ecx, dword [0x51b79c]
push 0xffffffffffffffff
push 0xbd9
call fcn.00446100
mov esi, dword [0x51b768]
mov ecx, dword [0x51b74c]
add esi, 0xb
mov dword [0x51b768], esi
mov eax, dword [ecx]
xor ecx, ecx
cmp eax, ebp
je 0x43dac0
mov edx, dword [eax]
cmp dword [edx], 0x3e85
je 0x43dabe
mov eax, dword [eax + 4]
cmp eax, ebp
jne 0x43daab
jmp 0x43dac0
mov ecx, dword [eax]
mov eax, dword [ecx + 4]
mov esi, dword [ecx + 0xc]
mov edx, dword [ecx + 8]
add esi, eax
mov eax, esi
mov dword [ecx + 0xc], esi
cmp eax, edx
jle 0x43dadc
mov edx, dword [ecx + 4]
sub eax, edx
mov dword [ecx + 0xc], eax
mov eax, dword [0x51b74c]
xor ecx, ecx
mov eax, dword [eax]
cmp eax, ebp
je 0x43dbb2
mov edx, dword [eax]
cmp dword [edx], 0x3e85
je 0x43dbb0
mov eax, dword [eax + 4]
cmp eax, ebp
jne 0x43daed
push 0x51b760
push 0xffffffffffffffff
call fcn.00445870
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x27c
ret 0x10
mov ecx, dword [0x51b79c]
push 0xffffffffffffffff
push 0xbd9
call fcn.00446100
mov esi, dword [0x51b768]
mov eax, dword [0x51b74c]
sub esi, 0xb
xor ecx, ecx
mov dword [0x51b768], esi
mov eax, dword [eax]
cmp eax, ebp
je 0x43db63
mov edx, dword [eax]
cmp dword [edx], 0x3e85
je 0x43db61
mov eax, dword [eax + 4]
cmp eax, ebp
jne 0x43db4e
jmp 0x43db63
mov ecx, dword [eax]
mov eax, dword [ecx + 4]
mov edx, dword [ecx + 0xc]
sub edx, eax
mov dword [ecx + 0xc], edx
jns 0x43db73
mov dword [ecx + 0xc], ebp
mov ecx, dword [0x51b74c]
mov eax, dword [ecx]
xor ecx, ecx
cmp eax, ebp
je 0x43dbb2
mov edx, dword [eax]
cmp dword [edx], 0x3e85
je 0x43dbb0
mov eax, dword [eax + 4]
cmp eax, ebp
jne 0x43db81
push 0x51b760
push 0xffffffffffffffff
call fcn.00445870
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x27c
ret 0x10
mov ecx, dword [eax]
push 0x51b760
push 0xffffffffffffffff
call fcn.00445870
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x27c
ret 0x10
mov ecx, dword [0x51b79c]
push 0xffffffffffffffff
push 0xbd9
call fcn.00446100
mov dword [0x496844], 1
call fcn.00429890
pop edi
pop esi
pop ebp
mov byte [0x51b741], 0
mov eax, 1
pop ebx
add esp, 0x27c
ret 0x10
mov ecx, dword [0x51b79c]
push 0xffffffffffffffff
push 0xbea
call fcn.00446020
mov eax, dword [0x51b74c]
xor ecx, ecx
mov eax, dword [eax]
cmp eax, ebp
je 0x43dc3e
mov edx, dword [eax]
cmp dword [edx], 0x3e85
je 0x43dc3c
mov eax, dword [eax + 4]
cmp eax, ebp
jne 0x43dc29
jmp 0x43dc3e
mov ecx, dword [eax]
add esi, 0xffffc17b
push 0x51b760
push esi
call fcn.00445870
mov ecx, dword [0x51b774]
cmp ecx, ebp
je case.0x43ed89.21018
mov eax, dword [0x51b760]
mov edx, dword [0x51b768]
add eax, edx
mov edx, dword [0x51b764]
cmp eax, edx
jge case.0x43ed89.21018
lea edx, [eax*8]
mov edi, 0x51b650
sub edx, eax
mov eax, 1
lea esi, [ecx + edx*4]
mov ecx, 7
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x27c
ret 0x10
lea eax, [esi - 0x4269]
cmp eax, 3
ja case.0x43ed89.21018
jmp dword [eax*4 + 0x43f4bc]
mov ecx, dword [0x51b79c]
push 0xffffffffffffffff
push 0xbd9
call fcn.00446100
mov ecx, dword [0x51b79c]
call fcn.004462f0
mov eax, dword [0x51b748]
mov edi, dword [0x491878]
mov esi, dword [eax]
cmp esi, ebp
je 0x43e202
mov eax, dword [esi]
xor ecx, ecx
mov eax, dword [eax + 4]
mov edx, dword [eax]
cmp edx, edi
je 0x43dd11
cmp edx, ebp
jl 0x43dd04
inc ecx
add eax, 4
cmp ecx, 0xa
jl 0x43dcf1
mov esi, dword [esi + 4]
cmp esi, ebp
je 0x43e202
jmp 0x43dcea
cmp esi, ebp
je 0x43e202
jmp 0x43e1fa
mov ecx, dword [0x51b79c]
call fcn.004462f0
mov ecx, dword [0x51b79c]
push 0xffffffffffffffff
push 0xbd9
call fcn.00446100
mov ecx, dword [0x51b748]
mov edi, dword [0x491878]
mov esi, dword [ecx]
cmp esi, ebp
je 0x43e202
mov eax, dword [esi]
xor ecx, ecx
mov eax, dword [eax + 4]
mov edx, dword [eax]
cmp edx, edi
je 0x43dd11
cmp edx, ebp
jl 0x43dd6b
inc ecx
add eax, 4
cmp ecx, 0xa
jl 0x43dd58
mov esi, dword [esi + 4]
cmp esi, ebp
je 0x43e202
jmp 0x43dd51
mov ecx, dword [0x51b79c]
call fcn.00446330
mov ecx, dword [0x51b79c]
push 0xffffffffffffffff
push 0xbd9
call fcn.00446100
mov edx, dword [0x51b748]
mov edi, dword [0x491878]
mov esi, dword [edx]
cmp esi, ebp
je 0x43e202
mov eax, dword [esi]
xor ecx, ecx
mov eax, dword [eax + 4]
mov edx, dword [eax]
cmp edx, edi
je 0x43dd11
cmp edx, ebp
jl 0x43ddc9
inc ecx
add eax, 4
cmp ecx, 0xa
jl 0x43ddb2
mov esi, dword [esi + 4]
cmp esi, ebp
je 0x43e202
jmp 0x43ddab
mov ecx, dword [0x51b79c]
call fcn.00446250
mov ecx, dword [0x51b79c]
push 0xffffffffffffffff
push 0xbd9
call fcn.00446100
mov eax, dword [0x51b748]
mov edi, dword [0x491878]
mov esi, dword [eax]
cmp esi, ebp
je 0x43e202
mov eax, dword [esi]
xor ecx, ecx
mov eax, dword [eax + 4]
mov edx, dword [eax]
cmp edx, edi
je 0x43dd11
cmp edx, ebp
jl 0x43de26
inc ecx
add eax, 4
cmp ecx, 0xa
jl 0x43de0f
mov esi, dword [esi + 4]
cmp esi, ebp
je 0x43e202
jmp 0x43de08
cmp esi, 0x4651
ja 0x43e342
je 0x43e312
lea eax, [esi - 0x426f]
cmp eax, 0x10
ja case.0x43ed89.21018
jmp dword [eax*4 + 0x43f4cc]
mov ecx, dword [0x496854]
push 0xffffffffffffffff
push ecx
mov ecx, dword [0x51b79c]
call fcn.00446100
mov edx, dword [0x51b748]
mov edi, dword [0x491878]
mov esi, dword [edx]
cmp esi, ebp
je 0x43e202
mov eax, dword [esi]
xor ecx, ecx
mov eax, dword [eax + 4]
mov edx, dword [eax]
cmp edx, edi
je 0x43dd11
cmp edx, ebp
jl 0x43dea3
inc ecx
add eax, 4
cmp ecx, 0xa
jl 0x43de8c
mov esi, dword [esi + 4]
cmp esi, ebp
je 0x43e202
jmp 0x43de85
mov al, byte [0x496cad]
test al, al
jne case.0x43de54.17014
push ebp
push str.Error
mov ecx, 0x178d
call fcn.0044d8d0
push eax
mov eax, dword [0x51da28]
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
mov ecx, dword [0x51b748]
mov esi, dword [ecx]
cmp esi, ebp
je 0x43df1d
mov eax, dword [esi]
xor ecx, ecx
mov eax, dword [eax + 4]
mov edx, dword [eax]
cmp edx, 0x4276
je 0x43df0d
cmp edx, ebp
jl 0x43df04
inc ecx
add eax, 4
cmp ecx, 0xa
jl 0x43deed
mov esi, dword [esi + 4]
cmp esi, ebp
je 0x43df1d
jmp 0x43dee6
cmp esi, ebp
je 0x43df1d
mov ecx, dword [esi]
push 0x4276
call fcn.00445770
push ebp
mov edx, 0x4276
mov ecx, 1
call fcn.00464bf0
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x27c
ret 0x10
mov ecx, dword [0x51b79c]
push 0xffffffffffffffff
push 0xbd9
call fcn.00446100
mov al, byte [0x496cac]
test al, al
jne 0x43df7c
mov al, byte [0x496cad]
test al, al
je 0x43e029
call fcn.004489d0
xor ecx, ecx
call fcn.00416210
mov byte [0x49d516], 0
jmp 0x43df9e
mov ecx, 1
call fcn.00416210
push 0x10
mov edx, 0x258
mov ecx, 0x320
call fcn.00448870
mov byte [0x49d516], 1
mov ecx, dword [0x51b718]
cmp ecx, ebp
je 0x43dfc4
mov edx, dword [ecx + 0x34]
mov eax, dword [ecx + 0x30]
push 1
push edx
push eax
push ebp
push ebp
call fcn.00467d70
mov ecx, dword [0x51b718]
call fcn.00465f30
mov eax, dword [0x51b748]
cmp eax, ebp
je 0x43e029
mov bl, byte [0x49d516]
mov esi, dword [eax]
xor ecx, ecx
test bl, bl
setne cl
add ecx, 0x4275
cmp esi, ebp
mov edi, ecx
je 0x43e009
mov ecx, dword [esi]
push edi
call fcn.004456f0
test al, al
jne 0x43dffd
mov esi, dword [esi + 4]
cmp esi, ebp
jne 0x43dfe8
jmp 0x43e009
cmp esi, ebp
je 0x43e009
mov ecx, dword [esi]
push edi
call fcn.00445770
push ebp
mov edx, 0x4275
mov ecx, 1
call fcn.00464bf0
push ebp
mov edx, 0x4276
mov ecx, 1
call fcn.00464bf0
mov edx, dword [0x51b748]
mov edi, dword [0x491878]
mov esi, dword [edx]
cmp esi, ebp
je 0x43e202
mov eax, dword [esi]
xor ecx, ecx
mov eax, dword [eax + 4]
mov edx, dword [eax]
cmp edx, edi
je 0x43dd11
cmp edx, ebp
jl 0x43e05d
inc ecx
add eax, 4
cmp ecx, 0xa
jl 0x43e046
mov esi, dword [esi + 4]
cmp esi, ebp
je 0x43e202
jmp 0x43e03f
mov ecx, dword [0x51b79c]
push 0xffffffffffffffff
push 0xbd9
call fcn.00446100
mov ecx, dword [0x51b748]
xor eax, eax
cmp esi, 0x4272
mov edi, dword [0x491878]
sete al
mov dword [0x49d528], eax
mov esi, dword [ecx]
cmp esi, ebp
je 0x43e202
mov eax, dword [esi]
xor ecx, ecx
mov eax, dword [eax + 4]
mov edx, dword [eax]
cmp edx, edi
je 0x43dd11
cmp edx, ebp
jl 0x43e0c0
inc ecx
add eax, 4
cmp ecx, 0xa
jl 0x43e0a9
mov esi, dword [esi + 4]
cmp esi, ebp
je 0x43e202
jmp 0x43e0a2
mov ecx, dword [0x51b79c]
push 0xffffffffffffffff
push 0xbd9
call fcn.00446100
mov eax, dword [0x51b748]
cmp esi, 0x4274
mov edi, dword [0x491878]
sete dl
mov byte [0x49d512], dl
mov esi, dword [eax]
cmp esi, ebp
je 0x43e202
mov eax, dword [esi]
xor ecx, ecx
mov eax, dword [eax + 4]
mov edx, dword [eax]
cmp edx, edi
je 0x43dd11
cmp edx, ebp
jl 0x43e121
inc ecx
add eax, 4
cmp ecx, 0xa
jl 0x43e10a
mov esi, dword [esi + 4]
cmp esi, ebp
je 0x43e202
jmp 0x43e103
mov ecx, dword [0x51b79c]
push 0xffffffffffffffff
push 0xbd9
call fcn.00446100
mov edx, dword [0x51b748]
cmp esi, 0x4270
mov edi, dword [0x491878]
sete cl
mov byte [0x49d511], cl
mov esi, dword [edx]
cmp esi, ebp
je 0x43e202
mov eax, dword [esi]
xor ecx, ecx
mov eax, dword [eax + 4]
mov edx, dword [eax]
cmp edx, edi
je 0x43dd11
cmp edx, ebp
jl 0x43e183
inc ecx
add eax, 4
cmp ecx, 0xa
jl 0x43e16c
mov esi, dword [esi + 4]
cmp esi, ebp
je 0x43e202
jmp 0x43e165
mov ecx, dword [0x51b79c]
push 0xffffffffffffffff
push 0xbd9
call fcn.00446100
cmp esi, 0x4279
jne 0x43e1af
mov word [0x4960dc], bp
jmp 0x43e1c1
xor eax, eax
cmp esi, 0x4277
setne al
inc eax
mov word [0x4960dc], ax
mov ecx, dword [0x51b748]
mov edi, dword [0x491878]
mov esi, dword [ecx]
cmp esi, ebp
je 0x43e202
mov eax, dword [esi]
xor ecx, ecx
mov eax, dword [eax + 4]
mov edx, dword [eax]
cmp edx, edi
je 0x43e1f6
cmp edx, ebp
jl 0x43e1ed
inc ecx
add eax, 4
cmp ecx, 0xa
jl 0x43e1da
mov esi, dword [esi + 4]
cmp esi, ebp
je 0x43e202
jmp 0x43e1d3
cmp esi, ebp
je 0x43e202
mov ecx, dword [esi]
push edi
call fcn.00445770
push ebp
mov edx, 0x427a
mov ecx, 1
call fcn.00464bf0
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x27c
ret 0x10
mov ecx, dword [0x51b79c]
push 0xffffffffffffffff
push 0xbd9
call fcn.00446100
call fcn.0043fa90
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x27c
ret 0x10
mov ecx, dword [0x51b79c]
push 0xffffffffffffffff
push 0xbd9
call fcn.00446100
mov ecx, dword [0x51b79c]
call fcn.00445fa0
xor edx, edx
push ebp
mov dl, byte [0x49d516]
push ebp
mov ecx, str.Fullscreen
call fcn.00407800
mov edx, dword [0x49d528]
push ebp
push ebp
mov ecx, str.Glow
call fcn.00407800
xor edx, edx
push ebp
mov dl, byte [0x49d512]
push ebp
mov ecx, str.CustomBalls
call fcn.00407800
xor edx, edx
push ebp
mov dl, byte [0x49d511]
push ebp
mov ecx, str.UseQuickTips
call fcn.00407800
xor edx, edx
push ebp
mov dx, word [0x4960dc]
push ebp
mov ecx, str.Disconnect
call fcn.00407800
pop edi
mov eax, 1
pop esi
pop ebp
mov dword [0x496844], eax
pop ebx
add esp, 0x27c
ret 0x10
mov ecx, dword [0x51b79c]
push 0xffffffffffffffff
push 0xbd9
call fcn.00446100
call fcn.0043f800
pop edi
mov eax, 1
pop esi
pop ebp
mov dword [0x496844], eax
pop ebx
add esp, 0x27c
ret 0x10
mov ecx, dword [0x51b79c]
push 0xffffffffffffffff
push 0xbd9
call fcn.00446100
xor edx, edx
mov ecx, 0x4674
call fcn.0043f6e0
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x27c
ret 0x10
sub esi, 0x4652
je 0x43e386
dec esi
je 0x43e72c
dec esi
jne case.0x43ed89.21018
mov ecx, 0x51b63c
call fcn.0042a7c0
mov ecx, dword [0x51b79c]
push 0xffffffffffffffff
push 0xbd9
call fcn.00446100
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x27c
ret 0x10
mov ecx, 0x51b68c
call fcn.0044d7c0
mov edi, 0x51b68c
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je case.0x43ed89.21018
mov ecx, dword [0x51b79c]
push 0xffffffffffffffff
push 0xbd9
call fcn.00446100
mov edx, 0x51b63c
mov ecx, 0x51b68c
call fcn.00426660
mov edi, 0x51b68c
or ecx, 0xffffffff
xor eax, eax
push ebp
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov edi, 0x51b68c
mov edx, ecx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
mov edx, 0x4675
and ecx, 3
rep stosb byte es:[edi], al
mov ecx, 1
call fcn.00464bf0
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x27c
ret 0x10
mov ecx, dword [0x51b79c]
push 0xffffffffffffffff
push 0xbd9
call fcn.00446020
mov eax, dword [0x51b74c]
xor ecx, ecx
mov eax, dword [eax]
cmp eax, ebp
je 0x43e43e
mov edx, dword [eax]
cmp dword [edx], 0x465d
je 0x43e43c
mov eax, dword [eax + 4]
cmp eax, ebp
jne 0x43e429
jmp 0x43e43e
mov ecx, dword [eax]
mov eax, dword [ecx + 4]
mov edx, dword [ecx + 0xc]
sub edx, eax
mov dword [ecx + 0xc], edx
jns 0x43e44e
mov dword [ecx + 0xc], ebp
mov ecx, dword [0x51b74c]
mov eax, dword [ecx]
xor ecx, ecx
cmp eax, ebp
je 0x43e5d9
mov edx, dword [eax]
cmp dword [edx], 0x465d
je 0x43e5d7
mov eax, dword [eax + 4]
cmp eax, ebp
jne 0x43e460
jmp 0x43e5d9
cmp esi, 0x4675
ja 0x43e7ad
je 0x43e71f
lea eax, [esi - 0x4659]
cmp eax, 0x1a
ja case.0x43ed89.21018
xor ecx, ecx
mov cl, byte [eax + 0x43f524]
jmp dword [ecx*4 + 0x43f510]
mov ecx, dword [0x51b79c]
push 0xffffffffffffffff
push 0xbea
call fcn.00446020
mov edx, dword [0x51b74c]
xor ecx, ecx
mov eax, dword [edx]
cmp eax, ebp
je 0x43e4df
mov edx, dword [eax]
cmp dword [edx], 0x465d
je 0x43e4dd
mov eax, dword [eax + 4]
cmp eax, ebp
jne 0x43e4ca
jmp 0x43e4df
mov ecx, dword [eax]
lea eax, [esp + 0x10]
add esi, 0xffffb9a3
push eax
push esi
call fcn.00445870
mov ecx, dword [0x51b74c]
mov eax, dword [ecx]
xor ecx, ecx
cmp eax, ebp
je 0x43e513
mov edx, dword [eax]
cmp dword [edx], 0x465d
je 0x43e511
mov eax, dword [eax + 4]
cmp eax, ebp
jne 0x43e4fe
jmp 0x43e513
mov ecx, dword [eax]
mov eax, dword [ecx + 0xc]
mov edx, dword [ecx + 8]
add eax, esi
cmp eax, edx
jl 0x43e53f
xor eax, eax
mov ecx, 0x51b63c
mov edx, eax
call fcn.004634d0
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x27c
ret 0x10
mov ecx, dword [0x51b784]
mov eax, dword [ecx + eax*4]
mov ecx, 0x51b63c
mov edx, eax
call fcn.004634d0
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x27c
ret 0x10
mov ecx, dword [0x51b79c]
push 0xffffffffffffffff
push 0xbd9
call fcn.00446020
mov edx, dword [0x51b74c]
xor ecx, ecx
mov eax, dword [edx]
cmp eax, ebp
je 0x43e59b
mov edx, dword [eax]
cmp dword [edx], 0x465d
je 0x43e599
mov eax, dword [eax + 4]
cmp eax, ebp
jne 0x43e586
jmp 0x43e59b
mov ecx, dword [eax]
mov eax, dword [ecx + 4]
mov esi, dword [ecx + 0xc]
mov edx, dword [ecx + 8]
add esi, eax
mov eax, esi
mov dword [ecx + 0xc], esi
cmp eax, edx
jle 0x43e5b7
mov edx, dword [ecx + 4]
sub eax, edx
mov dword [ecx + 0xc], eax
mov eax, dword [0x51b74c]
xor ecx, ecx
mov eax, dword [eax]
cmp eax, ebp
je 0x43e5d9
mov edx, dword [eax]
cmp dword [edx], 0x465d
je 0x43e5d7
mov eax, dword [eax + 4]
cmp eax, ebp
jne 0x43e5c4
jmp 0x43e5d9
mov ecx, dword [eax]
lea eax, [esp + 0x10]
push eax
push 0xffffffffffffffff
call fcn.00445870
push ebp
mov edx, 0x465d
mov ecx, 0x51b63c
call fcn.00445100
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x27c
ret 0x10
mov ecx, dword [0x51b79c]
push 0xffffffffffffffff
push 0xbd9
call fcn.00446100
mov edx, 1
mov ecx, 0x4674
call fcn.0043f6e0
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x27c
ret 0x10
push ebp
mov ecx, 0x52be10
call fcn.0047c900
test al, al
je 0x43e657
mov ecx, 0x52be10
call fcn.0047c8d0
test al, al
jne 0x43e68f
mov esi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 0x10
call esi
mov edi, dword [sym.imp.USER32.dll_GetKeyState]
test ah, 0x80
jne 0x43e679
push 0x10
call edi
test ah, 0x80
je case.0x43ed89.21018
push 0x11
call esi
test ah, 0x80
jne 0x43e68f
push 0x11
call edi
test ah, 0x80
je case.0x43ed89.21018
mov ecx, dword [0x51b79c]
push 0xffffffffffffffff
push 0xbd9
call fcn.00446100
call fcn.0042a720
call fcn.00426cb0
pop edi
pop esi
pop ebp
mov dword [0x496844], 3
mov eax, 1
pop ebx
add esp, 0x27c
ret 0x10
mov ecx, dword [0x51b79c]
push 0xffffffffffffffff
push 0xbd9
mov byte [0x4953d0], 0
call fcn.00446100
call fcn.0042a720
mov ecx, 0x52be10
call fcn.0047d510
mov word [0x4bf1b0], bp
mov byte [0x4bf199], 0
mov dword [0x4bf1a8], ebp
pop edi
pop esi
pop ebp
mov dword [0x496844], 0x10
mov eax, 1
pop ebx
add esp, 0x27c
ret 0x10
cmp dword [0x5205f4], 0xd
jne case.0x43ed89.21018
mov ecx, 0x51b68c
call fcn.0044d7c0
mov edi, 0x51b68c
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je case.0x43ed89.21018
mov ecx, dword [0x51b79c]
push 0xffffffffffffffff
push 0xbd9
call fcn.00446100
xor edx, edx
mov ecx, 0x51b68c
call fcn.00426660
mov edi, 0x51b68c
or ecx, 0xffffffff
xor eax, eax
push ebp
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov edi, 0x51b68c
mov edx, ecx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
mov edx, 0x4675
and ecx, 3
rep stosb byte es:[edi], al
mov ecx, 1
call fcn.00464bf0
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x27c
ret 0x10
cmp esi, 0x520e
ja 0x43ed72
je 0x43ed12
cmp esi, 0x4a4a
ja 0x43e9c8
je 0x43e993
cmp esi, 0x4a45
ja 0x43e914
je 0x43e8df
cmp esi, 0x4a3a
ja 0x43e89e
cmp esi, 0x4a39
jb case.0x43ed89.21018
mov ecx, dword [0x51b79c]
push 0xffffffffffffffff
push 0xbd9
call fcn.00446100
xor ecx, ecx
mov cl, byte [0x4b0d38]
call fcn.00438610
push eax
lea eax, [esp + 0x2c]
push str._s_mode
push eax
call fcn.0047e3b7
mov edx, dword [0x49d524]
add esp, 0xc
lea ecx, [esp + 0x28]
push ebp
push ebp
call fcn.00407800
cmp esi, 0x4a39
jne 0x43e876
call fcn.0042a170
test al, al
je 0x43e703
pop edi
pop esi
pop ebp
mov byte [0x51b742], 1
mov dword [0x496844], 0xd
mov eax, 1
pop ebx
add esp, 0x27c
ret 0x10
push ebp
push ebp
mov edx, 2
mov ecx, str.GameSelect
call fcn.004077a0
pop edi
pop esi
mov dword [0x496844], eax
pop ebp
mov eax, 1
pop ebx
add esp, 0x27c
ret 0x10
cmp esi, 0x4a44
jne case.0x43ed89.21018
mov ecx, dword [0x51b79c]
push 0xffffffffffffffff
push 0xbd9
call fcn.00446100
push ebp
push ebp
mov edx, 2
mov ecx, str.NetNumPlayers
call fcn.00407800
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x27c
ret 0x10
mov ecx, dword [0x51b79c]
push 0xffffffffffffffff
push 0xbd9
call fcn.00446100
push ebp
push ebp
mov edx, 3
mov ecx, str.NetNumPlayers
call fcn.00407800
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x27c
ret 0x10
cmp esi, 0x4a46
je 0x43e95e
jbe case.0x43ed89.21018
cmp esi, 0x4a49
ja case.0x43ed89.21018
mov ecx, dword [0x51b79c]
push 0xffffffffffffffff
push 0xbd9
call fcn.00446100
add esi, 0xffffb5b9
pop edi
mov dword [0x49d524], esi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x27c
ret 0x10
mov ecx, dword [0x51b79c]
push 0xffffffffffffffff
push 0xbd9
call fcn.00446100
push ebp
push ebp
mov edx, 4
mov ecx, str.NetNumPlayers
call fcn.00407800
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x27c
ret 0x10
mov ecx, dword [0x51b79c]
push 0xffffffffffffffff
push 0xbd9
call fcn.00446100
push ebp
push ebp
mov edx, 1
mov ecx, str.NetGameReserved
call fcn.00407800
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x27c
ret 0x10
cmp esi, 0x4e26
ja 0x43eb5d
cmp esi, 0x4e24
jae 0x43eb2d
cmp esi, 0x4a4b
je 0x43eafb
cmp esi, 0x4e20
jbe case.0x43ed89.21018
cmp esi, 0x4e22
ja case.0x43ed89.21018
cmp dword [0x51b744], 2
jne case.0x43ed89.21018
mov ecx, dword [0x51b79c]
push 0xffffffffffffffff
push 0xbd9
call fcn.00446100
xor ecx, ecx
mov cl, byte [0x4b0d38]
call fcn.00438610
push eax
lea ecx, [esp + 0x2c]
push str._s_mode
push ecx
call fcn.0047e3b7
mov edx, dword [0x49d520]
add esp, 0xc
lea ecx, [esp + 0x28]
push ebp
push ebp
call fcn.00407800
xor eax, eax
mov dword [esp + 0x10], eax
push ebp
lea edx, [eax + 0x4e24]
mov ecx, 0xc
call fcn.00464b50
mov edx, dword [esp + 0x10]
lea ecx, [edx + 0x4e24]
call fcn.0046a0f0
mov eax, dword [esp + 0x10]
inc eax
cmp eax, 3
mov dword [esp + 0x10], eax
jl 0x43ea5a
push ebp
mov edx, 0x4e27
mov ecx, 0xc
call fcn.00464b50
push ebp
mov edx, 0x4e27
mov ecx, 1
call fcn.00464ba0
mov ecx, 0x4e27
call fcn.0046a0f0
push ebp
mov edx, 0x4e28
mov ecx, 0xc
call fcn.00464ba0
push ebp
mov edx, 0x4e28
mov ecx, 1
call fcn.00464b50
xor eax, eax
cmp esi, 0x4e21
setne al
pop edi
pop esi
mov dword [0x51b744], eax
pop ebp
mov byte [0x496858], 1
mov eax, 1
pop ebx
add esp, 0x27c
ret 0x10
mov ecx, dword [0x51b79c]
push 0xffffffffffffffff
push 0xbd9
call fcn.00446100
push ebp
push ebp
xor edx, edx
mov ecx, str.NetGameReserved
call fcn.00407800
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x27c
ret 0x10
mov ecx, dword [0x51b79c]
push 0xffffffffffffffff
push 0xbd9
call fcn.00446100
add esi, 0xffffb1dc
pop edi
mov dword [0x49d520], esi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x27c
ret 0x10
cmp esi, 0x5209
jb case.0x43ed89.21018
cmp esi, 0x520c
jbe 0x43ebc3
cmp esi, 0x520d
jne case.0x43ed89.21018
mov ecx, dword [0x51b79c]
push 0xffffffffffffffff
push 0xbd9
call fcn.00446100
push ebp
push ebp
mov edx, 2
mov ecx, str.GameSelect
call fcn.004077a0
mov dword [0x496844], eax
mov byte [0x4bf1e9], 0
call fcn.0042a470
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x27c
ret 0x10
mov ecx, dword [0x51b79c]
push 0xffffffffffffffff
push 0xbd9
call fcn.00446100
add esi, 0xffffadf7
mov dword [0x51b758], ebp
mov ecx, esi
call fcn.0043f5d0
push ebp
push ebp
mov edx, esi
mov ecx, str.gamefilter
call fcn.00407800
mov ecx, dword [0x51b748]
mov edi, dword [0x491878]
mov esi, dword [ecx]
cmp esi, ebp
je 0x43ec3f
mov eax, dword [esi]
xor ecx, ecx
mov eax, dword [eax + 4]
mov edx, dword [eax]
cmp edx, edi
je 0x43ec2b
cmp edx, ebp
jl 0x43ec22
inc ecx
add eax, 4
cmp ecx, 0xa
jl 0x43ec0f
mov esi, dword [esi + 4]
cmp esi, ebp
je 0x43ec3f
jmp 0x43ec08
cmp esi, ebp
je 0x43ec3f
mov esi, dword [esi]
push edi
mov ecx, esi
call fcn.004456f0
cmp al, 1
jne 0x43ec3f
mov dword [esi], edi
call fcn.00444630
xor ebx, ebx
mov edx, dword [0x51b758]
mov ecx, dword [0x51b75c]
lea eax, [ebx + edx]
cmp eax, ecx
jge 0x43ecb4
mov ecx, dword [0x51b77c]
lea eax, [eax + eax*8]
mov edx, dword [ecx + eax*4]
mov eax, dword [0x51b674]
cmp edx, eax
jne 0x43ecae
mov eax, dword [0x51b748]
lea edi, [ebx + 0x5232]
mov esi, dword [eax]
cmp esi, ebp
je 0x43ecae
mov eax, dword [esi]
xor ecx, ecx
mov eax, dword [eax + 4]
mov edx, dword [eax]
cmp edx, edi
je 0x43eca2
cmp edx, ebp
jl 0x43ec99
inc ecx
add eax, 4
cmp ecx, 0xa
jl 0x43ec86
mov esi, dword [esi + 4]
cmp esi, ebp
je 0x43ecae
jmp 0x43ec7f
cmp esi, ebp
je 0x43ecae
mov ecx, dword [esi]
push edi
call fcn.00445770
inc ebx
cmp ebx, 5
jl 0x43ec46
mov esi, 0x5246
cmp esi, 0xffffffff
je 0x43ece9
mov ecx, dword [0x51b74c]
mov eax, dword [ecx]
xor ecx, ecx
cmp eax, ebp
je 0x43ecdd
mov edx, dword [eax]
cmp esi, dword [edx]
je 0x43ecdb
mov eax, dword [eax + 4]
cmp eax, ebp
jne 0x43eccc
jmp 0x43ecdd
mov ecx, dword [eax]
lea eax, [esp + 0x14]
push eax
push 0xffffffffffffffff
call fcn.00445870
add esi, 4
cmp esi, 0x525a
jl 0x43ecb9
xor dl, dl
mov ecx, 0x51b63c
call fcn.00444d90
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x27c
ret 0x10
cmp dword [0x51b674], ebp
jl case.0x43ed89.21018
mov ecx, dword [0x51b79c]
push 0xffffffffffffffff
push 0xbd9
call fcn.00446100
mov ecx, dword [0x51b674]
mov byte [0x51b742], 0
call fcn.00429f50
test al, al
je 0x43e703
mov byte [0x4bf1e9], 0
call fcn.0042a470
pop edi
pop esi
pop ebp
mov dword [0x496844], 0xd
mov eax, 1
pop ebx
add esp, 0x27c
ret 0x10
lea eax, [esi - 0x520f]
cmp eax, 0x51
ja case.0x43ed89.21018
xor ecx, ecx
mov cl, byte [eax + 0x43f570]
jmp dword [ecx*4 + 0x43f540]
mov edx, dword [0x51b74c]
xor ecx, ecx
lea edi, [esi - 0x5212]
mov eax, dword [edx]
cmp eax, ebp
je 0x43edb9
mov edx, dword [eax]
cmp dword [edx], 0x5212
je 0x43edb7
mov eax, dword [eax + 4]
cmp eax, ebp
jne 0x43eda4
jmp 0x43edb9
mov ecx, dword [eax]
mov eax, dword [ecx + 0xc]
mov edx, dword [ecx + 8]
add eax, edi
cmp eax, edx
jge 0x43ee3c
mov ecx, dword [0x51b784]
mov esi, dword [ecx + eax*4]
cmp esi, ebp
je 0x43ee3c
mov ecx, dword [0x51b79c]
push 0xffffffffffffffff
push 0xbea
call fcn.00446020
mov edx, dword [0x51b74c]
xor ecx, ecx
mov eax, dword [edx]
cmp eax, ebp
je 0x43ee07
mov edx, dword [eax]
cmp dword [edx], 0x5212
je 0x43ee05
mov eax, dword [eax + 4]
cmp eax, ebp
jne 0x43edf2
jmp 0x43ee07
mov ecx, dword [eax]
lea eax, [esp + 0x10]
push eax
push edi
call fcn.00445870
mov edx, esi
mov ecx, 0x51b63c
call fcn.004634d0
mov dl, 1
mov ecx, 0x51b63c
call fcn.00444d90
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x27c
ret 0x10
xor ecx, ecx
pop edi
mov dword [0x51b63c], ecx
pop esi
mov dword [0x51b640], ecx
pop ebp
mov dword [0x51b644], ecx
mov eax, 1
mov dword [0x51b648], ecx
pop ebx
add esp, 0x27c
ret 0x10
mov ecx, dword [0x51b79c]
push 0xffffffffffffffff
push 0xbea
call fcn.00446020
mov edx, dword [0x51b74c]
xor ecx, ecx
mov eax, dword [edx]
cmp eax, ebp
je 0x43eea3
lea edi, [esi - 2]
mov edx, esi
and edi, 3
sub edx, edi
mov edi, dword [eax]
cmp edx, dword [edi]
je 0x43eea1
mov eax, dword [eax + 4]
cmp eax, ebp
jne 0x43ee92
jmp 0x43eea3
mov ecx, dword [eax]
lea ebp, [esi - 2]
lea eax, [esp + 0x10]
and ebp, 3
push eax
push ebp
call fcn.00445870
mov ebx, esi
mov edi, 0x5246
sub ebx, ebp
cmp edi, ebx
je 0x43eeec
mov ecx, dword [0x51b74c]
mov eax, dword [ecx]
xor ecx, ecx
test eax, eax
je 0x43eee0
mov edx, dword [eax]
cmp edi, dword [edx]
je 0x43eede
mov eax, dword [eax + 4]
test eax, eax
jne 0x43eecf
jmp 0x43eee0
mov ecx, dword [eax]
lea eax, [esp + 0x14]
push eax
push 0xffffffffffffffff
call fcn.00445870
add edi, 4
cmp edi, 0x525a
jl 0x43eebd
mov ecx, dword [0x51b758]
lea eax, [esi - 0x5246]
shr eax, 2
add eax, ecx
mov ecx, dword [0x51b75c]
cmp eax, ecx
jl 0x43ef16
xor eax, eax
jmp 0x43ef33
mov ecx, dword [0x51b77c]
lea edx, [eax + eax*8]
cmp ebp, dword [ecx + edx*4 + 0x1c]
jl 0x43ef29
xor eax, eax
jmp 0x43ef33
lea edx, [ebp + eax*8]
add eax, edx
mov eax, dword [ecx + eax*4 + 0xc]
mov edx, eax
mov ecx, 0x51b63c
call fcn.004634d0
push 1
mov edx, 0x5212
mov ecx, 0x51b63c
call fcn.00445100
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x27c
ret 0x10
cmp esi, 0x522e
jne 0x43ef9e
mov eax, dword [0x51b74c]
xor ecx, ecx
mov eax, dword [eax]
cmp eax, ebp
je 0x43ef8c
mov edx, dword [eax]
cmp dword [edx], 0x5212
je 0x43ef8a
mov eax, dword [eax + 4]
cmp eax, ebp
jne 0x43ef77
jmp 0x43ef8c
mov ecx, dword [eax]
mov eax, dword [ecx + 4]
mov edx, dword [ecx + 0xc]
sub edx, eax
mov dword [ecx + 0xc], edx
jns 0x43efdd
mov dword [ecx + 0xc], ebp
jmp 0x43efdd
mov ecx, dword [0x51b74c]
mov eax, dword [ecx]
xor ecx, ecx
cmp eax, ebp
je 0x43efc1
mov edx, dword [eax]
cmp dword [edx], 0x5212
je 0x43efbf
mov eax, dword [eax + 4]
cmp eax, ebp
jne 0x43efac
jmp 0x43efc1
mov ecx, dword [eax]
mov eax, dword [ecx + 4]
mov esi, dword [ecx + 0xc]
mov edx, dword [ecx + 8]
add esi, eax
mov eax, esi
mov dword [ecx + 0xc], esi
cmp eax, edx
jle 0x43efdd
mov edx, dword [ecx + 4]
sub eax, edx
mov dword [ecx + 0xc], eax
mov ecx, dword [0x51b79c]
push 0xffffffffffffffff
push 0xbd9
call fcn.00446020
mov eax, dword [0x51b74c]
xor ecx, ecx
mov eax, dword [eax]
cmp eax, ebp
je 0x43f011
mov edx, dword [eax]
cmp dword [edx], 0x5212
je 0x43f00f
mov eax, dword [eax + 4]
cmp eax, ebp
jne 0x43effc
jmp 0x43f011
mov ecx, dword [eax]
lea eax, [esp + 0x10]
push eax
push 0xffffffffffffffff
call fcn.00445870
push ebp
mov edx, 0x5212
mov ecx, 0x51b63c
call fcn.00445100
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x27c
ret 0x10
cmp esi, 0x522c
jne 0x43f056
mov ecx, dword [0x49685c]
mov eax, dword [0x51b758]
sub eax, ecx
jmp 0x43f063
mov edx, dword [0x49685c]
mov eax, dword [0x51b758]
add eax, edx
mov ecx, dword [0x51b79c]
push 0xffffffffffffffff
push 0xbd9
mov dword [0x51b758], eax
call fcn.00446100
mov eax, dword [0x51b748]
mov edi, dword [0x491878]
mov esi, dword [eax]
cmp esi, ebp
je 0x43f0c2
mov eax, dword [esi]
xor ecx, ecx
mov eax, dword [eax + 4]
mov edx, dword [eax]
cmp edx, edi
je 0x43f0ae
cmp edx, ebp
jl 0x43f0a5
inc ecx
add eax, 4
cmp ecx, 0xa
jl 0x43f092
mov esi, dword [esi + 4]
cmp esi, ebp
je 0x43f0c2
jmp 0x43f08b
cmp esi, ebp
je 0x43f0c2
mov esi, dword [esi]
push edi
mov ecx, esi
call fcn.004456f0
cmp al, 1
jne 0x43f0c2
mov dword [esi], edi
xor ebx, ebx
mov ecx, dword [0x51b758]
lea eax, [ebx + ecx]
mov ecx, dword [0x51b75c]
cmp eax, ecx
jge 0x43f132
lea edx, [eax + eax*8]
mov eax, dword [0x51b77c]
mov ecx, dword [eax + edx*4]
mov eax, dword [0x51b674]
cmp ecx, eax
jne 0x43f12c
mov edx, dword [0x51b748]
lea edi, [ebx + 0x5232]
mov esi, dword [edx]
cmp esi, ebp
je 0x43f12c
mov eax, dword [esi]
xor ecx, ecx
mov eax, dword [eax + 4]
mov edx, dword [eax]
cmp edx, edi
je 0x43f120
cmp edx, ebp
jl 0x43f117
inc ecx
add eax, 4
cmp ecx, 0xa
jl 0x43f104
mov esi, dword [esi + 4]
cmp esi, ebp
je 0x43f12c
jmp 0x43f0fd
cmp esi, ebp
je 0x43f12c
mov ecx, dword [esi]
push edi
call fcn.00445770
inc ebx
cmp ebx, 5
jl 0x43f0c4
call fcn.00444630
mov esi, 0x5246
cmp esi, 0xffffffff
je 0x43f16b
mov eax, dword [0x51b74c]
xor ecx, ecx
mov eax, dword [eax]
cmp eax, ebp
je 0x43f15f
mov edx, dword [eax]
cmp esi, dword [edx]
je 0x43f15d
mov eax, dword [eax + 4]
cmp eax, ebp
jne 0x43f14e
jmp 0x43f15f
mov ecx, dword [eax]
lea eax, [esp + 0x14]
push eax
push 0xffffffffffffffff
call fcn.00445870
add esi, 4
cmp esi, 0x525a
jl 0x43f13c
xor dl, dl
mov ecx, 0x51b63c
call fcn.00444d90
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x27c
ret 0x10
mov ecx, dword [0x51b79c]
push 0xffffffffffffffff
push 0xbd9
call fcn.00446100
xor edx, edx
mov ecx, 0x525f
call fcn.0043f6e0
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x27c
ret 0x10
mov ecx, dword [0x51b79c]
push 0xffffffffffffffff
push 0xbd9
call fcn.00446100
mov edx, 1
mov ecx, 0x525f
call fcn.0043f6e0
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x27c
ret 0x10
mov ecx, 0x51b68c
call fcn.0044d7c0
mov edi, 0x51b68c
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je case.0x43ed89.21018
mov ecx, dword [0x51b79c]
push 0xffffffffffffffff
push 0xbd9
call fcn.00446100
mov edx, 0x51b63c
mov ecx, 0x51b68c
call fcn.00426660
mov edi, 0x51b68c
or ecx, 0xffffffff
xor eax, eax
push ebp
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov edi, 0x51b68c
mov edx, ecx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
mov edx, 0x5260
and ecx, 3
rep stosb byte es:[edi], al
mov ecx, 1
call fcn.00464bf0
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x27c
ret 0x10
mov ecx, dword [0x51b79c]
push 0xffffffffffffffff
push 0xbd9
call fcn.00446100
mov eax, dword [0x51b758]
mov edx, dword [0x51b77c]
pop edi
lea eax, [eax + esi - 0x5232]
pop esi
pop ebp
pop ebx
lea ecx, [eax + eax*8]
mov eax, dword [edx + ecx*4]
mov dword [0x51b674], eax
mov eax, 1
add esp, 0x27c
ret 0x10
mov ecx, dword [0x51b79c]
push 0xffffffffffffffff
push 0xbd9
call fcn.00446100
xor ecx, ecx
mov dword [0x51b6e8], ecx
mov dword [0x51b6e8], 0x51b774
mov dword [0x51b6ec], ecx
mov ecx, 0x51b6e8
mov dword [0x51b6ec], 0x51b764
call fcn.004294f0
test al, al
je case.0x43ed89.21018
call fcn.00429b60
pop edi
pop esi
pop ebp
mov byte [0x51b741], 1
mov dword [0x496844], 0xc
mov eax, 1
pop ebx
add esp, 0x27c
ret 0x10
cmp dword [0x5205f4], 0xd
jne case.0x43ed89.21018
mov ecx, 0x51b68c
call fcn.0044d7c0
mov edi, 0x51b68c
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je case.0x43ed89.21018
mov ecx, dword [0x51b79c]
push 0xffffffffffffffff
push 0xbd9
call fcn.00446100
xor edx, edx
mov ecx, 0x51b68c
call fcn.00426660
mov edi, 0x51b68c
or ecx, 0xffffffff
xor eax, eax
push ebp
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov edi, 0x51b68c
mov edx, ecx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
mov edx, 0x5260
and ecx, 3
rep stosb byte es:[edi], al
mov ecx, 1
call fcn.00464bf0
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x27c
ret 0x10
push ebp
mov edx, 0x4654
mov ecx, 0xc
call fcn.00464ba0
push ebp
mov edx, 0x465a
mov ecx, 0xc
call fcn.00464ba0
push ebp
mov edx, 0x467f
mov ecx, 0xc
call fcn.00464b50
mov ecx, 0x467f
call fcn.0046a0f0
push ebp
mov edx, 0x4654
mov ecx, 1
call fcn.00464bf0
push ebp
mov edx, 0x465a
mov ecx, 1
call fcn.00464bf0
mov al, byte [0x49d50a]
test al, al
je 0x43f443
mov ecx, 0x52be10
call fcn.0047d510
mov word [0x4bf1b0], bp
mov byte [0x4bf199], 0
mov dword [0x4bf1a8], ebp
mov dword [0x496844], 0x10
mov byte [0x51b742], 1
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x27c
ret 0x10