Function at 0x10016020
Capabilities:
Access peb ldr_data
Check for peb ntglobalflag flag
Get number of processors
Get process heap flags
Get process heap force flags

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100461ad
mov eax, dword fs:[0]
push eax
push ecx
push esi
mov eax, dword [0x10156054]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
sub esp, 0x18
mov dword [ebp - 4], 0
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0xfc]
push eax
push str.vehSpecialUp
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0x100]
push eax
push str.vehSpecialDown
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0x104]
push eax
push str.vehSubMission
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0x108]
push eax
push str.bmxBunnyHop
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0x154]
push eax
push str.hydraF
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0x158]
push eax
push str.hydraB
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0x50]
push eax
push str.convNo
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0x4c]
push eax
push str.convYes
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0x58]
push eax
push str.groupBwd
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0x54]
push eax
push str.groupFwd
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0xa4]
push eax
push str.accelerate
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0x80]
push eax
push 0x1005463c
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0x74]
push eax
push str.attack
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0x78]
push eax
push str.attackMelee
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0x7c]
push eax
push str.attackMeleeAlt
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0xa8]
push eax
push str.brake
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0x10]
push eax
push str.changeCamera
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0xb8]
push eax
push str.drivebyShoot
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0x14]
push eax
push str.enterExitCar
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0xb4]
push eax
push str.handbrake
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0xf8]
push eax
push str.headlight
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0x120]
push eax
push str.heliBwd
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0x110]
push eax
push str.heliDn
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0x11c]
push eax
push str.heliFwd
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0x124]
push eax
push str.heliRotLeft
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0x128]
push eax
push str.heliRotRight
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0x114]
push eax
push str.heliTiltLeft
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0x118]
push eax
push str.heliTiltRight
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0x12c]
push eax
push str.heliPrimary
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0x130]
push eax
push str.heliSecondary
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0x10c]
push eax
push str.heliUp
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0xf4]
push eax
push str.horn
call fcn.10015e60
sub esp, 0x18
mov ecx, esp
lea eax, [ebp + 8]
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0xc0]
push eax
push str.hydraulicsB
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0xbc]
push eax
push str.hydraulicsF
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0xc4]
push eax
push str.hydraulicsL
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0xc8]
push eax
push str.hydraulicsR
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0x84]
push eax
push str.interact
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0x70]
push eax
push str.jump
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0xa0]
push eax
push str.duck
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0xd0]
push eax
push str.leanBwd
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0xcc]
push eax
push str.leanFwd
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0x88]
push eax
push str.lookBehind
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0xdc]
push eax
push str.lookBehindVeh
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0xd4]
push eax
push str.lookLeft
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0xd8]
push eax
push str.lookRight
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0x64]
push eax
push str.moveDown
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0x68]
push eax
push str.moveLeft
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0x6c]
push eax
push str.moveRight
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0x60]
push eax
push str.moveUp
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0x8c]
push eax
push str.nextWep
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0xec]
push eax
push str.nextWepVeh
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0x150]
push eax
push str.planeLandingGear
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0x140]
push eax
push str.planeLeanFwd
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0x144]
push eax
push str.planeLeanBwd
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0x148]
push eax
push str.planeRotLeft
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0x14c]
push eax
push str.planeRotRight
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0x134]
push eax
push str.planePrimary
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0x138]
push eax
push str.planeSecondary
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0x13c]
push eax
push str.planeLockOn
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0x15c]
push eax
push str.jetpackUp
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0x160]
push eax
push str.jetpackDown
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0x90]
push eax
push str.prevWep
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0xf0]
push eax
push str.prevWepVeh
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0xc]
push eax
push str.radarZoom
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0xe4]
push eax
push str.radioDn
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0xe8]
push eax
push str.radioOff
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0xe0]
push eax
push str.radioUp
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0x9c]
push eax
push str.reload
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0x98]
push eax
push str.sniperZoomDn
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0x94]
push eax
push str.sniperZoomUp
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0x5c]
push eax
push str.sprint
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0xac]
push eax
push str.steerLeft
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0xb0]
push eax
push str.steerRight
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0x18]
push eax
push str.weaponSlot1
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0x1c]
push eax
push str.weaponSlot2
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0x20]
push eax
push str.weaponSlot3
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0x24]
push eax
push str.weaponSlot4
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0x28]
push eax
push str.weaponSlot5
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0x2c]
push eax
push str.weaponSlot6
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0x30]
push eax
push str.weaponSlot7
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0x34]
push eax
push str.weaponSlot8
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0x38]
push eax
push str.weaponSlot9
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0x3c]
push eax
push str.weaponSlot10
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0x40]
push eax
push str.weaponSlot11
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0x44]
push eax
push str.weaponSlot12
call fcn.10015e60
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.1001ee90
push str.IVControls
lea eax, [esi + 0x48]
push eax
push str.weaponSlot13
call fcn.10015e60
mov edx, dword [ebp + 0x1c]
cmp edx, 0x10
jb 0x10016c3e
mov ecx, dword [ebp + 8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10016c34
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10016c50
push edx
push ecx
call fcn.10024b33
add esp, 8
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov esp, ebp
pop ebp
ret 0x18
call fcn.10030a00
int3