Function at 0x1000d509
Capabilities:
Allocate or change rwx memory

Disassembly:
mov eax, 0x10077283
call fcn.10050650
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.1000fd50
add edi, 0x1c
sub ebx, 1
jne 0x1000d52f
lea ebx, [esi + 0x1c01e0]
mov dword [ebp - 0x18], ebx
and dword [ebx], 0
and dword [ebx + 4], 0
push ebx
call fcn.1000d327
pop ecx
mov dword [ebx], eax
lea eax, [ebp - 0x20]
mov dword [0x100da960], 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.1000e212
mov edi, eax
cmp edi, 5
je 0x1000d5aa
cmp edi, 0xb
je 0x1000d5a3
cmp edi, 0xf
je 0x1000d59c
cmp edi, 0x14
jne 0x1000d5af
call fcn.10004382
jmp 0x1000d5af
call fcn.100112ac
jmp 0x1000d5af
call fcn.10011279
jmp 0x1000d5af
call fcn.10011246
mov eax, ebx
lea ecx, [esi + 0x14c]
mov dword [ecx], eax
inc eax
lea ecx, [ecx + 0x1c]
cmp eax, 0xffff
jl 0x1000d5b7
push 4
call fcn.1005060c
pop ecx
test eax, eax
je 0x1000d5d8
mov dword [eax], vtable.CAudioSA.0
jmp 0x1000d5da
mov eax, ebx
push 4
mov dword [esi + 0x1c01ac], eax
call fcn.1005060c
pop ecx
test eax, eax
je 0x1000d5f4
mov dword [eax], vtable.CWorldSA.0
jmp 0x1000d5f6
mov eax, ebx
push 0x13888
mov dword [esi + 0x1c0160], eax
call fcn.1005060c
pop ecx
mov dword [ebp - 0x18], eax
mov byte [ebp - 4], 1
test eax, eax
je 0x1000d61b
mov ecx, eax
call fcn.1001508c
jmp 0x1000d61d
mov eax, ebx
push 4
mov byte [ebp - 4], bl
mov dword [esi + 0x1c0128], eax
call fcn.1005060c
pop ecx
test eax, eax
je 0x1000d63a
mov dword [eax], vtable.CClockSA.0
jmp 0x1000d63c
mov eax, ebx
push 4
mov dword [esi + 0x1c013c], eax
call fcn.1005060c
pop ecx
mov dword [ebp - 0x18], eax
mov byte [ebp - 4], 2
test eax, eax
je 0x1000d65e
mov ecx, eax
call fcn.1001777e
jmp 0x1000d660
mov eax, ebx
push 0x14
mov byte [ebp - 4], bl
mov dword [esi + 0x1c0134], eax
call fcn.1005060c
pop ecx
mov dword [ebp - 0x18], eax
mov byte [ebp - 4], 3
test eax, eax
je 0x1000d68a
push 0xb6f028
mov ecx, eax
call fcn.1000a254
jmp 0x1000d68c
mov eax, ebx
push 0x104
mov byte [ebp - 4], bl
mov dword [esi + 0x1c0164], eax
call fcn.1005060c
pop ecx
mov dword [ebp - 0x18], eax
mov byte [ebp - 4], 4
test eax, eax
je 0x1000d6b4
mov ecx, eax
call fcn.1000b8f7
jmp 0x1000d6b6
mov eax, ebx
push 0x84
mov byte [ebp - 4], bl
mov dword [esi + 0x1c0140], eax
call fcn.1005060c
pop ecx
mov dword [ebp - 0x18], eax
mov byte [ebp - 4], 5
test eax, eax
je 0x1000d6de
mov ecx, eax
call fcn.1000ab4d
jmp 0x1000d6e0
mov eax, ebx
push 0x9b4
mov byte [ebp - 4], bl
mov dword [esi + 0x1c0144], eax
call fcn.1005060c
pop ecx
mov dword [ebp - 0x18], eax
mov byte [ebp - 4], 6
test eax, eax
je 0x1000d708
mov ecx, eax
call fcn.10013a4b
jmp 0x1000d70a
mov eax, ebx
push 0xc4
mov byte [ebp - 4], bl
mov dword [esi + 0x1c016c], eax
call fcn.1005060c
pop ecx
mov dword [ebp - 0x18], eax
mov byte [ebp - 4], 7
test eax, eax
je 0x1000d732
mov ecx, eax
call fcn.1000c918
jmp 0x1000d734
mov eax, ebx
push 4
mov byte [ebp - 4], bl
mov dword [esi + 0x1c0174], eax
call fcn.1005060c
pop ecx
test eax, eax
je 0x1000d751
mov dword [eax], vtable.CHudSA.0
jmp 0x1000d753
mov eax, ebx
push 0xf4
mov dword [esi + 0x1c0154], eax
call fcn.1005060c
pop ecx
mov dword [ebp - 0x18], eax
mov byte [ebp - 4], 8
test eax, eax
je 0x1000d778
mov ecx, eax
call fcn.1000cbec
jmp 0x1000d77a
mov eax, ebx
push 0x84
mov byte [ebp - 4], bl
mov dword [esi + 0x1c014c], eax
call fcn.1005060c
pop ecx
mov dword [ebp - 0x18], eax
mov byte [ebp - 4], 9
test eax, eax
je 0x1000d7a2
mov ecx, eax
call fcn.10007de2
jmp 0x1000d7a4
mov eax, ebx
push 0x13c
mov byte [ebp - 4], bl
mov dword [esi + 0x1c0178], eax
call fcn.1005060c
mov dword [ebp - 0x18], eax
pop ecx
test eax, eax
je 0x1000d7cd
push 0xb73458
mov ecx, eax
call fcn.1000ddf7
jmp 0x1000d7cf
mov eax, ebx
push 0x7d0
mov dword [esi + 0x1c01a0], eax
call fcn.1005060c
pop ecx
mov dword [ebp - 0x18], eax
mov byte [ebp - 4], 0xa
test eax, eax
je 0x1000d7f4
mov ecx, eax
call fcn.1001d7ed
jmp 0x1000d7f6
mov eax, ebx
push 4
mov byte [ebp - 4], bl
mov dword [esi + 0x1c01a4], eax
call fcn.1005060c
pop ecx
test eax, eax
je 0x1000d813
mov dword [eax], vtable.CAERadioTrackManagerSA.0
jmp 0x1000d815
mov eax, ebx
push 4
mov dword [esi + 0x1c01a8], eax
call fcn.1005060c
pop ecx
test eax, eax
je 0x1000d82f
mov dword [eax], vtable.CWeatherSA.0
jmp 0x1000d831
mov eax, ebx
push 8
mov dword [esi + 0x1c015c], eax
call fcn.1005060c
mov dword [ebp - 0x18], eax
pop ecx
test eax, eax
je 0x1000d855
mov dword [eax], vtable.CMenuManagerSA.0
mov dword [eax + 4], 0xba6748
jmp 0x1000d857
mov eax, ebx
push 4
mov dword [esi + 0x1c01b0], eax
call fcn.1005060c
pop ecx
mov dword [ebp - 0x18], eax
mov byte [ebp - 4], 0xb
test eax, eax
je 0x1000d879
mov ecx, eax
call fcn.1001d78f
jmp 0x1000d87b
mov eax, ebx
push 4
mov byte [ebp - 4], bl
mov dword [esi + 0x1c01b4], eax
call fcn.1005060c
pop ecx
test eax, eax
je 0x1000d898
mov dword [eax], vtable.CStatsSA.0
jmp 0x1000d89a
mov eax, ebx
push 4
mov dword [esi + 0x1c01b8], eax
call fcn.1005060c
pop ecx
test eax, eax
je 0x1000d8b4
mov dword [eax], vtable.CFontSA.0
jmp 0x1000d8b6
mov eax, ebx
push 4
mov dword [esi + 0x1c01bc], eax
call fcn.1005060c
pop ecx
test eax, eax
je 0x1000d8d0
mov dword [eax], vtable.CPathFindSA.0
jmp 0x1000d8d2
mov eax, ebx
push 1
mov dword [esi + 0x1c01c0], eax
call fcn.1005060c
push 8
mov dword [esi + 0x1c01c4], eax
call fcn.1005060c
pop ecx
pop ecx
mov dword [ebp - 0x18], eax
mov byte [ebp - 4], 0xc
test eax, eax
je 0x1000d902
mov ecx, eax
call fcn.1001991f
jmp 0x1000d904
mov eax, ebx
push 8
mov byte [ebp - 4], bl
mov dword [esi + 0x1c01c8], eax
call fcn.1005060c
pop ecx
mov dword [ebp - 0x18], eax
mov byte [ebp - 4], 0xd
test eax, eax
je 0x1000d929
mov ecx, eax
call fcn.10018b45
jmp 0x1000d92b
mov eax, ebx
push 4
mov byte [ebp - 4], bl
mov dword [esi + 0x1c01d0], eax
call fcn.1005060c
pop ecx
test eax, eax
je 0x1000d948
mov dword [eax], vtable.CCarEnterExitSA.0
jmp 0x1000d94a
mov eax, ebx
push 4
mov dword [esi + 0x1c01d4], eax
call fcn.1005060c
pop ecx
mov dword [ebp - 0x18], eax
mov byte [ebp - 4], 0xe
test eax, eax
je 0x1000d96c
mov ecx, eax
call fcn.1000b84d
jmp 0x1000d96e
mov eax, ebx
push 0x88
mov byte [ebp - 4], bl
mov dword [esi + 0x1c01d8], eax
call fcn.1005060c
pop ecx
mov dword [ebp - 0x18], eax
mov byte [ebp - 4], 0xf
test eax, eax
je 0x1000d996
mov ecx, eax
call fcn.1000de46
jmp 0x1000d998
mov eax, ebx
push 4
mov byte [ebp - 4], bl
mov dword [esi + 0x1c0130], eax
call fcn.1005060c
pop ecx
mov dword [ebp - 0x18], eax
mov byte [ebp - 4], 0x10
test eax, eax
je 0x1000d9be
push edi
mov ecx, eax
call fcn.10017af2
jmp 0x1000d9c0
mov eax, ebx
push 4
mov byte [ebp - 4], bl
mov dword [esi + 0x1c017c], eax
call fcn.1005060c
pop ecx
mov dword [ebp - 0x18], eax
mov byte [ebp - 4], 0x11
test eax, eax
je 0x1000d9e5
mov ecx, eax
call fcn.1000f1df
jmp 0x1000d9e7
mov eax, ebx
push 4
mov byte [ebp - 4], bl
mov dword [esi + 0x1c0180], eax
call fcn.1005060c
pop ecx
test eax, eax
je 0x1000da04
mov dword [eax], vtable.CEventListSA.0
jmp 0x1000da06
mov eax, ebx
push 0xd0
mov dword [esi + 0x1c0148], eax
call fcn.1005060c
pop ecx
mov dword [ebp - 0x18], eax
mov byte [ebp - 4], 0x12
test eax, eax
je 0x1000da30
push 0x96c048
mov ecx, eax
call fcn.1000ed91
jmp 0x1000da32
mov eax, ebx
push 8
mov byte [ebp - 4], bl
mov dword [esi + 0x1c0150], eax
call fcn.1005060c
pop ecx
mov dword [ebp - 0x18], eax
mov byte [ebp - 4], 0x13
test eax, eax
je 0x1000da5d
push dword [esi + 0x1c01c8]
mov ecx, eax
call fcn.1001caa0
jmp 0x1000da5f
mov eax, ebx
push 0xe1c
mov byte [ebp - 4], bl
mov dword [esi + 0x1c01cc], eax
call fcn.1005060c
pop ecx
mov dword [ebp - 0x18], eax
mov byte [ebp - 4], 0x14
test eax, eax
je 0x1000da87
mov ecx, eax
call fcn.100082ea
jmp 0x1000da89
mov eax, ebx
push 4
mov byte [ebp - 4], bl
mov dword [esi + 0x1c0184], eax
call fcn.1005060c
pop ecx
test eax, eax
je 0x1000daa6
mov dword [eax], vtable.CStreamingSA.0
jmp 0x1000daa8
mov eax, ebx
push 4
mov dword [esi + 0x1c0188], eax
call fcn.1005060c
pop ecx
test eax, eax
je 0x1000dac2
mov dword [eax], vtable.CVisibilityPluginsSA.0
jmp 0x1000dac4
mov eax, ebx
push 4
mov dword [esi + 0x1c018c], eax
call fcn.1005060c
pop ecx
test eax, eax
je 0x1000dade
mov dword [eax], vtable.CKeyGenSA.0
jmp 0x1000dae0
mov eax, ebx
push 4
mov dword [esi + 0x1c0190], eax
call fcn.1005060c
pop ecx
test eax, eax
je 0x1000dafa
mov dword [eax], vtable.CRopesSA.0
jmp 0x1000dafc
mov eax, ebx
push 8
mov dword [esi + 0x1c0194], eax
call fcn.1005060c
mov dword [ebp - 0x18], eax
pop ecx
test eax, eax
je 0x1000db20
mov dword [eax], vtable.CFxSA.0
mov dword [eax + 4], 0xa9ae00
jmp 0x1000db22
mov eax, ebx
push 0xe0cc
mov dword [esi + 0x1c0198], eax
call fcn.1005060c
pop ecx
mov dword [ebp - 0x18], eax
mov byte [ebp - 4], 0x15
test eax, eax
je 0x1000db47
mov ecx, eax
call fcn.10020b54
jmp 0x1000db49
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.1005060c
mov dword [ebp - 0x18], eax
pop ecx
test eax, eax
je 0x1000db88
lea ecx, [esi + 0x16]
mov dword [eax], vtable.CWeaponInfoSA.0
mov dword [eax + 8], ebx
mov dword [eax + 4], ecx
jmp 0x1000db8a
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 0x1000db68
mov eax, dword [ebp - 0x14]
add eax, 0xc0
mov esi, eax
xor ebx, ebx
push 0xc
call fcn.1005060c
mov dword [ebp - 0x18], eax
pop ecx
test eax, eax
je 0x1000dbc9
lea ecx, [ebx + 0x16]
mov dword [eax], vtable.CWeaponInfoSA.0
mov dword [eax + 8], edi
mov dword [eax + 4], ecx
jmp 0x1000dbcb
xor eax, eax
mov dword [esi], eax
inc ebx
add edi, 0x70
add esi, 4
cmp ebx, 0xb
jl 0x1000dba9
cmp edi, 0xc8cdb8
jl 0x1000dba7
push 0xc
call fcn.1005060c
xor ebx, ebx
mov dword [ebp - 0x18], eax
pop ecx
test eax, eax
je 0x1000dc04
mov dword [eax], vtable.CPlayerInfoSA.0
mov dword [eax + 4], 0xb7cd98
mov dword [eax + 8], ebx
jmp 0x1000dc06
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.10004a6e
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.1000d47d
mov byte [ebp - 4], bl
mov eax, dword [eax]
mov dword [eax + 0x28], 0x969152
mov eax, dword [ebp - 0x24]
cmp eax, 0x10
jb 0x1000dc8a
mov ecx, dword [ebp - 0x38]
inc eax
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x18], ecx
cmp eax, 0x1000
jb 0x1000dc81
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x18]
push eax
call fcn.10003a85
mov eax, dword [ebp - 0x10]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x18]
push eax
push ecx
call fcn.1005063c
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.10004a6e
lea eax, [ebp - 0x38]
mov byte [ebp - 4], 0x17
push eax
lea eax, [ebp - 0x1c]
mov ecx, edi
push eax
call fcn.1000d47d
mov byte [ebp - 4], bl
mov eax, dword [eax]
mov dword [eax + 0x28], 0x969160
mov eax, dword [ebp - 0x24]
cmp eax, 0x10
jb 0x1000dcff
mov ecx, dword [ebp - 0x38]
inc eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x10], ecx
cmp eax, 0x1000
jb 0x1000dcf6
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.10003a85
mov eax, dword [ebp - 0x18]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x10]
push eax
push ecx
call fcn.1005063c
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.10004a6e
lea eax, [ebp - 0x38]
mov byte [ebp - 4], 0x18
push eax
lea eax, [ebp - 0x1c]
mov ecx, edi
push eax
call fcn.1000d47d
mov byte [ebp - 4], bl
mov eax, dword [eax]
mov dword [eax + 0x28], 0x969161
mov eax, dword [ebp - 0x24]
cmp eax, 0x10
jb 0x1000dd74
mov ecx, dword [ebp - 0x38]
inc eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x10], ecx
cmp eax, 0x1000
jb 0x1000dd6b
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.10003a85
mov eax, dword [ebp - 0x18]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x10]
push eax
push ecx
call fcn.1005063c
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.10004a6e
lea eax, [ebp - 0x38]
mov byte [ebp - 4], 0x19
push eax
lea eax, [ebp - 0x1c]
mov ecx, edi
push eax
call fcn.1000d47d
mov eax, dword [eax]
mov dword [eax + 0x28], 0x96916c
mov eax, dword [ebp - 0x24]
cmp eax, 0x10
jb 0x1000dde6
mov ecx, dword [ebp - 0x38]
inc eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], ecx
cmp eax, 0x1000
jb 0x1000dddd
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.10003a85
mov eax, dword [ebp - 0x18]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x14]
push eax
push ecx
call fcn.1005063c
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