Function at 0x10006520
Capabilities:
Allocate or change rwx memory
Execute shellcode via indirect call
Print debug messages

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x88
mov eax, dword [0x1001d440]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
push ebx
push esi
push edi
sub eax, 0
je 0x100067d9
sub eax, 1
jne 0x10006b79
push ecx
call dword [sym.imp.KERNEL32.dll_DisableThreadLibraryCalls]
mov eax, dword fs:[0x2c]
mov ecx, dword [0x1001e09c]
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x1001e058]
cmp eax, dword [ecx + 4]
jg 0x10006b91
mov eax, dword [0x1001e054]
mov ebx, str.528D44240C50
mov dword [ebp - 0x88], eax
lea eax, [ebp - 0x3c]
mov dword [ebp - 0x3c], str.528D44240C50
mov dword [ebp - 0x38], str.0.3DL_R1
mov dword [ebp - 0x34], str.C07406889E3402000088
mov dword [ebp - 0x30], str.0.3.7_R5
mov dword [ebp - 0x2c], str.0000889E33020000FF153852
mov dword [ebp - 0x28], str.0.3.7_R4
mov dword [ebp - 0x24], str.E86D9A0A0083C4
mov dword [ebp - 0x20], str.0.3.7_R3_1
mov dword [ebp - 0x1c], str.E82D9A0A0083
mov dword [ebp - 0x18], str.0.3.7_R3
mov dword [ebp - 0x14], str.F8036A004050518D4C240CE862030100
mov dword [ebp - 0x10], str.0.3.7_R2
mov dword [ebp - 0xc], str.F8036A004050518D4C240CE882020100
mov dword [ebp - 8], str.0.3.7
mov dword [ebp - 0x84], eax
mov edi, ebx
lea ecx, [edi + 1]
mov al, byte [edi]
inc edi
test al, al
jne 0x100065f5
xor eax, eax
sub edi, ecx
mov word [ebp - 0x80], ax
mov byte [ebp - 0x7e], al
test edi, edi
jle 0x10006662
mov esi, 1
cmp esi, edi
jge 0x1000674a
movzx eax, byte [ebx + esi - 1]
mov byte [ebp - 0x80], al
movzx eax, byte [esi + ebx]
push 0x10
mov byte [ebp - 0x7f], al
lea eax, [ebp - 0x80]
push 0
push eax
call fcn.1000af5f
add esp, 0xc
lea ecx, [esi - 1]
mov ecx, ecx
test ecx, ecx
jns 0x10006643
add ecx, 1
sar ecx, 1
mov edx, dword [ebp - 0x88]
cmp byte [ecx + edx + 0xbabe], al
jne 0x1000674a
add esi, 2
lea eax, [esi - 1]
cmp eax, edi
jl 0x10006610
mov eax, dword [ebp - 0x84]
mov ecx, 0x1001d1e0
push dword [eax + 4]
call fcn.10003920
push 0x1001d1e0
lea ecx, [ebp - 0x54]
call fcn.10001cb0
mov ecx, str.null
call fcn.10003480
movups xmm0, xmmword [ebp - 0x54]
lea ecx, [ebp - 0x54]
mov byte [ebp - 0x54], 0
movups xmmword [str.null], xmm0
movq xmm0, qword [ebp - 0x44]
movq qword [0x1001d1d8], xmm0
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x40], 0xf
call fcn.10003480
cmp dword [0x1001d1dc], 0xf
mov eax, str.null
cmova eax, dword [str.null]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
cmp dword [0x1001d1dc], 0xf
mov edx, str.null
mov esi, dword [0x1001d1d8]
cmova edx, dword [str.null]
cmp esi, 4
jne 0x10006775
mov ecx, 0x100157c4
sub esi, esi
jb 0x10006711
nop
mov eax, dword [edx]
cmp eax, dword [ecx]
jne 0x10006716
add edx, 4
add ecx, 4
sub esi, 4
jae 0x10006700
cmp esi, 0xfffffffc
je 0x1000676b
mov al, byte [edx]
cmp al, byte [ecx]
jne 0x10006743
cmp esi, 0xfffffffd
je 0x1000676b
mov al, byte [edx + 1]
cmp al, byte [ecx + 1]
jne 0x10006743
cmp esi, 0xfffffffe
je 0x1000676b
mov al, byte [edx + 2]
cmp al, byte [ecx + 2]
jne 0x10006743
cmp esi, 0xffffffff
je 0x1000676b
mov al, byte [edx + 3]
cmp al, byte [ecx + 3]
je 0x1000676b
sbb eax, eax
or eax, 1
jmp 0x1000676d
mov eax, dword [ebp - 0x84]
lea ecx, [ebp - 4]
add eax, 8
mov dword [ebp - 0x84], eax
cmp eax, ecx
je 0x10006675
mov ebx, dword [eax]
jmp 0x100065f0
xor eax, eax
test eax, eax
je 0x10006b79
push dword [0x1001e054]
mov ecx, 0x1001e051
call fcn.10001240
push dword [0x1001e054]
mov ecx, 0x1001e051
call fcn.100013f0
sub esp, 0x28
mov ecx, 0x1001e044
mov eax, esp
mov dword [eax], vtable.std::_Func_impl_no_alloc_void____cdecl___void___void___.0
mov dword [eax + 4], 0x10003c40
mov dword [eax + 0x24], eax
lea eax, [ebp - 0x7c]
push eax
call fcn.10004aa0
mov ecx, dword [ebp - 0x58]
test ecx, ecx
je 0x10006b79
mov edx, dword [ecx]
lea eax, [ebp - 0x7c]
cmp ecx, eax
setne al
movzx eax, al
push eax
call dword [edx + 0x10]
jmp 0x10006b79
cmp dword [0x1001d1dc], 0xf
mov eax, str.null
mov ebx, dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
cmova eax, dword [str.null]
push eax
call ebx
cmp dword [0x1001d1dc], 0xf
mov ecx, str.null
mov esi, dword [0x1001d1d8]
cmova ecx, dword [str.null]
cmp esi, 4
jne 0x10006874
mov edx, 0x100157c4
sub esi, esi
jb 0x10006831
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x10006836
add ecx, 4
add edx, 4
sub esi, 4
jae 0x10006820
cmp esi, 0xfffffffc
je 0x1000686a
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x10006863
cmp esi, 0xfffffffd
je 0x1000686a
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x10006863
cmp esi, 0xfffffffe
je 0x1000686a
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x10006863
cmp esi, 0xffffffff
je 0x1000686a
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x1000686a
sbb eax, eax
or eax, 1
jmp 0x1000686c
xor eax, eax
test eax, eax
je 0x10006b79
mov eax, dword [0x1001e054]
push str.OpenSaa_patch:_Unload.
mov dword [ebp - 0x84], eax
call ebx
mov ebx, dword [0x1001d1dc]
mov ecx, str.null
mov eax, dword [str.null]
cmp ebx, 0xf
mov esi, dword [0x1001d1d8]
cmova ecx, eax
cmp esi, 4
jne 0x10006911
mov edi, esi
mov edx, 0x100157c4
sub edi, esi
jb 0x100068c3
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100068c8
add ecx, 4
add edx, 4
sub edi, 4
jae 0x100068b2
cmp edi, 0xfffffffc
je 0x100068fc
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x100068f5
cmp edi, 0xfffffffd
je 0x100068fc
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x100068f5
cmp edi, 0xfffffffe
je 0x100068fc
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x100068f5
cmp edi, 0xffffffff
je 0x100068fc
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x100068fc
sbb eax, eax
or eax, 1
jmp 0x100068fe
xor eax, eax
test eax, eax
jne 0x1000690c
push str.OpenSaa:_Unable_to_detect_SAMP_version__the_game_will_crash.
jmp 0x10006b72
mov eax, dword [str.null]
cmp ebx, 0xf
mov ecx, str.null
cmova ecx, eax
cmp esi, 8
jne 0x100069bb
mov edi, esi
mov edx, str.0.3DL_R1
sub edi, 4
jb 0x10006942
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x10006947
add ecx, 4
add edx, 4
sub edi, 4
jae 0x10006931
cmp edi, 0xfffffffc
je 0x1000697b
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x10006974
cmp edi, 0xfffffffd
je 0x1000697b
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x10006974
cmp edi, 0xfffffffe
je 0x1000697b
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x10006974
cmp edi, 0xffffffff
je 0x1000697b
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x1000697b
sbb eax, eax
or eax, 1
jmp 0x1000697d
xor eax, eax
test eax, eax
jne 0x100069b6
mov edi, dword [ebp - 0x84]
lea eax, [ebp - 0x88]
mov esi, dword [sym.imp.KERNEL32.dll_VirtualProtect]
add edi, 0x625fc
push eax
push 0x40
push 1
push edi
call esi
push 0
push dword [ebp - 0x88]
mov byte [edi], 0x74
push 1
push edi
call esi
jmp 0x10006b79
mov eax, dword [str.null]
cmp ebx, 0xf
mov ecx, str.null
cmova ecx, eax
cmp esi, 0xa
jne 0x10006a2c
mov edi, esi
mov edx, str.0.3.7_R3_1
sub edi, 4
jb 0x100069e8
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100069ed
add ecx, 4
add edx, 4
sub edi, 4
jae 0x100069d7
cmp edi, 0xfffffffc
je 0x10006a21
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x10006a1a
cmp edi, 0xfffffffd
je 0x10006a21
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x10006a1a
cmp edi, 0xfffffffe
je 0x10006a21
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x10006a1a
cmp edi, 0xffffffff
je 0x10006a21
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x10006a21
sbb eax, eax
or eax, 1
jmp 0x10006a23
xor eax, eax
test eax, eax
je 0x10006aa0
mov eax, dword [str.null]
cmp ebx, 0xf
mov ecx, str.null
cmova ecx, eax
cmp esi, 8
jne 0x10006ada
mov edi, esi
mov edx, str.0.3.7_R3
sub edi, 4
jb 0x10006a61
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x10006a66
add ecx, 4
add edx, 4
sub edi, 4
jae 0x10006a50
cmp edi, 0xfffffffc
je 0x10006a9a
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x10006a93
cmp edi, 0xfffffffd
je 0x10006a9a
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x10006a93
cmp edi, 0xfffffffe
je 0x10006a9a
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x10006a93
cmp edi, 0xffffffff
je 0x10006a9a
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x10006a9a
sbb eax, eax
or eax, 1
jmp 0x10006a9c
xor eax, eax
test eax, eax
jne 0x10006ad5
mov edi, dword [ebp - 0x84]
lea eax, [ebp - 0x88]
mov esi, dword [sym.imp.KERNEL32.dll_VirtualProtect]
add edi, 0x6240c
push eax
push 0x40
push 1
push edi
call esi
push 0
push dword [ebp - 0x88]
mov byte [edi], 0x74
push 1
push edi
call esi
jmp 0x10006b79
mov eax, dword [str.null]
cmp ebx, 0xf
mov ecx, str.null
cmova ecx, eax
cmp esi, 8
jne 0x10006b6d
mov edx, str.0.3.7_R1
sub esi, 4
jb 0x10006b09
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x10006b0e
add ecx, 4
add edx, 4
sub esi, 4
jae 0x10006af8
cmp esi, 0xfffffffc
je 0x10006b42
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x10006b3b
cmp esi, 0xfffffffd
je 0x10006b42
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x10006b3b
cmp esi, 0xfffffffe
je 0x10006b42
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x10006b3b
cmp esi, 0xffffffff
je 0x10006b42
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x10006b42
sbb eax, eax
or eax, 1
jmp 0x10006b44
xor eax, eax
test eax, eax
jne 0x10006b6d
mov eax, 0x74
mov word [ebp - 0x80], ax
lea eax, [ebp - 0x80]
push 1
push eax
mov eax, dword [ebp - 0x84]
add eax, 0x5f06c
push eax
call fcn.10001c70
add esp, 0xc
jmp 0x10006b79
push str.OpenSaa:_Youre_not_using_a_valid_version_of_samp__valid_version_are:_R1__R3__R3_1_and_0.3DL.
mov eax, dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
call eax
mov ecx, dword [ebp - 4]
mov eax, 1
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.100079c1
mov esp, ebp
pop ebp
ret 0xc
push 0x1001e058
call fcn.1000795d
add esp, 4
cmp dword [0x1001e058], 0xffffffff
jne 0x10006575
push str.samp.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push 0x1001e058
mov dword [0x1001e054], eax
call fcn.1000790c
add esp, 4
jmp 0x10006575