Function at 0x4150b0
Capabilities:
Get memory capacity
Inspect section memory permissions
Parse pe header
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x4f978f
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x3dc
push ebx
push ebp
xor ebx, ebx
push esi
push edi
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], ebx
push ebx
mov ebp, 0xf
push 0x51f2aa
lea ecx, [esp + 0x200]
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], ebx
mov dword [esp + 0x218], ebp
mov dword [esp + 0x214], ebx
mov byte [esp + 0x204], bl
call fcn.00401eb0
lea eax, [esp + 0x1f8]
push eax
lea ecx, [esp + 0x350]
mov dword [esp + 0x3f8], ebx
call fcn.0040f090
mov byte [esp + 0x3f4], 2
cmp dword [esp + 0x210], 0x10
jb 0x41514a
mov ecx, dword [esp + 0x1fc]
push ecx
call fcn.004c2c15
add esp, 4
mov edi, dword [esp + 0x3fc]
mov eax, 1
add edi, 0x3c
lea esi, [esp + 0x8c]
mov dword [esp + 0x210], ebp
mov dword [esp + 0x20c], ebx
mov byte [esp + 0x1fc], bl
mov dword [esp + 0x3e8], eax
call fcn.00430d50
cmp dword [eax + 0x18], 0x10
jb 0x41518c
mov eax, dword [eax + 4]
jmp 0x41518f
add eax, 4
push ebx
push eax
call fcn.004c4710
mov esi, eax
push esi
call fcn.004c3d70
mov eax, dword [esp + 0xb0]
add esp, 0xc
cmp esi, ebx
setge byte [esp + 0x1b]
cmp eax, 0x10
jb 0x4151c4
mov edx, dword [esp + 0x90]
push edx
call fcn.004c2c15
add esp, 4
cmp byte [esp + 0x1b], bl
je 0x4156a3
push edi
lea ecx, [esp + 0x3bc]
call fcn.0040c070
mov esi, dword [esp + 0x3bc]
cmp esi, dword [esp + 0x3c0]
je 0x415214
jmp 0x4151f0
lea eax, [esp + 0x34c]
push eax
mov ecx, esi
mov dword [esp + 0x3e8], ebx
call fcn.0040f210
mov eax, dword [esp + 0x3c0]
add esi, 0x1c
cmp esi, eax
jne 0x4151f0
mov edx, dword [str.DataGathering]
mov eax, edx
mov dword [esp + 0x88], ebp
mov dword [esp + 0x84], ebx
mov byte [esp + 0x74], bl
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x415231
sub eax, esi
push eax
push edx
lea ecx, [esp + 0x78]
call fcn.00401eb0
lea ecx, [esp + 0x70]
push ecx
lea edx, [esp + 0x20]
mov byte [esp + 0x3f8], 3
mov esi, dword [esp + 0x39c]
push edx
lea ecx, [esp + 0x398]
call fcn.0040cea0
cmp dword [esp + 0x1c], esi
mov byte [esp + 0x3f4], 2
mov eax, dword [esp + 0x88]
mov edi, 0x10
setne byte [esp + 0x1b]
cmp eax, edi
jb 0x415298
mov eax, dword [esp + 0x74]
push eax
call fcn.004c2c15
add esp, 4
cmp byte [esp + 0x1b], bl
mov dword [esp + 0x88], ebp
mov dword [esp + 0x84], ebx
mov byte [esp + 0x74], bl
je 0x415697
mov edx, dword [str.DataGathering]
mov eax, edx
mov dword [esp + 0x264], ebp
mov dword [esp + 0x260], ebx
mov byte [esp + 0x250], bl
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x4152d4
sub eax, esi
push eax
push edx
lea ecx, [esp + 0x254]
call fcn.00401eb0
lea ecx, [esp + 0x24c]
push ecx
lea eax, [esp + 0x350]
mov byte [esp + 0x3f8], 4
call fcn.0040ee40
cmp eax, ebx
je 0x415311
cmp dword [eax + 8], 2
je 0x41531c
mov eax, 0x54c9a0
cmp dword [eax + 8], 2
jne 0x415322
mov dword [esp + 0x40], eax
jmp 0x41532a
mov dword [esp + 0x40], 0x54c9a0
mov byte [esp + 0x3f4], 2
cmp dword [esp + 0x264], edi
jb 0x41534b
mov edx, dword [esp + 0x250]
push edx
call fcn.004c2c15
add esp, 4
mov edx, dword [str.SystemInfo]
mov eax, edx
mov dword [esp + 0x264], ebp
mov dword [esp + 0x260], ebx
mov byte [esp + 0x250], bl
mov dword [esp + 0x88], ebp
mov dword [esp + 0x84], ebx
mov byte [esp + 0x74], bl
lea esi, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x415380
sub eax, esi
push eax
push edx
lea ecx, [esp + 0x78]
call fcn.00401eb0
mov edi, dword [esp + 0x40]
lea eax, [esp + 0x70]
push eax
lea ecx, [esp + 0x20]
lea ebp, [edi + 0x44]
push ecx
mov byte [esp + 0x3fc], 5
mov esi, dword [edi + 0x4c]
mov ecx, ebp
call fcn.0040cea0
cmp dword [esp + 0x1c], esi
mov byte [esp + 0x3f4], 2
mov eax, dword [esp + 0x88]
mov esi, 0x10
setne byte [esp + 0x1b]
cmp eax, esi
jb 0x4153e5
mov edx, dword [esp + 0x74]
push edx
call fcn.004c2c15
add esp, 4
cmp byte [esp + 0x1b], bl
mov dword [esp + 0x88], 0xf
mov dword [esp + 0x84], ebx
mov byte [esp + 0x74], bl
je 0x415468
mov eax, dword [str.SystemInfo]
push eax
lea ecx, [esp + 0x28]
call fcn.00402330
lea ecx, [esp + 0x24]
push ecx
mov eax, edi
mov byte [esp + 0x3f8], 6
call fcn.0040ee40
cmp eax, ebx
je 0x415430
cmp dword [eax + 8], 2
mov edi, eax
je 0x415435
mov edi, 0x54c9a0
mov byte [esp + 0x3f4], 2
cmp dword [esp + 0x3c], esi
jb 0x415450
mov edx, dword [esp + 0x28]
push edx
call fcn.004c2c15
add esp, 4
lea ecx, [edi + 0x44]
mov dword [esp + 0x3c], 0xf
mov dword [esp + 0x38], ebx
mov byte [esp + 0x28], bl
call fcn.0040bfd0
mov esi, dword [str.PlayingSessions]
mov eax, esi
mov dword [esp + 0xc0], 0xf
mov dword [esp + 0xbc], ebx
mov byte [esp + 0xac], bl
lea edi, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x415490
sub eax, edi
push eax
push esi
lea ecx, [esp + 0xb0]
call fcn.00401eb0
mov eax, dword [esp + 0x40]
lea ecx, [esp + 0xa8]
push ecx
lea edx, [esp + 0x20]
mov byte [esp + 0x3f8], 7
mov esi, dword [eax + 0x4c]
push edx
mov ecx, ebp
call fcn.0040cea0
cmp dword [esp + 0x1c], esi
mov byte [esp + 0x3f4], 2
mov eax, dword [esp + 0xc0]
setne byte [esp + 0x1b]
cmp eax, 0x10
jb 0x4154f7
mov eax, dword [esp + 0xac]
push eax
call fcn.004c2c15
add esp, 4
cmp byte [esp + 0x1b], bl
mov esi, 0xf
mov dword [esp + 0xc0], esi
mov dword [esp + 0xbc], ebx
mov byte [esp + 0xac], bl
je 0x415594
mov ecx, dword [str.PlayingSessions]
push ecx
lea ecx, [esp + 0x318]
call fcn.00402330
mov eax, dword [esp + 0x40]
lea edx, [esp + 0x314]
push edx
mov byte [esp + 0x3f8], 8
call fcn.0040ee40
cmp eax, ebx
je 0x415555
cmp dword [eax + 8], 3
mov dword [esp + 0x68], eax
je 0x41555d
mov dword [esp + 0x68], 0x54ca10
mov byte [esp + 0x3f4], 2
cmp dword [esp + 0x32c], 0x10
jb 0x41557f
mov eax, dword [esp + 0x318]
push eax
call fcn.004c2c15
add esp, 4
mov dword [esp + 0x32c], esi
mov dword [esp + 0x328], ebx
mov byte [esp + 0x318], bl
mov esi, dword [str.BetaSession]
mov eax, esi
mov dword [esp + 0x3c], 0xf
mov dword [esp + 0x38], ebx
mov byte [esp + 0x28], bl
lea edi, [eax + 1]
nop
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x4155b0
sub eax, edi
push eax
push esi
lea ecx, [esp + 0x2c]
call fcn.00401eb0
mov ecx, dword [esp + 0x40]
lea edx, [esp + 0x24]
mov byte [esp + 0x3f4], 9
mov esi, dword [ecx + 0x4c]
push edx
lea eax, [esp + 0x20]
push eax
mov ecx, ebp
call fcn.0040cea0
cmp dword [esp + 0x1c], esi
mov byte [esp + 0x3f4], 2
mov eax, dword [esp + 0x3c]
setne byte [esp + 0x1b]
cmp eax, 0x10
jb 0x41560b
mov ecx, dword [esp + 0x28]
push ecx
call fcn.004c2c15
add esp, 4
cmp byte [esp + 0x1b], bl
je 0x415835
mov edx, dword [str.BetaSession]
push edx
lea ecx, [esp + 0x334]
call fcn.00402330
lea eax, [esp + 0x330]
push eax
mov eax, dword [esp + 0x44]
mov byte [esp + 0x3f8], 0xa
call fcn.0040ee40
cmp eax, ebx
je 0x41564f
cmp dword [eax + 8], 3
mov dword [esp + 0x6c], eax
je 0x415657
mov dword [esp + 0x6c], 0x54ca10
mov byte [esp + 0x3f4], 2
cmp dword [esp + 0x348], 0x10
jb 0x415679
mov ecx, dword [esp + 0x334]
push ecx
call fcn.004c2c15
add esp, 4
mov dword [esp + 0x348], 0xf
mov dword [esp + 0x344], ebx
mov byte [esp + 0x334], bl
jmp 0x415835
lea ecx, [esp + 0x390]
call fcn.0040bfd0
push 0x6c
call fcn.004c14e8
mov ebp, eax
add esp, 4
mov dword [esp + 0x1c], ebp
cmp ebp, ebx
mov byte [esp + 0x3f4], 0xb
je 0x415775
mov esi, dword [str.DataGathering]
mov eax, esi
mov dword [esp + 0x248], 0xf
mov dword [esp + 0x244], ebx
mov byte [esp + 0x234], bl
lea edi, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x4156e7
sub eax, edi
push eax
push esi
lea ecx, [esp + 0x238]
call fcn.00401eb0
mov byte [esp + 0x3f4], 0xc
mov esi, dword [str.DataGathering]
mov eax, esi
mov dword [esp + 0x10], 1
mov dword [esp + 0xc0], 0xf
mov dword [esp + 0xbc], ebx
mov byte [esp + 0xac], bl
lea edi, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x415732
sub eax, edi
push eax
push esi
lea ecx, [esp + 0xb0]
call fcn.00401eb0
lea edx, [esp + 0x230]
push edx
lea eax, [esp + 0xac]
mov dword [esp + 0x3f8], 0xd
push eax
mov ecx, ebp
mov dword [esp + 0x18], 3
call fcn.0040ec50
jmp 0x415777
xor eax, eax
mov esi, 0xf
push eax
lea ecx, [esp + 0x350]
mov dword [esp + 0x3f8], esi
call fcn.0040ef30
mov ecx, dword [eax + 8]
mov edi, 2
cmp ecx, edi
mov dword [esp + 0x40], eax
je 0x4157a8
mov dword [esp + 0x40], 0x54c9a0
test byte [esp + 0x10], 2
je 0x4157eb
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xc0]
and ecx, 0xfffffffd
cmp eax, 0x10
mov dword [esp + 0x10], ecx
jb 0x4157d6
mov ecx, dword [esp + 0xac]
push ecx
call fcn.004c2c15
add esp, 4
mov dword [esp + 0xc0], esi
mov dword [esp + 0xbc], ebx
mov byte [esp + 0xac], bl
mov dword [esp + 0x3f4], edi
test byte [esp + 0x10], 1
je 0x415835
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x248]
and ecx, 0xfffffffe
cmp eax, 0x10
mov dword [esp + 0x10], ecx
jb 0x415820
mov edx, dword [esp + 0x234]
push edx
call fcn.004c2c15
add esp, 4
mov dword [esp + 0x248], esi
mov dword [esp + 0x244], ebx
mov byte [esp + 0x234], bl
push 0x64
call fcn.004c14e8
add esp, 4
mov dword [esp + 0x1c], eax
cmp eax, ebx
mov byte [esp + 0x3f4], 0x10
je 0x41585b
push eax
call fcn.0043aa30
mov dword [esp + 0x44], eax
jmp 0x41585f
mov dword [esp + 0x44], ebx
mov eax, dword [esp + 0x44]
mov byte [esp + 0x3f4], 2
mov eax, dword [eax + 0x34]
push eax
lea ecx, [esp + 0x74]
push str._04x
push ecx
call fcn.004c2e53
push 0x6c
call fcn.004c14e8
mov ebp, eax
add esp, 0x10
mov dword [esp + 0x1c], ebp
cmp ebp, ebx
mov byte [esp + 0x3f4], 0x11
je 0x41595a
mov esi, dword [str.SystemInfo]
mov eax, esi
mov dword [esp + 0xf8], 0xf
mov dword [esp + 0xf4], ebx
mov byte [esp + 0xe4], bl
lea edi, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x4158c2
sub eax, edi
push eax
push esi
lea ecx, [esp + 0xe8]
call fcn.00401eb0
mov byte [esp + 0x3f4], 0x12
mov eax, dword [esp + 0x10]
mov esi, dword [str.SystemInfo]
or eax, 4
mov dword [esp + 0x10], eax
mov eax, esi
mov dword [esp + 0xdc], 0xf
mov dword [esp + 0xd8], ebx
mov byte [esp + 0xc8], bl
lea edi, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x415910
sub eax, edi
push eax
push esi
lea ecx, [esp + 0xcc]
call fcn.00401eb0
mov dword [esp + 0x3f4], 0x13
mov edi, dword [esp + 0x10]
lea edx, [esp + 0xe0]
push edx
lea eax, [esp + 0xc8]
or edi, 8
push eax
mov ecx, ebp
mov dword [esp + 0x18], edi
call fcn.0040ec50
mov dword [esp + 0x20], eax
jmp 0x41595e
mov dword [esp + 0x20], ebx
mov edi, 0xf
test byte [esp + 0x10], 8
je 0x4159a6
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xdc]
and ecx, 0xfffffff7
cmp eax, 0x10
mov dword [esp + 0x10], ecx
jb 0x415991
mov ecx, dword [esp + 0xc8]
push ecx
call fcn.004c2c15
add esp, 4
mov dword [esp + 0xdc], edi
mov dword [esp + 0xd8], ebx
mov byte [esp + 0xc8], bl
mov dword [esp + 0x3f4], 2
test byte [esp + 0x10], 4
je 0x4159f4
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xf8]
and ecx, 0xfffffffb
cmp eax, 0x10
mov dword [esp + 0x10], ecx
jb 0x4159df
mov edx, dword [esp + 0xe4]
push edx
call fcn.004c2c15
add esp, 4
mov dword [esp + 0xf8], edi
mov dword [esp + 0xf4], ebx
mov byte [esp + 0xe4], bl
push 0x60
call fcn.004c14e8
mov esi, eax
add esp, 4
mov dword [esp + 0x1c], esi
cmp esi, ebx
mov byte [esp + 0x3f4], 0x16
je 0x415a92
push ebx
push 0x51f2aa
lea ecx, [esp + 0x2c]
mov dword [esp + 0x44], edi
mov dword [esp + 0x40], ebx
mov byte [esp + 0x30], bl
call fcn.00401eb0
mov byte [esp + 0x3f4], 0x17
mov eax, dword [esp + 0x10]
push 8
or eax, 0x10
push str.CPUSpeed
lea ecx, [esp + 0x54]
mov dword [esp + 0x18], eax
mov dword [esp + 0x6c], edi
mov dword [esp + 0x68], ebx
mov byte [esp + 0x58], bl
call fcn.00401eb0
mov ebp, dword [esp + 0x44]
mov dword [esp + 0x3f4], 0x18
mov ecx, dword [esp + 0x10]
or ecx, 0x20
push ebp
mov dword [esp + 0x14], ecx
call fcn.0043ad40
push eax
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x54]
push ecx
mov ecx, esi
call fcn.0040e7c0
jmp 0x415a98
mov ebp, dword [esp + 0x44]
xor eax, eax
mov dword [esp + 0x3f4], 0x1a
mov ecx, dword [esp + 0x20]
push eax
call fcn.0040ef30
test byte [esp + 0x10], 0x20
je 0x415ae1
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x64]
and ecx, 0xffffffdf
cmp eax, 0x10
mov dword [esp + 0x10], ecx
jb 0x415ad5
mov edx, dword [esp + 0x50]
push edx
call fcn.004c2c15
add esp, 4
mov dword [esp + 0x64], edi
mov dword [esp + 0x60], ebx
mov byte [esp + 0x50], bl
mov dword [esp + 0x3f4], 2
test byte [esp + 0x10], 0x10
je 0x415b14
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x3c]
and ecx, 0xffffffef
cmp eax, 0x10
mov dword [esp + 0x10], ecx
jb 0x415b14
mov eax, dword [esp + 0x28]
push eax
call fcn.004c2c15
add esp, 4
push 0x60
call fcn.004c14e8
mov esi, eax
add esp, 4
mov dword [esp + 0x1c], esi
cmp esi, ebx
mov byte [esp + 0x3f4], 0x1b
je 0x415bae
push ebx
push 0x51f2aa
lea ecx, [esp + 0x2c]
mov dword [esp + 0x44], edi
mov dword [esp + 0x40], ebx
mov byte [esp + 0x30], bl
call fcn.00401eb0
mov byte [esp + 0x3f4], 0x1c
mov edx, dword [esp + 0x10]
push 7
or edx, 0x40
push str.CPUType
lea ecx, [esp + 0x54]
mov dword [esp + 0x18], edx
mov dword [esp + 0x6c], edi
mov dword [esp + 0x68], ebx
mov byte [esp + 0x58], bl
call fcn.00401eb0
mov dword [esp + 0x3f4], 0x1d
mov edx, dword [esp + 0x10]
mov eax, dword [ebp + 0x24]
or edx, 0x80
push eax
lea ecx, [esp + 0x28]
mov dword [esp + 0x14], edx
push ecx
lea edx, [esp + 0x54]
push edx
mov ecx, esi
call fcn.0040e7c0
jmp 0x415bb0
xor eax, eax
mov dword [esp + 0x3f4], 0x1f
mov ecx, dword [esp + 0x20]
push eax
call fcn.0040ef30
mov al, byte [esp + 0x10]
test al, al
jns 0x415bfd
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x64]
and ecx, 0xffffff7f
cmp eax, 0x10
mov dword [esp + 0x10], ecx
jb 0x415bf1
mov eax, dword [esp + 0x50]
push eax
call fcn.004c2c15
add esp, 4
mov dword [esp + 0x64], edi
mov dword [esp + 0x60], ebx
mov byte [esp + 0x50], bl
mov dword [esp + 0x3f4], 2
test byte [esp + 0x10], 0x40
je 0x415c30
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x3c]
and ecx, 0xffffffbf
cmp eax, 0x10
mov dword [esp + 0x10], ecx
jb 0x415c30
mov ecx, dword [esp + 0x28]
push ecx
call fcn.004c2c15
add esp, 4
push 0x60
call fcn.004c14e8
mov esi, eax
add esp, 4
mov dword [esp + 0x1c], esi
cmp esi, ebx
mov byte [esp + 0x3f4], 0x20
je 0x415ccd
push ebx
push 0x51f2aa
lea ecx, [esp + 0x2c]
mov dword [esp + 0x44], edi
mov dword [esp + 0x40], ebx
mov byte [esp + 0x30], bl
call fcn.00401eb0
mov byte [esp + 0x3f4], 0x21
mov edx, dword [esp + 0x10]
push 0xc
or edx, 0x100
push str.NumberOfCPUs
lea ecx, [esp + 0x54]
mov dword [esp + 0x18], edx
mov dword [esp + 0x6c], edi
mov dword [esp + 0x68], ebx
mov byte [esp + 0x58], bl
call fcn.00401eb0
mov dword [esp + 0x3f4], 0x22
mov edx, dword [esp + 0x10]
mov eax, dword [ebp + 0x2c]
or edx, 0x200
push eax
mov dword [esp + 0x14], edx
lea edx, [esp + 0x28]
push edx
lea eax, [esp + 0x54]
push eax
mov ecx, esi
call fcn.0040e7c0
jmp 0x415ccf
xor eax, eax
mov dword [esp + 0x3f4], 0x24
mov ebp, dword [esp + 0x20]
push eax
mov ecx, ebp
call fcn.0040ef30
mov eax, dword [esp + 0x10]
test ah, 2
je 0x415d1d
mov ecx, eax
mov eax, dword [esp + 0x64]
and ecx, 0xfffffdff
cmp eax, 0x10
mov dword [esp + 0x10], ecx
jb 0x415d11
mov ecx, dword [esp + 0x50]
push ecx
call fcn.004c2c15
add esp, 4
mov dword [esp + 0x64], edi
mov dword [esp + 0x60], ebx
mov byte [esp + 0x50], bl
mov dword [esp + 0x3f4], 2
mov eax, dword [esp + 0x10]
test ah, 1
je 0x415d53
mov ecx, eax
mov eax, dword [esp + 0x3c]
and ecx, 0xfffffeff
cmp eax, 0x10
mov dword [esp + 0x10], ecx
jb 0x415d53
mov edx, dword [esp + 0x28]
push edx
call fcn.004c2c15
add esp, 4
push 0x60
call fcn.004c14e8
mov esi, eax
add esp, 4
mov dword [esp + 0x1c], esi
cmp esi, ebx
mov byte [esp + 0x3f4], 0x25
je 0x415de6
push ebx
push 0x51f2aa
lea ecx, [esp + 0x2c]
mov dword [esp + 0x44], edi
mov dword [esp + 0x40], ebx
mov byte [esp + 0x30], bl
call fcn.00401eb0
mov byte [esp + 0x3f4], 0x26
mov eax, dword [esp + 0x10]
push 7
or eax, 0x400
push str.CPUCaps
lea ecx, [esp + 0x54]
mov dword [esp + 0x18], eax
mov dword [esp + 0x6c], edi
mov dword [esp + 0x68], ebx
mov byte [esp + 0x58], bl
call fcn.00401eb0
mov dword [esp + 0x3f4], 0x27
or dword [esp + 0x10], 0x800
push ebx
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x54]
push ecx
mov ecx, esi
call fcn.0040e7c0
jmp 0x415de8
xor eax, eax
push eax
mov ecx, ebp
mov dword [esp + 0x3f8], 0x29
call fcn.0040ef30
mov eax, dword [esp + 0x10]
test ah, 8
je 0x415e32
mov ecx, eax
mov eax, dword [esp + 0x64]
and ecx, 0xfffff7ff
cmp eax, 0x10
mov dword [esp + 0x10], ecx
jb 0x415e26
mov edx, dword [esp + 0x50]
push edx
call fcn.004c2c15
add esp, 4
mov dword [esp + 0x64], edi
mov dword [esp + 0x60], ebx
mov byte [esp + 0x50], bl
mov dword [esp + 0x3f4], 2
mov eax, dword [esp + 0x10]
test ah, 4
je 0x415e68
mov ecx, eax
mov eax, dword [esp + 0x3c]
and ecx, 0xfffffbff
cmp eax, 0x10
mov dword [esp + 0x10], ecx
jb 0x415e68
mov eax, dword [esp + 0x28]
push eax
call fcn.004c2c15
add esp, 4
push 0x60
call fcn.004c14e8
mov edi, eax
add esp, 4
mov dword [esp + 0x1c], edi
cmp edi, ebx
mov byte [esp + 0x3f4], 0x2a
je 0x415f25
push ebx
mov esi, 0xf
push 0x51f2aa
lea ecx, [esp + 0x2c]
mov dword [esp + 0x44], esi
mov dword [esp + 0x40], ebx
mov byte [esp + 0x30], bl
call fcn.00401eb0
mov byte [esp + 0x3f4], 0x2b
mov ecx, dword [esp + 0x10]
or ecx, 0x1000
push 6
mov dword [esp + 0x14], ecx
push str.OSName
lea ecx, [esp + 0x54]
mov dword [esp + 0x6c], esi
mov dword [esp + 0x68], ebx
mov byte [esp + 0x58], bl
call fcn.00401eb0
mov ebp, dword [esp + 0x44]
mov dword [esp + 0x3f4], 0x2c
or dword [esp + 0x10], 0x2000
push ebp
lea esi, [esp + 0x90]
call fcn.00414a90
mov dword [esp + 0x3f4], 0x2d
or dword [esp + 0x10], 0x4000
push eax
lea ecx, [esp + 0x28]
push ecx
lea edx, [esp + 0x54]
push edx
mov ecx, edi
call fcn.0040e920
jmp 0x415f2b
mov ebp, dword [esp + 0x44]
xor eax, eax
mov edi, 0xf
mov dword [esp + 0x3f4], 0x30
mov ecx, dword [esp + 0x20]
push eax
call fcn.0040ef30
mov eax, dword [esp + 0x10]
test ah, 0x40
mov esi, 0x10
je 0x415f8f
mov ecx, eax
mov eax, dword [esp + 0xa4]
and ecx, 0xffffbfff
cmp eax, esi
mov dword [esp + 0x10], ecx
jb 0x415f7a
mov eax, dword [esp + 0x90]
push eax
call fcn.004c2c15
add esp, 4
mov dword [esp + 0xa4], edi
mov dword [esp + 0xa0], ebx
mov byte [esp + 0x90], bl
mov eax, dword [esp + 0x10]
test ah, 0x20
je 0x415fc5
mov ecx, eax
mov eax, dword [esp + 0x64]
and ecx, 0xffffdfff
cmp eax, esi
mov dword [esp + 0x10], ecx
jb 0x415fb9
mov ecx, dword [esp + 0x50]
push ecx
call fcn.004c2c15
add esp, 4
mov dword [esp + 0x64], edi
mov dword [esp + 0x60], ebx
mov byte [esp + 0x50], bl
mov dword [esp + 0x3f4], 2
mov eax, dword [esp + 0x10]
test ah, 0x10
je 0x415ffa
mov ecx, eax
mov eax, dword [esp + 0x3c]
and ecx, 0xffffefff
cmp eax, esi
mov dword [esp + 0x10], ecx
jb 0x415ffa
mov edx, dword [esp + 0x28]
push edx
call fcn.004c2c15
add esp, 4
push 0x60
call fcn.004c14e8
mov esi, eax
add esp, 4
mov dword [esp + 0x1c], esi
cmp esi, ebx
mov byte [esp + 0x3f4], 0x31
je 0x416090
push ebx
push 0x51f2aa
lea ecx, [esp + 0x2c]
mov dword [esp + 0x44], edi
mov dword [esp + 0x40], ebx
mov byte [esp + 0x30], bl
call fcn.00401eb0
mov byte [esp + 0x3f4], 0x32
mov eax, dword [esp + 0x10]
push 8
or eax, 0x8000
push str.WinBuild
lea ecx, [esp + 0x54]
mov dword [esp + 0x18], eax
mov dword [esp + 0x6c], edi
mov dword [esp + 0x68], ebx
mov byte [esp + 0x58], bl
call fcn.00401eb0
mov dword [esp + 0x3f4], 0x33
or dword [esp + 0x10], 0x10000
mov eax, dword [ebp + 0x1c]
push eax
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x54]
push ecx
mov ecx, esi
call fcn.0040e7c0
jmp 0x416092
xor eax, eax
mov dword [esp + 0x3f4], 0x35
mov ecx, dword [esp + 0x20]
push eax
call fcn.0040ef30
mov eax, dword [esp + 0x10]
test eax, 0x10000
je 0x4160e0
mov ecx, eax
mov eax, dword [esp + 0x64]
and ecx, 0xfffeffff
cmp eax, 0x10
mov dword [esp + 0x10], ecx
jb 0x4160d4
mov edx, dword [esp + 0x50]
push edx
call fcn.004c2c15
add esp, 4
mov dword [esp + 0x64], edi
mov dword [esp + 0x60], ebx
mov byte [esp + 0x50], bl
mov dword [esp + 0x3f4], 2
mov eax, dword [esp + 0x10]
test ah, ah
jns 0x416115
mov ecx, eax
mov eax, dword [esp + 0x3c]
and ecx, 0xffff7fff
cmp eax, 0x10
mov dword [esp + 0x10], ecx
jb 0x416115
mov eax, dword [esp + 0x28]
push eax
call fcn.004c2c15
add esp, 4
push 0x60
call fcn.004c14e8
mov esi, eax
add esp, 4
mov dword [esp + 0x1c], esi
cmp esi, ebx
mov byte [esp + 0x3f4], 0x36
je 0x4161b9
push 0x51f2aa
lea ecx, [esp + 0x90]
call fcn.00402330
mov byte [esp + 0x3f4], 0x37
mov edx, dword [esp + 0x10]
or edx, 0x20000
push str.SysMem
lea ecx, [esp + 0x28]
mov dword [esp + 0x14], edx
call fcn.00402330
mov dword [esp + 0x3f4], 0x38
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x2f4]
or eax, 0x40000
push ecx
mov dword [esp + 0x14], eax
call dword [sym.imp.KERNEL32.dll_GlobalMemoryStatus]
mov eax, 0x10624dd3
mul dword [esp + 0x2fc]
shr edx, 6
shr edx, 0xa
push edx
lea edx, [esp + 0x90]
push edx
lea eax, [esp + 0x2c]
push eax
mov ecx, esi
call fcn.0040e7c0
jmp 0x4161bb
xor eax, eax
mov dword [esp + 0x3f4], 0x3a
mov ecx, dword [esp + 0x20]
push eax
call fcn.0040ef30
mov eax, dword [esp + 0x10]
test eax, 0x40000
je 0x416209
mov ecx, eax
mov eax, dword [esp + 0x3c]
and ecx, 0xfffbffff
cmp eax, 0x10
mov dword [esp + 0x10], ecx
jb 0x4161fd
mov ecx, dword [esp + 0x28]
push ecx
call fcn.004c2c15
add esp, 4
mov dword [esp + 0x3c], edi
mov dword [esp + 0x38], ebx
mov byte [esp + 0x28], bl
mov dword [esp + 0x3f4], 2
mov eax, dword [esp + 0x10]
test eax, 0x20000
je 0x416247
mov ecx, eax
mov eax, dword [esp + 0xa4]
and ecx, 0xfffdffff
cmp eax, 0x10
mov dword [esp + 0x10], ecx
jb 0x416247
mov edx, dword [esp + 0x90]
push edx
call fcn.004c2c15
add esp, 4
push 0x60
call fcn.004c14e8
mov esi, eax
add esp, 4
mov dword [esp + 0x1c], esi
cmp esi, ebx
mov byte [esp + 0x3f4], 0x3b
je 0x4162f6
lea eax, [esp + 0x70]
push eax
lea ecx, [esp + 0x90]
call fcn.00402330
mov byte [esp + 0x3f4], 0x3c
or dword [esp + 0x10], 0x80000
push 0x51f2aa
lea ecx, [esp + 0x100]
call fcn.00402330
mov dword [esp + 0x3f4], 0x3d
mov edx, dword [esp + 0x10]
or edx, 0x100000
push str.DirectX
lea ecx, [esp + 0x28]
mov dword [esp + 0x14], edx
call fcn.00402330
mov dword [esp + 0x3f4], 0x3e
mov eax, dword [esp + 0x10]
or eax, 0x200000
lea ecx, [esp + 0x8c]
push ecx
lea edx, [esp + 0x100]
mov dword [esp + 0x14], eax
push edx
lea eax, [esp + 0x2c]
push eax
mov ecx, esi
call fcn.0040e920
jmp 0x4162f8
xor eax, eax
mov dword [esp + 0x3f4], 0x41
mov ecx, dword [esp + 0x20]
push eax
call fcn.0040ef30
mov eax, dword [esp + 0x10]
test eax, 0x200000
mov esi, 0x10
je 0x41634a
mov ecx, eax
mov eax, dword [esp + 0x3c]
and ecx, 0xffdfffff
cmp eax, esi
mov dword [esp + 0x10], ecx
jb 0x41633e
mov ecx, dword [esp + 0x28]
push ecx
call fcn.004c2c15
add esp, 4
mov dword [esp + 0x3c], edi
mov dword [esp + 0x38], ebx
mov byte [esp + 0x28], bl
mov eax, dword [esp + 0x10]
test eax, 0x100000
je 0x416391
mov ecx, eax
mov eax, dword [esp + 0x114]
and ecx, 0xffefffff
cmp eax, esi
mov dword [esp + 0x10], ecx
jb 0x41637c
mov edx, dword [esp + 0x100]
push edx
call fcn.004c2c15
add esp, 4
mov dword [esp + 0x114], edi
mov dword [esp + 0x110], ebx
mov byte [esp + 0x100], bl
mov dword [esp + 0x3f4], 2
mov eax, dword [esp + 0x10]
test eax, 0x80000
je 0x4163ce
mov ecx, eax
mov eax, dword [esp + 0xa4]
and ecx, 0xfff7ffff
cmp eax, esi
mov dword [esp + 0x10], ecx
jb 0x4163ce
mov eax, dword [esp + 0x90]
push eax
call fcn.004c2c15
add esp, 4
mov ecx, dword [esp + 0x20]
mov edi, dword [esp + 0x40]
push ecx
mov ecx, edi
call fcn.0040ef30
mov esi, ebp
call fcn.00414a40
push ebp
call fcn.004c2c15
mov eax, dword [esp + 0x6c]
add esp, 4
cmp eax, ebx
jne 0x4164b5
push 0x54
call fcn.004c14e8
mov esi, eax
add esp, 4
mov dword [esp + 0x1c], esi
cmp esi, ebx
mov byte [esp + 0x3f4], 0x42
mov ebp, 0x400000
je 0x416453
mov edx, dword [str.PlayingSessions]
push edx
lea ecx, [esp + 0x2f8]
call fcn.00402330
mov byte [esp + 0x3f4], 0x43
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x2f4]
or edx, ebp
push eax
mov ecx, esi
mov dword [esp + 0x14], edx
call fcn.0040ece0
mov esi, eax
jmp 0x416455
xor esi, esi
mov dword [esp + 0x3f4], 2
mov eax, dword [esp + 0x10]
test ebp, eax
mov dword [esp + 0x68], esi
je 0x4164ad
mov ecx, eax
mov eax, dword [esp + 0x30c]
and ecx, 0xffbfffff
cmp eax, 0x10
mov dword [esp + 0x10], ecx
jb 0x416494
mov ecx, dword [esp + 0x2f8]
push ecx
call fcn.004c2c15
add esp, 4
mov dword [esp + 0x30c], 0xf
mov dword [esp + 0x308], ebx
mov byte [esp + 0x2f8], bl
push esi
mov ecx, edi
call fcn.0040ef30
mov eax, dword [esp + 0x3fc]
mov ecx, dword [eax + 0x60]
mov eax, dword [eax + 0x64]
cmp ecx, eax
mov dword [esp + 0x1c], ecx
je 0x417397
mov edi, edi
mov edx, dword [esp + 0x1c]
mov ebp, dword [edx]
push 0x6c
mov dword [esp + 0x48], ebp
call fcn.004c14e8
mov esi, eax
add esp, 4
mov dword [esp + 0x20], esi
cmp esi, ebx
mov byte [esp + 0x3f4], 0x45
mov edi, 0xf
je 0x41658a
push ebx
push 0x51f2aa
lea ecx, [esp + 0xe8]
mov dword [esp + 0x100], edi
mov dword [esp + 0xfc], ebx
mov byte [esp + 0xec], bl
call fcn.00401eb0
mov byte [esp + 0x3f4], 0x46
mov edx, dword [esp + 0x10]
push ebx
or edx, 0x800000
push 0x51f2aa
lea ecx, [esp + 0x54]
mov dword [esp + 0x18], edx
mov dword [esp + 0x6c], edi
mov dword [esp + 0x68], ebx
mov byte [esp + 0x58], bl
call fcn.00401eb0
mov dword [esp + 0x3f4], 0x47
mov edx, dword [esp + 0x10]
lea eax, [esp + 0xe0]
push eax
lea ecx, [esp + 0x50]
or edx, 0x1000000
push ecx
mov ecx, esi
mov dword [esp + 0x18], edx
call fcn.0040ec50
mov dword [esp + 0x20], eax
jmp 0x41658e
mov dword [esp + 0x20], ebx
mov eax, dword [esp + 0x10]
test eax, 0x1000000
je 0x4165c7
mov ecx, eax
mov eax, dword [esp + 0x64]
and ecx, 0xfeffffff
cmp eax, 0x10
mov dword [esp + 0x10], ecx
jb 0x4165bb
mov edx, dword [esp + 0x50]
push edx
call fcn.004c2c15
add esp, 4
mov dword [esp + 0x64], edi
mov dword [esp + 0x60], ebx
mov byte [esp + 0x50], bl
mov dword [esp + 0x3f4], 2
mov eax, dword [esp + 0x10]
test eax, 0x800000
je 0x41661a
mov ecx, eax
mov eax, dword [esp + 0xf8]
and ecx, 0xff7fffff
cmp eax, 0x10
mov dword [esp + 0x10], ecx
jb 0x416605
mov eax, dword [esp + 0xe4]
push eax
call fcn.004c2c15
add esp, 4
mov dword [esp + 0xf8], edi
mov dword [esp + 0xf4], ebx
mov byte [esp + 0xe4], bl
mov edx, dword [str.PlayingSession]
mov eax, edx
mov dword [esp + 0xdc], edi
mov dword [esp + 0xd8], ebx
mov byte [esp + 0xc8], bl
lea esi, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x416640
sub eax, esi
push eax
push edx
lea ecx, [esp + 0xcc]
call fcn.00401eb0
push 0xffffffffffffffff
push ebx
lea ecx, [esp + 0xcc]
push ecx
mov byte [esp + 0x400], 0x4a
mov ecx, dword [esp + 0x2c]
add ecx, 0xc
call fcn.00401510
mov byte [esp + 0x3f4], 2
cmp dword [esp + 0xdc], 0x10
jb 0x416698
mov edx, dword [esp + 0xc8]
push edx
call fcn.004c2c15
add esp, 4
push 0x60
mov dword [esp + 0xe0], edi
mov dword [esp + 0xdc], ebx
mov byte [esp + 0xcc], bl
call fcn.004c14e8
mov esi, eax
add esp, 4
mov dword [esp + 0x48], esi
cmp esi, ebx
mov byte [esp + 0x3f4], 0x4b
je 0x41675f
push ebx
push 0x51f2aa
lea ecx, [esp + 0x2e0]
mov dword [esp + 0x2f8], edi
mov dword [esp + 0x2f4], ebx
mov byte [esp + 0x2e4], bl
call fcn.00401eb0
mov byte [esp + 0x3f4], 0x4c
mov edx, dword [esp + 0x10]
push 9
or edx, 0x2000000
push str.StartTime
lea ecx, [esp + 0x78]
mov dword [esp + 0x18], edx
mov dword [esp + 0x90], edi
mov dword [esp + 0x8c], ebx
mov byte [esp + 0x7c], bl
call fcn.00401eb0
mov dword [esp + 0x3f4], 0x4d
mov edx, dword [esp + 0x10]
mov eax, dword [ebp]
or edx, 0x4000000
push eax
lea ecx, [esp + 0x2dc]
mov dword [esp + 0x14], edx
push ecx
lea edx, [esp + 0x78]
push edx
mov ecx, esi
call fcn.0040e7c0
jmp 0x416761
xor eax, eax
mov dword [esp + 0x3f4], 0x4f
mov ecx, dword [esp + 0x20]
push eax
call fcn.0040ef30
mov eax, dword [esp + 0x10]
test eax, 0x4000000
je 0x4167b8
mov ecx, eax
mov eax, dword [esp + 0x88]
and ecx, 0xfbffffff
cmp eax, 0x10
mov dword [esp + 0x10], ecx
jb 0x4167a6
mov eax, dword [esp + 0x74]
push eax
call fcn.004c2c15
add esp, 4
mov dword [esp + 0x88], edi
mov dword [esp + 0x84], ebx
mov byte [esp + 0x74], bl
mov dword [esp + 0x3f4], 2
mov eax, dword [esp + 0x10]
test eax, 0x2000000
je 0x41680b
mov ecx, eax
mov eax, dword [esp + 0x2f0]
and ecx, 0xfdffffff
cmp eax, 0x10
mov dword [esp + 0x10], ecx
jb 0x4167f6
mov ecx, dword [esp + 0x2dc]
push ecx
call fcn.004c2c15
add esp, 4
mov dword [esp + 0x2f0], edi
mov dword [esp + 0x2ec], ebx
mov byte [esp + 0x2dc], bl
push 0x60
call fcn.004c14e8
mov esi, eax
add esp, 4
mov dword [esp + 0x48], esi
cmp esi, ebx
mov byte [esp + 0x3f4], 0x50
je 0x4168c6
push ebx
push 0x51f2aa
lea ecx, [esp + 0x174]
mov dword [esp + 0x18c], edi
mov dword [esp + 0x188], ebx
mov byte [esp + 0x178], bl
call fcn.00401eb0
mov byte [esp + 0x3f4], 0x51
mov ecx, dword [esp + 0x10]
or ecx, 0x8000000
push 7
mov dword [esp + 0x14], ecx
push str.EndTime
lea ecx, [esp + 0x120]
mov dword [esp + 0x138], edi
mov dword [esp + 0x134], ebx
mov byte [esp + 0x124], bl
call fcn.00401eb0
mov dword [esp + 0x3f4], 0x52
mov ecx, dword [esp + 0x10]
mov edx, dword [ebp + 4]
or ecx, 0x10000000
push edx
mov dword [esp + 0x14], ecx
lea eax, [esp + 0x170]
push eax
lea ecx, [esp + 0x120]
push ecx
mov ecx, esi
call fcn.0040e7c0
jmp 0x4168c8
xor eax, eax
mov dword [esp + 0x3f4], 0x54
mov ecx, dword [esp + 0x20]
push eax
call fcn.0040ef30
mov eax, dword [esp + 0x10]
test eax, 0x10000000
je 0x416925
mov ecx, eax
mov eax, dword [esp + 0x130]
and ecx, 0xefffffff
cmp eax, 0x10
mov dword [esp + 0x10], ecx
jb 0x416910
mov edx, dword [esp + 0x11c]
push edx
call fcn.004c2c15
add esp, 4
mov dword [esp + 0x130], edi
mov dword [esp + 0x12c], ebx
mov byte [esp + 0x11c], bl
mov dword [esp + 0x3f4], 2
mov eax, dword [esp + 0x10]
test eax, 0x8000000
je 0x416978
mov ecx, eax
mov eax, dword [esp + 0x184]
and ecx, 0xf7ffffff
cmp eax, 0x10
mov dword [esp + 0x10], ecx
jb 0x416963
mov eax, dword [esp + 0x170]
push eax
call fcn.004c2c15
add esp, 4
mov dword [esp + 0x184], edi
mov dword [esp + 0x180], ebx
mov byte [esp + 0x170], bl
push 0x60
call fcn.004c14e8
mov esi, eax
add esp, 4
mov dword [esp + 0x48], esi
cmp esi, ebx
mov byte [esp + 0x3f4], 0x55
je 0x416a31
push ebx
push 0x51f2aa
lea ecx, [esp + 0x1ac]
mov dword [esp + 0x1c4], edi
mov dword [esp + 0x1c0], ebx
mov byte [esp + 0x1b0], bl
call fcn.00401eb0
mov byte [esp + 0x3f4], 0x56
mov eax, dword [esp + 0x10]
push 8
or eax, 0x20000000
push str.GameMode
lea ecx, [esp + 0x28c]
mov dword [esp + 0x18], eax
mov dword [esp + 0x2a4], edi
mov dword [esp + 0x2a0], ebx
mov byte [esp + 0x290], bl
call fcn.00401eb0
mov dword [esp + 0x3f4], 0x57
mov eax, dword [esp + 0x10]
mov ecx, dword [ebp + 8]
or eax, 0x40000000
push ecx
lea edx, [esp + 0x1a8]
mov dword [esp + 0x14], eax
push edx
lea eax, [esp + 0x28c]
push eax
mov ecx, esi
call fcn.0040e7c0
jmp 0x416a33
xor eax, eax
mov dword [esp + 0x3f4], 0x59
mov ecx, dword [esp + 0x20]
push eax
call fcn.0040ef30
mov eax, dword [esp + 0x10]
test eax, 0x40000000
je 0x416a90
mov ecx, eax
mov eax, dword [esp + 0x29c]
and ecx, 0xbfffffff
cmp eax, 0x10
mov dword [esp + 0x10], ecx
jb 0x416a7b
mov ecx, dword [esp + 0x288]
push ecx
call fcn.004c2c15
add esp, 4
mov dword [esp + 0x29c], edi
mov dword [esp + 0x298], ebx
mov byte [esp + 0x288], bl
mov dword [esp + 0x3f4], 2
mov eax, dword [esp + 0x10]
test eax, 0x20000000
je 0x416ae3
mov ecx, eax
mov eax, dword [esp + 0x1bc]
and ecx, 0xdfffffff
cmp eax, 0x10
mov dword [esp + 0x10], ecx
jb 0x416ace
mov edx, dword [esp + 0x1a8]
push edx
call fcn.004c2c15
add esp, 4
mov dword [esp + 0x1bc], edi
mov dword [esp + 0x1b8], ebx
mov byte [esp + 0x1a8], bl
push 0x60
call fcn.004c14e8
mov esi, eax
add esp, 4
mov dword [esp + 0x48], esi
cmp esi, ebx
mov byte [esp + 0x3f4], 0x5a
je 0x416b94
push ebx
push 0x51f2aa
lea ecx, [esp + 0x1e4]
mov dword [esp + 0x1fc], edi
mov dword [esp + 0x1f8], ebx
mov byte [esp + 0x1e8], bl
call fcn.00401eb0
mov byte [esp + 0x3f4], 0x5b
mov eax, dword [esp + 0x10]
push 0xc
or eax, 0x80000000
push str.NumOfPlayers
lea ecx, [esp + 0x2c4]
mov dword [esp + 0x18], eax
mov dword [esp + 0x2dc], edi
mov dword [esp + 0x2d8], ebx
mov byte [esp + 0x2c8], bl
call fcn.00401eb0
mov dword [esp + 0x3f4], 0x5c
or dword [esp + 0x14], 1
mov eax, dword [ebp + 0xc]
push eax
lea ecx, [esp + 0x1e0]
push ecx
lea edx, [esp + 0x2c4]
push edx
mov ecx, esi
call fcn.0040e7c0
jmp 0x416b96
xor eax, eax
mov dword [esp + 0x3f4], 0x5e
mov ecx, dword [esp + 0x20]
push eax
call fcn.0040ef30
test byte [esp + 0x14], 1
je 0x416bee
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x2d4]
and ecx, 0xfffffffe
cmp eax, 0x10
mov dword [esp + 0x14], ecx
jb 0x416bd9
mov eax, dword [esp + 0x2c0]
push eax
call fcn.004c2c15
add esp, 4
mov dword [esp + 0x2d4], edi
mov dword [esp + 0x2d0], ebx
mov byte [esp + 0x2c0], bl
mov dword [esp + 0x3f4], 2
mov eax, dword [esp + 0x10]
test eax, eax
jns 0x416c3e
mov ecx, eax
mov eax, dword [esp + 0x1f4]
and ecx, 0x7fffffff
cmp eax, 0x10
mov dword [esp + 0x10], ecx
jb 0x416c29
mov ecx, dword [esp + 0x1e0]
push ecx
call fcn.004c2c15
add esp, 4
mov dword [esp + 0x1f4], edi
mov dword [esp + 0x1f0], ebx
mov byte [esp + 0x1e0], bl
push 0x60
call fcn.004c14e8
mov ebp, eax
add esp, 4
mov dword [esp + 0x48], ebp
cmp ebp, ebx
mov byte [esp + 0x3f4], 0x5f
je 0x416d5b
mov edx, dword [esp + 0x44]
cmp byte [edx + 0x10], bl
mov esi, str.true
jne 0x416c71
mov esi, 0x51f470
mov eax, esi
mov dword [esp + 0x280], 0xf
mov dword [esp + 0x27c], ebx
mov byte [esp + 0x26c], bl
lea edi, [eax + 1]
nop
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x416c90
sub eax, edi
push eax
push esi
lea ecx, [esp + 0x270]
call fcn.00401eb0
mov byte [esp + 0x3f4], 0x60
mov ecx, dword [esp + 0x14]
or ecx, 2
push ebx
mov dword [esp + 0x18], ecx
mov esi, 0xf
push 0x51f2aa
lea ecx, [esp + 0x21c]
mov dword [esp + 0x234], esi
mov dword [esp + 0x230], ebx
mov byte [esp + 0x220], bl
call fcn.00401eb0
mov dword [esp + 0x3f4], 0x61
mov edx, dword [esp + 0x14]
push 0xa
or edx, 4
push str.FullScreen
lea ecx, [esp + 0x2a8]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x2c0], esi
mov dword [esp + 0x2bc], ebx
mov byte [esp + 0x2ac], bl
call fcn.00401eb0
lea eax, [esp + 0x268]
mov dword [esp + 0x3f4], 0x62
mov edi, dword [esp + 0x14]
push eax
lea ecx, [esp + 0x218]
push ecx
lea edx, [esp + 0x2a8]
or edi, 8
push edx
mov ecx, ebp
mov dword [esp + 0x20], edi
call fcn.0040e920
jmp 0x416d5d
xor eax, eax
mov dword [esp + 0x3f4], 0x65
mov ecx, dword [esp + 0x20]
push eax
call fcn.0040ef30
test byte [esp + 0x14], 8
mov esi, 0x10
je 0x416dc0
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x2b8]
and ecx, 0xfffffff7
cmp eax, esi
mov dword [esp + 0x14], ecx
jb 0x416da4
mov eax, dword [esp + 0x2a4]
push eax
call fcn.004c2c15
add esp, 4
mov ebp, 0xf
mov dword [esp + 0x2b8], ebp
mov dword [esp + 0x2b4], ebx
mov byte [esp + 0x2a4], bl
jmp 0x416dc5
mov ebp, 0xf
test byte [esp + 0x14], 4
je 0x416e07
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x22c]
and ecx, 0xfffffffb
cmp eax, esi
mov dword [esp + 0x14], ecx
jb 0x416df2
mov ecx, dword [esp + 0x218]
push ecx
call fcn.004c2c15
add esp, 4
mov dword [esp + 0x22c], ebp
mov dword [esp + 0x228], ebx
mov byte [esp + 0x218], bl
mov dword [esp + 0x3f4], 2
test byte [esp + 0x14], 2
je 0x416e54
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x280]
and ecx, 0xfffffffd
cmp eax, esi
mov dword [esp + 0x14], ecx
jb 0x416e3f
mov edx, dword [esp + 0x26c]
push edx
call fcn.004c2c15
add esp, 4
mov dword [esp + 0x280], ebp
mov dword [esp + 0x27c], ebx
mov byte [esp + 0x26c], bl
push 0x60
call fcn.004c14e8
mov esi, eax
add esp, 4
mov dword [esp + 0x48], esi
cmp esi, ebx
mov byte [esp + 0x3f4], 0x66
je 0x416f0d
push ebx
push 0x51f2aa
lea ecx, [esp + 0x158]
mov dword [esp + 0x170], ebp
mov dword [esp + 0x16c], ebx
mov byte [esp + 0x15c], bl
call fcn.00401eb0
mov byte [esp + 0x3f4], 0x67
mov ecx, dword [esp + 0x14]
or ecx, 0x10
push 8
mov dword [esp + 0x18], ecx
push str.BitDepth
lea ecx, [esp + 0x13c]
mov dword [esp + 0x154], ebp
mov dword [esp + 0x150], ebx
mov byte [esp + 0x140], bl
call fcn.00401eb0
mov edi, dword [esp + 0x44]
mov dword [esp + 0x3f4], 0x68
mov edx, dword [esp + 0x14]
mov eax, dword [edi + 0x14]
or edx, 0x20
push eax
lea ecx, [esp + 0x154]
mov dword [esp + 0x18], edx
push ecx
lea edx, [esp + 0x13c]
push edx
mov ecx, esi
call fcn.0040e7c0
jmp 0x416f13
mov edi, dword [esp + 0x44]
xor eax, eax
mov dword [esp + 0x3f4], 0x6a
mov ecx, dword [esp + 0x20]
push eax
call fcn.0040ef30
test byte [esp + 0x14], 0x20
je 0x416f6b
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x14c]
and ecx, 0xffffffdf
cmp eax, 0x10
mov dword [esp + 0x14], ecx
jb 0x416f56
mov eax, dword [esp + 0x138]
push eax
call fcn.004c2c15
add esp, 4
mov dword [esp + 0x14c], ebp
mov dword [esp + 0x148], ebx
mov byte [esp + 0x138], bl
mov dword [esp + 0x3f4], 2
test byte [esp + 0x14], 0x10
je 0x416fb9
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x168]
and ecx, 0xffffffef
cmp eax, 0x10
mov dword [esp + 0x14], ecx
jb 0x416fa4
mov ecx, dword [esp + 0x154]
push ecx
call fcn.004c2c15
add esp, 4
mov dword [esp + 0x168], ebp
mov dword [esp + 0x164], ebx
mov byte [esp + 0x154], bl
push 0x60
call fcn.004c14e8
mov esi, eax
add esp, 4
mov dword [esp + 0x48], esi
cmp esi, ebx
mov byte [esp + 0x3f4], 0x6b
je 0x417071
push ebx
push 0x51f2aa
lea ecx, [esp + 0x1c8]
mov dword [esp + 0x1e0], ebp
mov dword [esp + 0x1dc], ebx
mov byte [esp + 0x1cc], bl
call fcn.00401eb0
mov byte [esp + 0x3f4], 0x6c
mov ecx, dword [esp + 0x14]
or ecx, 0x40
push 0xb
mov dword [esp + 0x18], ecx
push str.ScreenWidth
lea ecx, [esp + 0x190]
mov dword [esp + 0x1a8], ebp
mov dword [esp + 0x1a4], ebx
mov byte [esp + 0x194], bl
call fcn.00401eb0
mov dword [esp + 0x3f4], 0x6d
mov ecx, dword [esp + 0x14]
mov edx, dword [edi + 0x18]
or ecx, 0x80
push edx
mov dword [esp + 0x18], ecx
lea eax, [esp + 0x1c4]
push eax
lea ecx, [esp + 0x190]
push ecx
mov ecx, esi
call fcn.0040e7c0
jmp 0x417073
xor eax, eax
mov dword [esp + 0x3f4], 0x6f
mov ecx, dword [esp + 0x20]
push eax
call fcn.0040ef30
mov al, byte [esp + 0x14]
test al, al
jns 0x4170cf
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1a0]
and ecx, 0xffffff7f
cmp eax, 0x10
mov dword [esp + 0x14], ecx
jb 0x4170ba
mov edx, dword [esp + 0x18c]
push edx
call fcn.004c2c15
add esp, 4
mov dword [esp + 0x1a0], ebp
mov dword [esp + 0x19c], ebx
mov byte [esp + 0x18c], bl
mov dword [esp + 0x3f4], 2
test byte [esp + 0x14], 0x40
je 0x41711d
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1d8]
and ecx, 0xffffffbf
cmp eax, 0x10
mov dword [esp + 0x14], ecx
jb 0x417108
mov eax, dword [esp + 0x1c4]
push eax
call fcn.004c2c15
add esp, 4
mov dword [esp + 0x1d8], ebp
mov dword [esp + 0x1d4], ebx
mov byte [esp + 0x1c4], bl
push 0x60
call fcn.004c14e8
mov esi, eax
add esp, 4
mov dword [esp + 0x48], esi
cmp esi, ebx
mov byte [esp + 0x3f4], 0x70
je 0x4171c7
push ebx
push 0x51f2aa
lea ecx, [esp + 0x2c]
mov dword [esp + 0x44], ebp
mov dword [esp + 0x40], ebx
mov byte [esp + 0x30], bl
call fcn.00401eb0
mov byte [esp + 0x3f4], 0x71
mov eax, dword [esp + 0x14]
push 0xc
or eax, 0x100
push str.ScreenHeight
lea ecx, [esp + 0x104]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x11c], ebp
mov dword [esp + 0x118], ebx
mov byte [esp + 0x108], bl
call fcn.00401eb0
mov dword [esp + 0x3f4], 0x72
mov eax, dword [esp + 0x14]
mov ecx, dword [edi + 0x1c]
or eax, 0x200
push ecx
lea edx, [esp + 0x28]
mov dword [esp + 0x18], eax
push edx
lea eax, [esp + 0x104]
push eax
mov ecx, esi
call fcn.0040e7c0
jmp 0x4171c9
xor eax, eax
mov dword [esp + 0x3f4], 0x74
mov ecx, dword [esp + 0x20]
push eax
call fcn.0040ef30
mov eax, dword [esp + 0x14]
test ah, 2
je 0x417224
mov ecx, eax
mov eax, dword [esp + 0x114]
and ecx, 0xfffffdff
cmp eax, 0x10
mov dword [esp + 0x14], ecx
jb 0x41720f
mov ecx, dword [esp + 0x100]
push ecx
call fcn.004c2c15
add esp, 4
mov dword [esp + 0x114], ebp
mov dword [esp + 0x110], ebx
mov byte [esp + 0x100], bl
mov dword [esp + 0x3f4], 2
mov eax, dword [esp + 0x14]
test ah, 1
je 0x417266
mov ecx, eax
mov eax, dword [esp + 0x3c]
and ecx, 0xfffffeff
cmp eax, 0x10
mov dword [esp + 0x14], ecx
jb 0x41725a
mov edx, dword [esp + 0x28]
push edx
call fcn.004c2c15
add esp, 4
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x38], ebx
mov byte [esp + 0x28], bl
mov eax, dword [esp + 0x3fc]
cmp byte [eax], bl
je 0x41736c
push 0x54
call fcn.004c14e8
mov esi, eax
add esp, 4
mov dword [esp + 0x48], esi
cmp esi, ebx
mov byte [esp + 0x3f4], 0x75
je 0x4172c3
push str.BetaData
lea ecx, [esp + 0x90]
call fcn.00402330
mov byte [esp + 0x3f4], 0x76
or dword [esp + 0x14], 0x400
lea ecx, [esp + 0x8c]
push ecx
mov ecx, esi
call fcn.0040ece0
jmp 0x4172c5
xor eax, eax
mov dword [esp + 0x3f4], 0x77
mov ecx, dword [esp + 0x20]
push eax
call fcn.0040ef30
cmp dword [eax + 8], 3
mov ebp, eax
je 0x4172e7
mov ebp, 0x54ca10
mov dword [esp + 0x3f4], 2
mov eax, dword [esp + 0x14]
test ah, 4
je 0x41733c
mov ecx, eax
mov eax, dword [esp + 0xa4]
and ecx, 0xfffffbff
cmp eax, 0x10
mov dword [esp + 0x14], ecx
jb 0x417323
mov edx, dword [esp + 0x90]
push edx
call fcn.004c2c15
add esp, 4
mov dword [esp + 0xa4], 0xf
mov dword [esp + 0xa0], ebx
mov byte [esp + 0x90], bl
mov ecx, dword [edi + 0x24]
cmp ecx, ebx
je 0x41736c
mov eax, dword [edi + 0x28]
sub eax, ecx
sar eax, 2
cmp eax, ebx
jbe 0x41736c
mov eax, dword [edi + 0x28]
mov esi, ecx
cmp esi, eax
je 0x41736c
mov eax, dword [esi]
push eax
mov ecx, ebp
call fcn.0040f000
mov eax, dword [edi + 0x28]
add esi, 4
cmp esi, eax
jne 0x417358
mov ecx, dword [esp + 0x20]
push ecx
mov ecx, dword [esp + 0x6c]
call fcn.0040f000
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x3fc]
mov ecx, dword [edx + 0x64]
add eax, 4
cmp eax, ecx
mov dword [esp + 0x1c], eax
jne 0x4164d0
mov edi, dword [esp + 0x3fc]
cmp dword [edi + 0x6c], ebx
je 0x417462
mov esi, dword [esp + 0x6c]
cmp esi, ebx
jne 0x417457
push 0x54
call fcn.004c14e8
mov esi, eax
add esp, 4
mov dword [esp + 0x48], esi
cmp esi, ebx
mov byte [esp + 0x3f4], 0x78
je 0x417404
mov eax, dword [str.BetaSession]
push eax
lea ecx, [esp + 0x90]
call fcn.00402330
mov byte [esp + 0x3f4], 0x79
or dword [esp + 0x14], 0x800
lea ecx, [esp + 0x8c]
push ecx
mov ecx, esi
call fcn.0040ece0
mov esi, eax
jmp 0x417406
xor esi, esi
mov dword [esp + 0x3f4], 2
mov eax, dword [esp + 0x14]
test ah, 8
je 0x41744d
cmp dword [esp + 0xa4], 0x10
jb 0x417434
mov edx, dword [esp + 0x90]
push edx
call fcn.004c2c15
add esp, 4
mov dword [esp + 0xa4], 0xf
mov dword [esp + 0xa0], ebx
mov byte [esp + 0x90], bl
mov ecx, dword [esp + 0x40]
push esi
call fcn.0040ef30
mov eax, dword [edi + 0x6c]
push eax
mov ecx, esi
call fcn.0040f000
push 0xffffffffffffffff
push ebx
lea eax, [edi + 0x3c]
push eax
lea ecx, [esp + 0x3d4]
call fcn.00401510
mov al, byte [edi + 0x58]
pop edi
pop esi
pop ebp
cmp al, bl
pop ebx
jne 0x41748c
lea ecx, [esp + 0x33c]
call fcn.00410040
lea ecx, [esp + 0x33c]
mov dword [esp + 0x3e4], 0xffffffff
call fcn.0040a4f0
mov ecx, dword [esp + 0x3dc]
mov dword fs:[0], ecx
add esp, 0x3e8
ret 4