Function at 0x10009543
Capabilities:
Allocate or change rwx memory

Disassembly:
mov eax, 0x10067066
call fcn.10049cb8
sub esp, 0x2c
push ebx
push esi
mov esi, ecx
mov ebx, 0xffff
push edi
mov dword [ebp - 0x14], esi
mov dword [esi], vtable.CGameSA.0
lea edi, [esi + 0x144]
mov ecx, edi
call fcn.1000bdb8
add edi, 0x1c
sub ebx, 1
jne 0x10009569
lea ebx, [esi + 0x1c01e0]
mov dword [ebp - 0x18], ebx
and dword [ebx], 0
and dword [ebx + 4], 0
push ebx
call fcn.10009331
pop ecx
mov dword [ebx], eax
lea eax, [ebp - 0x20]
mov dword [0x101003bc], esi
push eax
push 0x40
push 0x4a3000
xor ebx, ebx
push 0x401000
mov dword [ebp - 4], ebx
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
mov ecx, esi
call fcn.1000a251
mov edi, eax
cmp edi, 5
je 0x100095e4
cmp edi, 0xb
je 0x100095dd
cmp edi, 0xf
je 0x100095d6
cmp edi, 0x14
jne 0x100095e9
call fcn.1000b04e
jmp 0x100095e9
call fcn.1000d325
jmp 0x100095e9
call fcn.1000d2f2
jmp 0x100095e9
call fcn.1000d2bf
mov eax, ebx
lea ecx, [esi + 0x14c]
mov dword [ecx], eax
inc eax
lea ecx, [ecx + 0x1c]
cmp eax, 0xffff
jl 0x100095f1
push 4
call fcn.10049c7a
pop ecx
test eax, eax
je 0x10009612
mov dword [eax], vtable.CAudioSA.0
jmp 0x10009614
mov eax, ebx
push 4
mov dword [esi + 0x1c01ac], eax
call fcn.10049c7a
pop ecx
test eax, eax
je 0x1000962e
mov dword [eax], vtable.CWorldSA.0
jmp 0x10009630
mov eax, ebx
push 0x13888
mov dword [esi + 0x1c0160], eax
call fcn.10049c7a
pop ecx
mov dword [ebp - 0x18], eax
mov byte [ebp - 4], 1
test eax, eax
je 0x10009655
mov ecx, eax
call fcn.10011105
jmp 0x10009657
mov eax, ebx
push 4
mov byte [ebp - 4], bl
mov dword [esi + 0x1c0128], eax
call fcn.10049c7a
pop ecx
test eax, eax
je 0x10009674
mov dword [eax], vtable.CClockSA.0
jmp 0x10009676
mov eax, ebx
push 4
mov dword [esi + 0x1c013c], eax
call fcn.10049c7a
pop ecx
mov dword [ebp - 0x18], eax
mov byte [ebp - 4], 2
test eax, eax
je 0x10009698
mov ecx, eax
call fcn.10013811
jmp 0x1000969a
mov eax, ebx
push 0x14
mov byte [ebp - 4], bl
mov dword [esi + 0x1c0134], eax
call fcn.10049c7a
pop ecx
mov dword [ebp - 0x18], eax
mov byte [ebp - 4], 3
test eax, eax
je 0x100096c4
push 0xb6f028
mov ecx, eax
call fcn.10006258
jmp 0x100096c6
mov eax, ebx
push 0x104
mov byte [ebp - 4], bl
mov dword [esi + 0x1c0164], eax
call fcn.10049c7a
pop ecx
mov dword [ebp - 0x18], eax
mov byte [ebp - 4], 4
test eax, eax
je 0x100096ee
mov ecx, eax
call fcn.100078fe
jmp 0x100096f0
mov eax, ebx
push 0x84
mov byte [ebp - 4], bl
mov dword [esi + 0x1c0140], eax
call fcn.10049c7a
pop ecx
mov dword [ebp - 0x18], eax
mov byte [ebp - 4], 5
test eax, eax
je 0x10009718
mov ecx, eax
call fcn.10006b54
jmp 0x1000971a
mov eax, ebx
push 0x9b4
mov byte [ebp - 4], bl
mov dword [esi + 0x1c0144], eax
call fcn.10049c7a
pop ecx
mov dword [ebp - 0x18], eax
mov byte [ebp - 4], 6
test eax, eax
je 0x10009742
mov ecx, eax
call fcn.1000fac4
jmp 0x10009744
mov eax, ebx
push 0xc4
mov byte [ebp - 4], bl
mov dword [esi + 0x1c016c], eax
call fcn.10049c7a
pop ecx
mov dword [ebp - 0x18], eax
mov byte [ebp - 4], 7
test eax, eax
je 0x1000976c
mov ecx, eax
call fcn.1000891f
jmp 0x1000976e
mov eax, ebx
push 4
mov byte [ebp - 4], bl
mov dword [esi + 0x1c0174], eax
call fcn.10049c7a
pop ecx
test eax, eax
je 0x1000978b
mov dword [eax], vtable.CHudSA.0
jmp 0x1000978d
mov eax, ebx
push 0xf4
mov dword [esi + 0x1c0154], eax
call fcn.10049c7a
pop ecx
mov dword [ebp - 0x18], eax
mov byte [ebp - 4], 8
test eax, eax
je 0x100097b2
mov ecx, eax
call fcn.10008bf6
jmp 0x100097b4
mov eax, ebx
push 0x84
mov byte [ebp - 4], bl
mov dword [esi + 0x1c014c], eax
call fcn.10049c7a
pop ecx
mov dword [ebp - 0x18], eax
mov byte [ebp - 4], 9
test eax, eax
je 0x100097dc
mov ecx, eax
call fcn.10003de6
jmp 0x100097de
mov eax, ebx
push 0x13c
mov byte [ebp - 4], bl
mov dword [esi + 0x1c0178], eax
call fcn.10049c7a
mov dword [ebp - 0x18], eax
pop ecx
test eax, eax
je 0x10009807
push 0xb73458
mov ecx, eax
call fcn.10009e31
jmp 0x10009809
mov eax, ebx
push 0x7d0
mov dword [esi + 0x1c01a0], eax
call fcn.10049c7a
pop ecx
mov dword [ebp - 0x18], eax
mov byte [ebp - 4], 0xa
test eax, eax
je 0x1000982e
mov ecx, eax
call fcn.10019880
jmp 0x10009830
mov eax, ebx
push 4
mov byte [ebp - 4], bl
mov dword [esi + 0x1c01a4], eax
call fcn.10049c7a
pop ecx
test eax, eax
je 0x1000984d
mov dword [eax], vtable.CAERadioTrackManagerSA.0
jmp 0x1000984f
mov eax, ebx
push 4
mov dword [esi + 0x1c01a8], eax
call fcn.10049c7a
pop ecx
test eax, eax
je 0x10009869
mov dword [eax], vtable.CWeatherSA.0
jmp 0x1000986b
mov eax, ebx
push 8
mov dword [esi + 0x1c015c], eax
call fcn.10049c7a
mov dword [ebp - 0x18], eax
pop ecx
test eax, eax
je 0x1000988f
mov dword [eax], vtable.CMenuManagerSA.0
mov dword [eax + 4], 0xba6748
jmp 0x10009891
mov eax, ebx
push 4
mov dword [esi + 0x1c01b0], eax
call fcn.10049c7a
pop ecx
mov dword [ebp - 0x18], eax
mov byte [ebp - 4], 0xb
test eax, eax
je 0x100098b3
mov ecx, eax
call fcn.10019822
jmp 0x100098b5
mov eax, ebx
push 4
mov byte [ebp - 4], bl
mov dword [esi + 0x1c01b4], eax
call fcn.10049c7a
pop ecx
test eax, eax
je 0x100098d2
mov dword [eax], vtable.CStatsSA.0
jmp 0x100098d4
mov eax, ebx
push 4
mov dword [esi + 0x1c01b8], eax
call fcn.10049c7a
pop ecx
test eax, eax
je 0x100098ee
mov dword [eax], vtable.CFontSA.0
jmp 0x100098f0
mov eax, ebx
push 4
mov dword [esi + 0x1c01bc], eax
call fcn.10049c7a
pop ecx
test eax, eax
je 0x1000990a
mov dword [eax], vtable.CPathFindSA.0
jmp 0x1000990c
mov eax, ebx
push 1
mov dword [esi + 0x1c01c0], eax
call fcn.10049c7a
push 8
mov dword [esi + 0x1c01c4], eax
call fcn.10049c7a
pop ecx
pop ecx
mov dword [ebp - 0x18], eax
mov byte [ebp - 4], 0xc
test eax, eax
je 0x1000993c
mov ecx, eax
call fcn.100159b2
jmp 0x1000993e
mov eax, ebx
push 8
mov byte [ebp - 4], bl
mov dword [esi + 0x1c01c8], eax
call fcn.10049c7a
pop ecx
mov dword [ebp - 0x18], eax
mov byte [ebp - 4], 0xd
test eax, eax
je 0x10009963
mov ecx, eax
call fcn.10014bd8
jmp 0x10009965
mov eax, ebx
push 4
mov byte [ebp - 4], bl
mov dword [esi + 0x1c01d0], eax
call fcn.10049c7a
pop ecx
test eax, eax
je 0x10009982
mov dword [eax], vtable.CCarEnterExitSA.0
jmp 0x10009984
mov eax, ebx
push 4
mov dword [esi + 0x1c01d4], eax
call fcn.10049c7a
pop ecx
mov dword [ebp - 0x18], eax
mov byte [ebp - 4], 0xe
test eax, eax
je 0x100099a6
mov ecx, eax
call fcn.10007854
jmp 0x100099a8
mov eax, ebx
push 0x88
mov byte [ebp - 4], bl
mov dword [esi + 0x1c01d8], eax
call fcn.10049c7a
pop ecx
mov dword [ebp - 0x18], eax
mov byte [ebp - 4], 0xf
test eax, eax
je 0x100099d0
mov ecx, eax
call fcn.10009e80
jmp 0x100099d2
mov eax, ebx
push 4
mov byte [ebp - 4], bl
mov dword [esi + 0x1c0130], eax
call fcn.10049c7a
pop ecx
mov dword [ebp - 0x18], eax
mov byte [ebp - 4], 0x10
test eax, eax
je 0x100099f8
push edi
mov ecx, eax
call fcn.10013b85
jmp 0x100099fa
mov eax, ebx
push 4
mov byte [ebp - 4], bl
mov dword [esi + 0x1c017c], eax
call fcn.10049c7a
pop ecx
mov dword [ebp - 0x18], eax
mov byte [ebp - 4], 0x11
test eax, eax
je 0x10009a1f
mov ecx, eax
call fcn.1000b247
jmp 0x10009a21
mov eax, ebx
push 4
mov byte [ebp - 4], bl
mov dword [esi + 0x1c0180], eax
call fcn.10049c7a
pop ecx
test eax, eax
je 0x10009a3e
mov dword [eax], vtable.CEventListSA.0
jmp 0x10009a40
mov eax, ebx
push 0xd0
mov dword [esi + 0x1c0148], eax
call fcn.10049c7a
pop ecx
mov dword [ebp - 0x18], eax
mov byte [ebp - 4], 0x12
test eax, eax
je 0x10009a6a
push 0x96c048
mov ecx, eax
call fcn.1000adf6
jmp 0x10009a6c
mov eax, ebx
push 8
mov byte [ebp - 4], bl
mov dword [esi + 0x1c0150], eax
call fcn.10049c7a
pop ecx
mov dword [ebp - 0x18], eax
mov byte [ebp - 4], 0x13
test eax, eax
je 0x10009a97
push dword [esi + 0x1c01c8]
mov ecx, eax
call fcn.10018b33
jmp 0x10009a99
mov eax, ebx
push 0xe1c
mov byte [ebp - 4], bl
mov dword [esi + 0x1c01cc], eax
call fcn.10049c7a
pop ecx
mov dword [ebp - 0x18], eax
mov byte [ebp - 4], 0x14
test eax, eax
je 0x10009ac1
mov ecx, eax
call fcn.100042ee
jmp 0x10009ac3
mov eax, ebx
push 4
mov byte [ebp - 4], bl
mov dword [esi + 0x1c0184], eax
call fcn.10049c7a
pop ecx
test eax, eax
je 0x10009ae0
mov dword [eax], vtable.CStreamingSA.0
jmp 0x10009ae2
mov eax, ebx
push 4
mov dword [esi + 0x1c0188], eax
call fcn.10049c7a
pop ecx
test eax, eax
je 0x10009afc
mov dword [eax], vtable.CVisibilityPluginsSA.0
jmp 0x10009afe
mov eax, ebx
push 4
mov dword [esi + 0x1c018c], eax
call fcn.10049c7a
pop ecx
test eax, eax
je 0x10009b18
mov dword [eax], vtable.CKeyGenSA.0
jmp 0x10009b1a
mov eax, ebx
push 4
mov dword [esi + 0x1c0190], eax
call fcn.10049c7a
pop ecx
test eax, eax
je 0x10009b34
mov dword [eax], vtable.CRopesSA.0
jmp 0x10009b36
mov eax, ebx
push 8
mov dword [esi + 0x1c0194], eax
call fcn.10049c7a
mov dword [ebp - 0x18], eax
pop ecx
test eax, eax
je 0x10009b5a
mov dword [eax], vtable.CFxSA.0
mov dword [eax + 4], 0xa9ae00
jmp 0x10009b5c
mov eax, ebx
push 0xe0cc
mov dword [esi + 0x1c0198], eax
call fcn.10049c7a
pop ecx
mov dword [ebp - 0x18], eax
mov byte [ebp - 4], 0x15
test eax, eax
je 0x10009b81
mov ecx, eax
call fcn.1001cbe7
jmp 0x10009b83
mov eax, ebx
mov dword [esi + 0x1c019c], eax
mov edi, 0xc8bf48
lea eax, [esi + 4]
mov dword [ebp - 0x18], ebx
mov esi, dword [ebp - 0x18]
mov byte [ebp - 4], bl
mov ebx, 0xc8aab8
mov dword [ebp - 0x10], eax
push 0xc
call fcn.10049c7a
mov dword [ebp - 0x18], eax
pop ecx
test eax, eax
je 0x10009bc2
lea ecx, [esi + 0x16]
mov dword [eax], vtable.CWeaponInfoSA.0
mov dword [eax + 8], ebx
mov dword [eax + 4], ecx
jmp 0x10009bc4
xor eax, eax
mov ecx, dword [ebp - 0x10]
add ebx, 0x70
inc esi
mov dword [ecx], eax
add ecx, 4
mov dword [ebp - 0x10], ecx
cmp ebx, edi
jl 0x10009ba2
mov eax, dword [ebp - 0x14]
add eax, 0xc0
mov esi, eax
xor ebx, ebx
push 0xc
call fcn.10049c7a
mov dword [ebp - 0x18], eax
pop ecx
test eax, eax
je 0x10009c03
lea ecx, [ebx + 0x16]
mov dword [eax], vtable.CWeaponInfoSA.0
mov dword [eax + 8], edi
mov dword [eax + 4], ecx
jmp 0x10009c05
xor eax, eax
mov dword [esi], eax
inc ebx
add edi, 0x70
add esi, 4
cmp ebx, 0xb
jl 0x10009be3
cmp edi, 0xc8cdb8
jl 0x10009be1
push 0xc
call fcn.10049c7a
xor ebx, ebx
mov dword [ebp - 0x18], eax
pop ecx
test eax, eax
je 0x10009c3e
mov dword [eax], vtable.CPlayerInfoSA.0
mov dword [eax + 4], 0xb7cd98
mov dword [eax + 8], ebx
jmp 0x10009c40
mov eax, ebx
mov esi, dword [ebp - 0x14]
lea ecx, [ebp - 0x38]
push 9
mov dword [ebp - 0x38], ebx
push str.hovercars
mov dword [esi + 0x1c012c], eax
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x24], 0xf
mov byte [ebp - 0x38], bl
call fcn.10002daa
lea eax, [ebp - 0x38]
mov byte [ebp - 4], 0x16
push eax
lea eax, [ebp - 0x1c]
lea edi, [esi + 0x1c01e0]
push eax
mov ecx, edi
call fcn.10009487
mov byte [ebp - 4], bl
mov eax, dword [eax]
mov dword [eax + 0x28], 0x969152
mov eax, dword [ebp - 0x24]
cmp eax, 0x10
jb 0x10009cc4
mov ecx, dword [ebp - 0x38]
inc eax
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x18], ecx
cmp eax, 0x1000
jb 0x10009cbb
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x18]
push eax
call fcn.10002bd4
mov eax, dword [ebp - 0x10]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x18]
push eax
push ecx
call fcn.10049caa
pop ecx
pop ecx
push 7
mov dword [ebp - 0x38], ebx
lea ecx, [ebp - 0x38]
push str.aircars
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x24], 0xf
mov byte [ebp - 0x38], bl
call fcn.10002daa
lea eax, [ebp - 0x38]
mov byte [ebp - 4], 0x17
push eax
lea eax, [ebp - 0x1c]
mov ecx, edi
push eax
call fcn.10009487
mov byte [ebp - 4], bl
mov eax, dword [eax]
mov dword [eax + 0x28], 0x969160
mov eax, dword [ebp - 0x24]
cmp eax, 0x10
jb 0x10009d39
mov ecx, dword [ebp - 0x38]
inc eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x10], ecx
cmp eax, 0x1000
jb 0x10009d30
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.10002bd4
mov eax, dword [ebp - 0x18]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x10]
push eax
push ecx
call fcn.10049caa
pop ecx
pop ecx
push 0xa
mov dword [ebp - 0x38], ebx
lea ecx, [ebp - 0x38]
push str.extrabunny
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x24], 0xf
mov byte [ebp - 0x38], bl
call fcn.10002daa
lea eax, [ebp - 0x38]
mov byte [ebp - 4], 0x18
push eax
lea eax, [ebp - 0x1c]
mov ecx, edi
push eax
call fcn.10009487
mov byte [ebp - 4], bl
mov eax, dword [eax]
mov dword [eax + 0x28], 0x969161
mov eax, dword [ebp - 0x24]
cmp eax, 0x10
jb 0x10009dae
mov ecx, dword [ebp - 0x38]
inc eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x10], ecx
cmp eax, 0x1000
jb 0x10009da5
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.10002bd4
mov eax, dword [ebp - 0x18]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x10]
push eax
push ecx
call fcn.10049caa
pop ecx
pop ecx
push 9
mov dword [ebp - 0x38], ebx
lea ecx, [ebp - 0x38]
push str.extrajump
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x24], 0xf
mov byte [ebp - 0x38], bl
call fcn.10002daa
lea eax, [ebp - 0x38]
mov byte [ebp - 4], 0x19
push eax
lea eax, [ebp - 0x1c]
mov ecx, edi
push eax
call fcn.10009487
mov eax, dword [eax]
mov dword [eax + 0x28], 0x96916c
mov eax, dword [ebp - 0x24]
cmp eax, 0x10
jb 0x10009e20
mov ecx, dword [ebp - 0x38]
inc eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], ecx
cmp eax, 0x1000
jb 0x10009e17
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.10002bd4
mov eax, dword [ebp - 0x18]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x14]
push eax
push ecx
call fcn.10049caa
pop ecx
pop ecx
mov ecx, dword [ebp - 0xc]
mov eax, esi
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret