Function at 0x10001650
Capabilities:
Allocate or change rwx memory
Execute shellcode via indirect call

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10100e5d
mov eax, dword fs:[0]
push eax
sub esp, 0xc0
mov eax, dword [0x10167080]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ecx, 0x1021ac18
call fcn.10003690
mov ax, word [0x1013b8a4]
xorps xmm0, xmm0
movups xmmword [ebp - 0x74], xmm0
mov word [ebp - 0x74], ax
mov al, byte [0x1013b8a6]
mov dword [0x1021abf0], 0x1010101
mov dword [0x1021abf4], 0x1010101
mov word [0x1021abf8], 0x101
mov byte [0x1021abfa], 1
mov dword [0x1021abfc], 0x1010101
mov dword [0x1021ac00], 0x1010101
mov dword [0x1021ac04], 0x1010101
mov dword [0x1021ac08], 0x1010101
mov byte [0x1021ac0c], 1
mov dword [ebp - 0x64], 3
mov dword [ebp - 0x60], 0xf
mov byte [ebp - 0x72], al
mov byte [ebp - 0x71], 0
lea ecx, [ebp - 0x74]
mov dword [ebp - 4], 0
call fcn.10038990
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x60]
mov byte [ebp - 0xc9], al
cmp ecx, 0xf
jbe 0x1000175b
mov edx, dword [ebp - 0x74]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1000174b
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10003065
push ecx
push edx
call fcn.100d91c2
mov al, byte [ebp - 0xc9]
add esp, 8
cmp byte [0x1021abf0], 0
mov byte [0x1021ac0d], al
mov byte [0x1021ac0e], al
mov byte [0x1021ac0f], al
mov byte [0x1021ac10], al
mov byte [0x1021ac11], al
je 0x1000180a
push 4
call fcn.100d91f3
add esp, 4
mov dword [ebp - 0xc4], eax
mov ecx, eax
mov dword [ebp - 4], 1
call fcn.100044f0
mov esi, eax
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0xc4], esi
test esi, esi
je 0x1000180a
mov edx, dword [esi]
mov ecx, esi
mov edx, dword [edx + 4]
call edx
push eax
push str.Component_registered:__s_n
call fcn.10069130
mov edx, eax
add esp, 8
lea edi, [edx + 1]
nop
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x100017d0
sub edx, edi
mov ecx, 0x10167f8c
push edx
push eax
call fcn.10003330
mov eax, dword [0x1021b160]
cmp eax, dword [0x1021b164]
je 0x100017fd
mov dword [eax], esi
add dword [0x1021b160], 4
jmp 0x1000180a
lea ecx, [ebp - 0xc4]
push ecx
push eax
call fcn.10003170
cmp byte [0x1021abf1], 0
je 0x1000198c
push 4
call fcn.100d91f3
mov esi, eax
add esp, 4
mov dword [ebp - 0xc4], esi
mov dword [ebp - 4], 2
lea ecx, [ebp - 0xc0]
mov dword [esi], vtable.components::_client.0
call fcn.10004700
cmp byte [ebp - 0xc0], 0
jne 0x1000187c
mov byte [ebp - 0xc0], 1
mov byte [ebp - 0xab], 1
mov dword [ebp - 0xbc], 0x4696d0
mov dword [ebp - 0xb8], 0x100047d0
mov eax, dword [0x4696d1]
add eax, 0x4696d5
mov dword [ebp - 0xb4], eax
sub esp, 8
mov byte [ebp - 4], 3
lea ecx, [ebp - 0xc0]
call fcn.10068a70
cmp byte [eax + 1], 0
je 0x10001898
mov byte [eax + 1], 0
mov byte [ebp - 4], 4
cmp byte [ebp - 0xc0], 0
je 0x100018b1
push ecx
lea ecx, [ebp - 0xc0]
call fcn.10068b40
lea eax, [ebp - 0xa4]
push eax
call fcn.1000ab50
add esp, 4
lea ecx, [ebp - 0x5c]
call fcn.10004700
cmp byte [ebp - 0x5c], 0
jne 0x100018f1
mov byte [ebp - 0x5c], 1
mov byte [ebp - 0x47], 1
mov dword [ebp - 0x58], 0x46c9f6
mov dword [ebp - 0x54], 0x10004810
mov eax, dword [0x46c9f7]
add eax, 0x46c9fb
mov dword [ebp - 0x50], eax
sub esp, 8
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x5c]
call fcn.10068a70
cmp byte [eax + 1], 0
je 0x1000190a
mov byte [eax + 1], 0
mov byte [ebp - 4], 6
cmp byte [ebp - 0x5c], 0
je 0x1000191d
push ecx
lea ecx, [ebp - 0x5c]
call fcn.10068b40
lea eax, [ebp - 0x40]
push eax
call fcn.1000ab50
mov dword [ebp - 4], 0xffffffff
add esp, 4
mov eax, dword [esi]
mov ecx, esi
mov dword [ebp - 0xc4], esi
mov eax, dword [eax + 4]
call eax
push eax
push str.Component_registered:__s_n
call fcn.10069130
mov edx, eax
add esp, 8
lea edi, [edx + 1]
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x10001952
sub edx, edi
mov ecx, 0x10167f8c
push edx
push eax
call fcn.10003330
mov eax, dword [0x1021b160]
cmp eax, dword [0x1021b164]
je 0x1000197f
mov dword [eax], esi
add dword [0x1021b160], 4
jmp 0x1000198c
lea ecx, [ebp - 0xc4]
push ecx
push eax
call fcn.10003170
cmp byte [0x1021abf2], 0
je 0x10001a20
push 4
call fcn.100d91f3
add esp, 4
mov dword [ebp - 0xc4], eax
mov ecx, eax
mov dword [ebp - 4], 7
call fcn.10004f10
mov esi, eax
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0xc4], esi
test esi, esi
je 0x10001a20
mov edx, dword [esi]
mov ecx, esi
mov edx, dword [edx + 4]
call edx
push eax
push str.Component_registered:__s_n
call fcn.10069130
mov edx, eax
add esp, 8
lea edi, [edx + 1]
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x100019e6
sub edx, edi
mov ecx, 0x10167f8c
push edx
push eax
call fcn.10003330
mov eax, dword [0x1021b160]
cmp eax, dword [0x1021b164]
je 0x10001a13
mov dword [eax], esi
add dword [0x1021b160], 4
jmp 0x10001a20
lea ecx, [ebp - 0xc4]
push ecx
push eax
call fcn.10003170
cmp byte [0x1021abf3], 0
mov edi, dword [sym.imp.KERNEL32.dll_VirtualProtect]
je 0x10001b6a
push 4
call fcn.100d91f3
mov esi, eax
add esp, 4
mov dword [ebp - 0xc8], esi
lea eax, [ebp - 0xc4]
mov dword [ebp - 4], 8
push eax
push 0x40
push 3
push 0x6496d8
mov dword [esi], vtable.components::_debug.0
call edi
mov eax, 0x6496d8
mov ecx, 0x90909090
mov word [eax], cx
mov byte [eax + 2], cl
lea eax, [ebp - 0xc4]
push eax
push dword [ebp - 0xc4]
push 3
push 0x6496d8
call edi
push 3
push 0x6496d8
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_FlushInstructionCache]
lea ecx, [ebp - 0x5c]
call fcn.10004700
cmp byte [ebp - 0x5c], 0
jne 0x10001acf
mov byte [ebp - 0x5c], 1
mov byte [ebp - 0x47], 0
mov dword [ebp - 0x58], 0x6496ec
mov dword [ebp - 0x54], 0x10006410
mov eax, dword [0x6496ed]
add eax, 0x6496f1
mov dword [ebp - 0x50], eax
sub esp, 8
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x5c]
call fcn.10068a70
cmp byte [eax + 1], 0
je 0x10001ae8
mov byte [eax + 1], 0
mov byte [ebp - 4], 0xa
cmp byte [ebp - 0x5c], 0
je 0x10001afb
push ecx
lea ecx, [ebp - 0x5c]
call fcn.10068b40
lea eax, [ebp - 0x40]
push eax
call fcn.1000ab50
mov dword [ebp - 4], 0xffffffff
add esp, 4
mov eax, dword [esi]
mov ecx, esi
mov dword [ebp - 0xc4], esi
mov eax, dword [eax + 4]
call eax
push eax
push str.Component_registered:__s_n
call fcn.10069130
mov edx, eax
add esp, 8
lea edi, [edx + 1]
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x10001b30
sub edx, edi
mov ecx, 0x10167f8c
push edx
push eax
call fcn.10003330
mov eax, dword [0x1021b160]
cmp eax, dword [0x1021b164]
je 0x10001b5d
mov dword [eax], esi
add dword [0x1021b160], 4
jmp 0x10001b6a
lea ecx, [ebp - 0xc4]
push ecx
push eax
call fcn.10003170
cmp byte [0x1021abf4], 0
je 0x10001c11
push 4
call fcn.100d91f3
mov esi, eax
mov dword [ebp - 0xc8], esi
sub esp, 0x24
mov dword [ebp - 4], 0xb
mov ecx, esp
mov dword [esi], vtable.components::_ggame.0
mov dword [ecx], vtable.std::_Func_impl_no_alloc_class__public:_void___thiscall_components::_ggame::constructor_void_::_2::_lambda_1___void__class_components::command::params_.0
mov dword [ecx + 0x24], ecx
mov ecx, str.ent_rotateTo
call fcn.100160e0
mov dword [ebp - 4], 0xffffffff
add esp, 0x28
mov eax, dword [esi]
mov ecx, esi
mov dword [ebp - 0xc4], esi
mov eax, dword [eax + 4]
call eax
push eax
push str.Component_registered:__s_n
call fcn.10069130
mov edx, eax
add esp, 8
lea edi, [edx + 1]
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x10001bd7
sub edx, edi
mov ecx, 0x10167f8c
push edx
push eax
call fcn.10003330
mov eax, dword [0x1021b160]
cmp eax, dword [0x1021b164]
je 0x10001c04
mov dword [eax], esi
add dword [0x1021b160], 4
jmp 0x10001c11
lea ecx, [ebp - 0xc4]
push ecx
push eax
call fcn.10003170
cmp byte [0x1021abf5], 0
je 0x10001caa
push 4
call fcn.100d91f3
add esp, 4
mov dword [ebp - 0xc8], eax
mov ecx, eax
mov dword [ebp - 4], 0xc
call fcn.10007920
mov esi, eax
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0xc4], esi
test esi, esi
je 0x10001caa
mov edx, dword [esi]
mov ecx, esi
mov edx, dword [edx + 4]
call edx
push eax
push str.Component_registered:__s_n
call fcn.10069130
mov edx, eax
add esp, 8
lea edi, [edx + 1]
nop dword [eax + eax]
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x10001c70
sub edx, edi
mov ecx, 0x10167f8c
push edx
push eax
call fcn.10003330
mov eax, dword [0x1021b160]
cmp eax, dword [0x1021b164]
je 0x10001c9d
mov dword [eax], esi
add dword [0x1021b160], 4
jmp 0x10001caa
lea ecx, [ebp - 0xc4]
push ecx
push eax
call fcn.10003170
cmp byte [0x1021abf6], 0
je 0x10001d3e
push 4
call fcn.100d91f3
add esp, 4
mov dword [ebp - 0xc8], eax
mov ecx, eax
mov dword [ebp - 4], 0xd
call fcn.1000dcf0
mov esi, eax
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0xc4], esi
test esi, esi
je 0x10001d3e
mov edx, dword [esi]
mov ecx, esi
mov edx, dword [edx + 4]
call edx
push eax
push str.Component_registered:__s_n
call fcn.10069130
mov edx, eax
add esp, 8
lea edi, [edx + 1]
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x10001d04
sub edx, edi
mov ecx, 0x10167f8c
push edx
push eax
call fcn.10003330
mov eax, dword [0x1021b160]
cmp eax, dword [0x1021b164]
je 0x10001d31
mov dword [eax], esi
add dword [0x1021b160], 4
jmp 0x10001d3e
lea ecx, [ebp - 0xc4]
push ecx
push eax
call fcn.10003170
cmp byte [0x1021abf7], 0
je 0x10001dd2
push 4
call fcn.100d91f3
add esp, 4
mov dword [ebp - 0xc8], eax
mov ecx, eax
mov dword [ebp - 4], 0xe
call fcn.10010560
mov esi, eax
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0xc4], esi
test esi, esi
je 0x10001dd2
mov edx, dword [esi]
mov ecx, esi
mov edx, dword [edx + 4]
call edx
push eax
push str.Component_registered:__s_n
call fcn.10069130
mov edx, eax
add esp, 8
lea edi, [edx + 1]
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x10001d98
sub edx, edi
mov ecx, 0x10167f8c
push edx
push eax
call fcn.10003330
mov eax, dword [0x1021b160]
cmp eax, dword [0x1021b164]
je 0x10001dc5
mov dword [eax], esi
add dword [0x1021b160], 4
jmp 0x10001dd2
lea ecx, [ebp - 0xc4]
push ecx
push eax
call fcn.10003170
cmp byte [0x1021abf8], 0
je 0x10001e6a
push 4
call fcn.100d91f3
add esp, 4
mov dword [ebp - 0xc8], eax
mov ecx, eax
mov dword [ebp - 4], 0xf
call fcn.10013bc0
mov esi, eax
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0xc4], esi
test esi, esi
je 0x10001e6a
mov edx, dword [esi]
mov ecx, esi
mov edx, dword [edx + 4]
call edx
push eax
push str.Component_registered:__s_n
call fcn.10069130
mov edx, eax
add esp, 8
lea edi, [edx + 1]
nop dword [eax]
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x10001e30
sub edx, edi
mov ecx, 0x10167f8c
push edx
push eax
call fcn.10003330
mov eax, dword [0x1021b160]
cmp eax, dword [0x1021b164]
je 0x10001e5d
mov dword [eax], esi
add dword [0x1021b160], 4
jmp 0x10001e6a
lea ecx, [ebp - 0xc4]
push ecx
push eax
call fcn.10003170
cmp byte [0x1021abf9], 0
je 0x10001e8a
push 4
call fcn.100d91f3
add esp, 4
mov ecx, eax
mov dword [eax], vtable.components::command.0
call fcn.10003100
cmp byte [0x1021abfa], 0
je 0x10001f8a
push 4
call fcn.100d91f3
mov esi, eax
mov dword [ebp - 0xc8], esi
push 0
push 0
push 0
push 0
push 0
push 1
push str.extended_d3d9_interface
push 1
push 0
mov dword [ebp - 4], 0x10
push str.r_d3d9ex
mov dword [esi], vtable.components::d3d9ex.0
call dword [0x10167e44]
mov edi, dword [sym.imp.KERNEL32.dll_VirtualProtect]
add esp, 0x2c
mov dword [0x1020d28c], eax
lea eax, [ebp - 0xc4]
push eax
push 0x40
push 4
push 0x69142c
call edi
lea eax, [ebp - 0xc4]
mov dword [0x69142c], 0x1001ce40
push eax
push dword [ebp - 0xc4]
push 4
push 0x69142c
call edi
push 4
push 0x69142c
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_FlushInstructionCache]
mov dword [ebp - 4], 0xffffffff
mov ecx, esi
mov eax, dword [esi]
mov dword [ebp - 0xc4], esi
mov eax, dword [eax + 4]
call eax
push eax
push str.Component_registered:__s_n
call fcn.10069130
mov edx, eax
add esp, 8
lea edi, [edx + 1]
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x10001f50
sub edx, edi
mov ecx, 0x10167f8c
push edx
push eax
call fcn.10003330
mov eax, dword [0x1021b160]
cmp eax, dword [0x1021b164]
je 0x10001f7d
mov dword [eax], esi
add dword [0x1021b160], 4
jmp 0x10001f8a
lea ecx, [ebp - 0xc4]
push ecx
push eax
call fcn.10003170
cmp byte [0x1021abfc], 0
je 0x1000213a
push 4
call fcn.100d91f3
mov esi, eax
add esp, 4
mov dword [ebp - 0xc8], esi
mov dword [ebp - 4], 0x11
lea ecx, [ebp - 0x5c]
mov dword [esi], vtable.components::gscr_methods.0
call fcn.10004700
cmp byte [ebp - 0x5c], 0
jne 0x10001fe7
mov byte [ebp - 0x5c], 1
mov byte [ebp - 0x47], 1
mov dword [ebp - 0x58], 0x4d8577
mov dword [ebp - 0x54], 0x10039650
mov eax, dword [0x4d8578]
add eax, 0x4d857c
mov dword [ebp - 0x50], eax
sub esp, 8
mov byte [ebp - 4], 0x12
lea ecx, [ebp - 0x5c]
call fcn.10068a70
cmp byte [eax + 1], 0
je 0x10002000
mov byte [eax + 1], 0
mov byte [ebp - 4], 0x13
cmp byte [ebp - 0x5c], 0
je 0x10002013
push ecx
lea ecx, [ebp - 0x5c]
call fcn.10068b40
lea eax, [ebp - 0x40]
push eax
call fcn.1000ab50
mov edx, 0x10038dc0
mov byte [ebp - 4], 0x11
mov ecx, 0x10141e04
call fcn.10038cf0
mov edx, 0x10038de0
mov ecx, str.setvelocity
call fcn.10038cf0
mov edx, 0x10038eb0
mov ecx, str.sprintButtonPressed
call fcn.10038cf0
mov edx, 0x10038f70
mov ecx, str.leanLeftButtonPressed
call fcn.10038cf0
mov edx, 0x10039030
mov ecx, str.leanRightButtonPressed
call fcn.10038cf0
mov edx, 0x100390f0
mov ecx, str.reloadButtonPressed
call fcn.10038cf0
mov edx, 0x100391b0
mov ecx, str.jumpButtonPressed
call fcn.10038cf0
mov edx, 0x10039270
mov ecx, str.forwardButtonPressed
call fcn.10038cf0
mov edx, 0x10039330
mov ecx, str.backButtonPressed
call fcn.10038cf0
mov edx, 0x100393f0
mov ecx, str.rightButtonPressed
call fcn.10038cf0
mov edx, 0x100394b0
mov ecx, str.leftButtonPressed
call fcn.10038cf0
mov edx, 0x10039560
mov ecx, str.checkJump
call fcn.10038cf0
mov dword [ebp - 4], 0xffffffff
add esp, 4
mov eax, dword [esi]
mov ecx, esi
mov dword [ebp - 0xc4], esi
mov eax, dword [eax + 4]
call eax
push eax
push str.Component_registered:__s_n
call fcn.10069130
mov edx, eax
add esp, 8
lea edi, [edx + 1]
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x10002100
sub edx, edi
mov ecx, 0x10167f8c
push edx
push eax
call fcn.10003330
mov eax, dword [0x1021b160]
cmp eax, dword [0x1021b164]
je 0x1000212d
mov dword [eax], esi
add dword [0x1021b160], 4
jmp 0x1000213a
lea ecx, [ebp - 0xc4]
push ecx
push eax
call fcn.10003170
cmp byte [0x1021abfd], 0
je 0x100021ce
push 4
call fcn.100d91f3
add esp, 4
mov dword [ebp - 0xc8], eax
mov ecx, eax
mov dword [ebp - 4], 0x14
call fcn.10053710
mov esi, eax
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0xc4], esi
test esi, esi
je 0x100021ce
mov edx, dword [esi]
mov ecx, esi
mov edx, dword [edx + 4]
call edx
push eax
push str.Component_registered:__s_n
call fcn.10069130
mov edx, eax
add esp, 8
lea edi, [edx + 1]
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x10002194
sub edx, edi
mov ecx, 0x10167f8c
push edx
push eax
call fcn.10003330
mov eax, dword [0x1021b160]
cmp eax, dword [0x1021b164]
je 0x100021c1
mov dword [eax], esi
add dword [0x1021b160], 4
jmp 0x100021ce
lea ecx, [ebp - 0xc4]
push ecx
push eax
call fcn.10003170
cmp byte [0x1021abfe], 0
je 0x10002262
push 4
call fcn.100d91f3
add esp, 4
mov dword [ebp - 0xc8], eax
mov ecx, eax
mov dword [ebp - 4], 0x15
call fcn.10063ab0
mov esi, eax
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0xc4], esi
test esi, esi
je 0x10002262
mov edx, dword [esi]
mov ecx, esi
mov edx, dword [edx + 4]
call edx
push eax
push str.Component_registered:__s_n
call fcn.10069130
mov edx, eax
add esp, 8
lea edi, [edx + 1]
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x10002228
sub edx, edi
mov ecx, 0x10167f8c
push edx
push eax
call fcn.10003330
mov eax, dword [0x1021b160]
cmp eax, dword [0x1021b164]
je 0x10002255
mov dword [eax], esi
add dword [0x1021b160], 4
jmp 0x10002262
lea ecx, [ebp - 0xc4]
push ecx
push eax
call fcn.10003170
cmp byte [0x1021abff], 0
je 0x100022fa
push 4
call fcn.100d91f3
add esp, 4
mov dword [ebp - 0xc8], eax
mov ecx, eax
mov dword [ebp - 4], 0x16
call fcn.10065080
mov esi, eax
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0xc4], esi
test esi, esi
je 0x100022fa
mov edx, dword [esi]
mov ecx, esi
mov edx, dword [edx + 4]
call edx
push eax
push str.Component_registered:__s_n
call fcn.10069130
mov edx, eax
add esp, 8
lea edi, [edx + 1]
nop dword [eax]
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x100022c0
sub edx, edi
mov ecx, 0x10167f8c
push edx
push eax
call fcn.10003330
mov eax, dword [0x1021b160]
cmp eax, dword [0x1021b164]
je 0x100022ed
mov dword [eax], esi
add dword [0x1021b160], 4
jmp 0x100022fa
lea ecx, [ebp - 0xc4]
push ecx
push eax
call fcn.10003170
cmp byte [0x1021ac00], 0
je 0x1000238e
push 4
call fcn.100d91f3
add esp, 4
mov dword [ebp - 0xc8], eax
mov ecx, eax
mov dword [ebp - 4], 0x17
call fcn.10015ed0
mov esi, eax
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0xc4], esi
test esi, esi
je 0x1000238e
mov edx, dword [esi]
mov ecx, esi
mov edx, dword [edx + 4]
call edx
push eax
push str.Component_registered:__s_n
call fcn.10069130
mov edx, eax
add esp, 8
lea edi, [edx + 1]
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x10002354
sub edx, edi
mov ecx, 0x10167f8c
push edx
push eax
call fcn.10003330
mov eax, dword [0x1021b160]
cmp eax, dword [0x1021b164]
je 0x10002381
mov dword [eax], esi
add dword [0x1021b160], 4
jmp 0x1000238e
lea ecx, [ebp - 0xc4]
push ecx
push eax
call fcn.10003170
cmp byte [0x1021ac01], 0
je 0x100025fa
push 4
call fcn.100d91f3
mov esi, eax
mov dword [ebp - 0xc8], esi
push 0
push 0
push 0
push 0
push 0
push 0
push str.Display_mDd_world_compass
push 1
push 0
mov dword [ebp - 4], 0x18
push str.mdd_compass
mov dword [esi], vtable.components::compass.0
call dword [0x10167e44]
add esp, 0x24
mov dword [0x1020d230], eax
mov dword [esp + 4], 0x44200000
mov dword [esp], 0
push 0
push 0
sub esp, 8
mov dword [esp + 4], 0x41400000
mov dword [esp], 0x43400000
push str.mdd_compass_position_on_screen_Y_and_compass_thickness_H
push 1
push 2
push str.mdd_compass_yh
call dword [0x10167eb4]
add esp, 0x10
mov dword [0x1020d228], eax
mov dword [esp + 0x14], 0x3f800000
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x3e800000
mov dword [esp + 8], 0
mov dword [esp + 4], 0x3f800000
mov dword [esp], 0x3f800000
push str.color_0_to_90_deg_quadrant
push 1
push 4
push str.mdd_compass_quadrant_rgbas0
call dword [0x10167e50]
add esp, 0x10
mov dword [0x1020d22c], eax
mov dword [esp + 0x14], 0x3f800000
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x3e800000
mov dword [esp + 8], 0
mov dword [esp + 4], 0x3f800000
mov dword [esp], 0
push str.color_90_to_180_deg_quadrant
push 1
push 4
push str.mdd_compass_quadrant_rgbas1
call dword [0x10167e50]
add esp, 0x10
mov dword [0x1020d224], eax
mov dword [esp + 0x14], 0x3f800000
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x3e800000
mov dword [esp + 8], 0x3f800000
mov dword [esp + 4], 0
mov dword [esp], 0
push str.color_180_to_270_deg_quadrant
push 1
push 4
push str.mdd_compass_quadrant_rgbas2
call dword [0x10167e50]
add esp, 0x10
mov dword [0x1020d220], eax
mov dword [esp + 0x14], 0x3f800000
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x3e800000
mov dword [esp + 8], 0x3f800000
mov dword [esp + 4], 0
mov dword [esp], 0x3f800000
push str.color_270_to_360_deg_quadrant
push 1
push 4
push str.mdd_compass_quadrant_rgbas3
call dword [0x10167e50]
add esp, 0x10
mov dword [0x1020d21c], eax
mov dword [esp + 0x14], 0x3f800000
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x3f800000
mov dword [esp + 8], 0x3f800000
mov dword [esp + 4], 0x3f800000
mov dword [esp], 0x3f800000
push str.color_for_ticks
push 1
push 4
push str.mdd_compass_ticks_rgba
call dword [0x10167e50]
mov dword [ebp - 4], 0xffffffff
add esp, 0x28
mov dword [0x1020d218], eax
mov ecx, esi
mov eax, dword [esi]
mov dword [ebp - 0xc4], esi
mov eax, dword [eax + 4]
call eax
push eax
push str.Component_registered:__s_n
call fcn.10069130
mov edx, eax
add esp, 8
lea edi, [edx + 1]
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x100025c0
sub edx, edi
mov ecx, 0x10167f8c
push edx
push eax
call fcn.10003330
mov eax, dword [0x1021b160]
cmp eax, dword [0x1021b164]
je 0x100025ed
mov dword [eax], esi
add dword [0x1021b160], 4
jmp 0x100025fa
lea ecx, [ebp - 0xc4]
push ecx
push eax
call fcn.10003170
cmp byte [0x1021ac02], 0
je 0x1000268e
push 4
call fcn.100d91f3
add esp, 4
mov dword [ebp - 0xc8], eax
mov ecx, eax
mov dword [ebp - 4], 0x19
call fcn.1001a350
mov esi, eax
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0xc4], esi
test esi, esi
je 0x1000268e
mov edx, dword [esi]
mov ecx, esi
mov edx, dword [edx + 4]
call edx
push eax
push str.Component_registered:__s_n
call fcn.10069130
mov edx, eax
add esp, 8
lea edi, [edx + 1]
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x10002654
sub edx, edi
mov ecx, 0x10167f8c
push edx
push eax
call fcn.10003330
mov eax, dword [0x1021b160]
cmp eax, dword [0x1021b164]
je 0x10002681
mov dword [eax], esi
add dword [0x1021b160], 4
jmp 0x1000268e
lea ecx, [ebp - 0xc4]
push ecx
push eax
call fcn.10003170
cmp byte [0x1021ac03], 0
je 0x10002722
push 4
call fcn.100d91f3
add esp, 4
mov dword [ebp - 0xc8], eax
mov ecx, eax
mov dword [ebp - 4], 0x1a
call fcn.10023cd0
mov esi, eax
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0xc4], esi
test esi, esi
je 0x10002722
mov edx, dword [esi]
mov ecx, esi
mov edx, dword [edx + 4]
call edx
push eax
push str.Component_registered:__s_n
call fcn.10069130
mov edx, eax
add esp, 8
lea edi, [edx + 1]
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x100026e8
sub edx, edi
mov ecx, 0x10167f8c
push edx
push eax
call fcn.10003330
mov eax, dword [0x1021b160]
cmp eax, dword [0x1021b164]
je 0x10002715
mov dword [eax], esi
add dword [0x1021b160], 4
jmp 0x10002722
lea ecx, [ebp - 0xc4]
push ecx
push eax
call fcn.10003170
cmp byte [0x1021ac04], 0
je 0x100027ba
push 4
call fcn.100d91f3
add esp, 4
mov dword [ebp - 0xc8], eax
mov ecx, eax
mov dword [ebp - 4], 0x1b
call fcn.10033fa0
mov esi, eax
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0xc4], esi
test esi, esi
je 0x100027ba
mov edx, dword [esi]
mov ecx, esi
mov edx, dword [edx + 4]
call edx
push eax
push str.Component_registered:__s_n
call fcn.10069130
mov edx, eax
add esp, 8
lea edi, [edx + 1]
nop dword [eax]
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x10002780
sub edx, edi
mov ecx, 0x10167f8c
push edx
push eax
call fcn.10003330
mov eax, dword [0x1021b160]
cmp eax, dword [0x1021b164]
je 0x100027ad
mov dword [eax], esi
add dword [0x1021b160], 4
jmp 0x100027ba
lea ecx, [ebp - 0xc4]
push ecx
push eax
call fcn.10003170
cmp byte [0x1021ac05], 0
je 0x100028ec
push 4
call fcn.100d91f3
mov esi, eax
mov dword [ebp - 0xc8], esi
sub esp, 0x24
mov dword [ebp - 4], 0x1c
mov ecx, esp
mov dword [esi], vtable.components::gui.0
mov edx, 0x1013c284
push str.opens_the_imgui_demo_menu
mov dword [ecx], vtable.std::_Func_impl_no_alloc_class__public:_void___thiscall_components::gui::constructor_void_::_2::_lambda_1___void__class_components::command::params_.0
mov dword [ecx + 4], esi
mov dword [ecx + 0x24], ecx
mov ecx, str.devgui_demo
call fcn.10016230
add esp, 4
mov edx, 0x1013c284
mov eax, esp
mov ecx, str.devgui
push str.opens_the_devgui
mov dword [eax], vtable.std::_Func_impl_no_alloc_class__public:_void___thiscall_components::gui::constructor_void_::_2::_lambda_2___void__class_components::command::params_.0
mov dword [eax + 4], esi
mov dword [eax + 0x24], eax
call fcn.10016230
push 0
push 0
push 0
push 0
push 0
push 0
push str.saving_flag
push 1
push 0
push str._imgui_saving
call dword [0x10167e44]
add esp, 0x54
mov dword [0x1020d2f8], eax
push str.imgui_window_alpha
push 1
sub esp, 0xc
mov dword [esp + 8], 0x3f800000
mov dword [esp + 4], 0
mov dword [esp], 0x3f666666
push str._imgui_window_alpha
call dword [0x10167e48]
mov dword [ebp - 4], 0xffffffff
add esp, 0x18
mov dword [0x1020d2f4], eax
mov ecx, esi
mov eax, dword [esi]
mov dword [ebp - 0xc4], esi
mov eax, dword [eax + 4]
call eax
push eax
push str.Component_registered:__s_n
call fcn.10069130
mov edx, eax
add esp, 8
lea edi, [edx + 1]
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x100028b2
sub edx, edi
mov ecx, 0x10167f8c
push edx
push eax
call fcn.10003330
mov eax, dword [0x1021b160]
cmp eax, dword [0x1021b164]
je 0x100028df
mov dword [eax], esi
add dword [0x1021b160], 4
jmp 0x100028ec
lea ecx, [ebp - 0xc4]
push ecx
push eax
call fcn.10003170
cmp byte [0x1021ac06], 0
je 0x100029fa
push 4
call fcn.100d91f3
mov esi, eax
mov dword [ebp - 0xc8], esi
mov dword [ebp - 4], 0x1d
mov dword [esp], 0x45800000
push ecx
mov dword [esp], 0
push 0
push 0
sub esp, 8
mov dword [esi], vtable.components::gui_devgui.0
mov dword [esp + 4], 0x41a00000
mov dword [esp], 0x41a00000
push str.position_of_the_devgui
push 1
push 2
push str._imgui_devgui_pos
call dword [0x10167eb4]
add esp, 0x20
mov dword [0x1020d374], eax
mov dword [esp + 4], 0x45800000
mov dword [esp], 0
push 0
push 0
sub esp, 8
mov dword [esp + 4], 0x442a0000
mov dword [esp], 0x44098000
push str.size_of_the_devgui
push 1
push 2
push str._imgui_devgui_size
call dword [0x10167eb4]
mov dword [ebp - 4], 0xffffffff
add esp, 0x28
mov dword [0x1020d370], eax
mov ecx, esi
mov eax, dword [esi]
mov dword [ebp - 0xc4], esi
mov eax, dword [eax + 4]
call eax
push eax
push str.Component_registered:__s_n
call fcn.10069130
mov edx, eax
add esp, 8
lea edi, [edx + 1]
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x100029c0
sub edx, edi
mov ecx, 0x10167f8c
push edx
push eax
call fcn.10003330
mov eax, dword [0x1021b160]
cmp eax, dword [0x1021b164]
je 0x100029ed
mov dword [eax], esi
add dword [0x1021b160], 4
jmp 0x100029fa
lea ecx, [ebp - 0xc4]
push ecx
push eax
call fcn.10003170
cmp byte [0x1021ac07], 0
je 0x10002a91
push 0x608
call fcn.100d91f3
add esp, 4
mov dword [ebp - 0xc8], eax
mov ecx, eax
mov dword [ebp - 4], 0x1e
call fcn.10042a20
mov esi, eax
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0xc4], esi
test esi, esi
je 0x10002a91
mov edx, dword [esi]
mov ecx, esi
mov edx, dword [edx + 4]
call edx
push eax
push str.Component_registered:__s_n
call fcn.10069130
mov edx, eax
add esp, 8
lea edi, [edx + 1]
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x10002a57
sub edx, edi
mov ecx, 0x10167f8c
push edx
push eax
call fcn.10003330
mov eax, dword [0x1021b160]
cmp eax, dword [0x1021b164]
je 0x10002a84
mov dword [eax], esi
add dword [0x1021b160], 4
jmp 0x10002a91
lea ecx, [ebp - 0xc4]
push ecx
push eax
call fcn.10003170
cmp byte [0x1021ac08], 0
je 0x10002b2a
push 4
call fcn.100d91f3
add esp, 4
mov dword [ebp - 0xc8], eax
mov ecx, eax
mov dword [ebp - 4], 0x1f
call fcn.1004fda0
mov esi, eax
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0xc4], esi
test esi, esi
je 0x10002b2a
mov edx, dword [esi]
mov ecx, esi
mov edx, dword [edx + 4]
call edx
push eax
push str.Component_registered:__s_n
call fcn.10069130
mov edx, eax
add esp, 8
lea edi, [edx + 1]
nop dword [eax + eax]
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x10002af0
sub edx, edi
mov ecx, 0x10167f8c
push edx
push eax
call fcn.10003330
mov eax, dword [0x1021b160]
cmp eax, dword [0x1021b164]
je 0x10002b1d
mov dword [eax], esi
add dword [0x1021b160], 4
jmp 0x10002b2a
lea ecx, [ebp - 0xc4]
push ecx
push eax
call fcn.10003170
cmp byte [0x1021ac09], 0
je 0x10002c2a
push 4
call fcn.100d91f3
mov esi, eax
mov dword [ebp - 0xc8], esi
push 0
push 0
push 0
push 0
push 0
push 0
push str.load_iw3mvm_on_startup
push 1
push 0
mov dword [ebp - 4], 0x20
push str.load_iw3mvm
mov dword [esi], vtable.components::mvm.0
call dword [0x10167e44]
mov edi, dword [sym.imp.KERNEL32.dll_VirtualProtect]
add esp, 0x2c
mov dword [0x1020d378], eax
lea eax, [ebp - 0xc4]
push eax
push 0x40
push 1
push 0x60e625
call edi
lea eax, [ebp - 0xc4]
mov byte [0x60e625], 2
push eax
push dword [ebp - 0xc4]
push 1
push 0x60e625
call edi
push 1
push 0x60e625
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_FlushInstructionCache]
mov dword [ebp - 4], 0xffffffff
mov ecx, esi
mov eax, dword [esi]
mov dword [ebp - 0xc4], esi
mov eax, dword [eax + 4]
call eax
push eax
push str.Component_registered:__s_n
call fcn.10069130
mov edx, eax
add esp, 8
lea edi, [edx + 1]
nop dword [eax]
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x10002bf0
sub edx, edi
mov ecx, 0x10167f8c
push edx
push eax
call fcn.10003330
mov eax, dword [0x1021b160]
cmp eax, dword [0x1021b164]
je 0x10002c1d
mov dword [eax], esi
add dword [0x1021b160], 4
jmp 0x10002c2a
lea ecx, [ebp - 0xc4]
push ecx
push eax
call fcn.10003170
cmp byte [0x1021ac0a], 0
je 0x10002c4a
push 4
call fcn.100d91f3
add esp, 4
mov ecx, eax
mov dword [eax], vtable.components::ocean.0
call fcn.10003100
cmp byte [0x1021ac0b], 0
je 0x10002cde
push 4
call fcn.100d91f3
add esp, 4
mov dword [ebp - 0xc8], eax
mov ecx, eax
mov dword [ebp - 4], 0x21
call fcn.10054e90
mov esi, eax
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0xc4], esi
test esi, esi
je 0x10002cde
mov edx, dword [esi]
mov ecx, esi
mov edx, dword [edx + 4]
call edx
push eax
push str.Component_registered:__s_n
call fcn.10069130
mov edx, eax
add esp, 8
lea edi, [edx + 1]
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x10002ca4
sub edx, edi
mov ecx, 0x10167f8c
push edx
push eax
call fcn.10003330
mov eax, dword [0x1021b160]
cmp eax, dword [0x1021b164]
je 0x10002cd1
mov dword [eax], esi
add dword [0x1021b160], 4
jmp 0x10002cde
lea ecx, [ebp - 0xc4]
push ecx
push eax
call fcn.10003170
cmp byte [0x1021ac0c], 0
je 0x10002d72
push 4
call fcn.100d91f3
add esp, 4
mov dword [ebp - 0xc8], eax
mov ecx, eax
mov dword [ebp - 4], 0x22
call fcn.100584b0
mov esi, eax
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0xc4], esi
test esi, esi
je 0x10002d72
mov edx, dword [esi]
mov ecx, esi
mov edx, dword [edx + 4]
call edx
push eax
push str.Component_registered:__s_n
call fcn.10069130
mov edx, eax
add esp, 8
lea edi, [edx + 1]
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x10002d38
sub edx, edi
mov ecx, 0x10167f8c
push edx
push eax
call fcn.10003330
mov eax, dword [0x1021b160]
cmp eax, dword [0x1021b164]
je 0x10002d65
mov dword [eax], esi
add dword [0x1021b160], 4
jmp 0x10002d72
lea ecx, [ebp - 0xc4]
push ecx
push eax
call fcn.10003170
cmp byte [0x1021ac0d], 0
je 0x10002e0a
push 4
call fcn.100d91f3
add esp, 4
mov dword [ebp - 0xc8], eax
mov ecx, eax
mov dword [ebp - 4], 0x23
call fcn.10059eb0
mov esi, eax
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0xc4], esi
test esi, esi
je 0x10002e0a
mov edx, dword [esi]
mov ecx, esi
mov edx, dword [edx + 4]
call edx
push eax
push str.Component_registered:__s_n
call fcn.10069130
mov edx, eax
add esp, 8
lea edi, [edx + 1]
nop dword [eax]
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x10002dd0
sub edx, edi
mov ecx, 0x10167f8c
push edx
push eax
call fcn.10003330
mov eax, dword [0x1021b160]
cmp eax, dword [0x1021b164]
je 0x10002dfd
mov dword [eax], esi
add dword [0x1021b160], 4
jmp 0x10002e0a
lea ecx, [ebp - 0xc4]
push ecx
push eax
call fcn.10003170
cmp byte [0x1021ac0e], 0
je 0x10002e9e
push 4
call fcn.100d91f3
add esp, 4
mov dword [ebp - 0xc8], eax
mov ecx, eax
mov dword [ebp - 4], 0x24
call fcn.1005e100
mov esi, eax
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0xc4], esi
test esi, esi
je 0x10002e9e
mov edx, dword [esi]
mov ecx, esi
mov edx, dword [edx + 4]
call edx
push eax
push str.Component_registered:__s_n
call fcn.10069130
mov edx, eax
add esp, 8
lea edi, [edx + 1]
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x10002e64
sub edx, edi
mov ecx, 0x10167f8c
push edx
push eax
call fcn.10003330
mov eax, dword [0x1021b160]
cmp eax, dword [0x1021b164]
je 0x10002e91
mov dword [eax], esi
add dword [0x1021b160], 4
jmp 0x10002e9e
lea ecx, [ebp - 0xc4]
push ecx
push eax
call fcn.10003170
cmp byte [0x1021ac0f], 0
je 0x10002f1a
push 4
call fcn.100d91f3
mov esi, eax
add esp, 4
mov dword [ebp - 0xc8], esi
mov ecx, esi
mov dword [ebp - 0xc4], esi
mov dword [esi], vtable.components::rtx_gui.0
call dword [0x10149174]
push eax
push str.Component_registered:__s_n
call fcn.10069130
mov edx, eax
add esp, 8
lea edi, [edx + 1]
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x10002ee0
sub edx, edi
mov ecx, 0x10167f8c
push edx
push eax
call fcn.10003330
mov eax, dword [0x1021b160]
cmp eax, dword [0x1021b164]
je 0x10002f0d
mov dword [eax], esi
add dword [0x1021b160], 4
jmp 0x10002f1a
lea ecx, [ebp - 0xc4]
push ecx
push eax
call fcn.10003170
cmp byte [0x1021ac10], 0
je 0x10002f9a
push 4
call fcn.100d91f3
mov esi, eax
add esp, 4
mov dword [ebp - 0xc8], esi
mov ecx, esi
mov dword [ebp - 0xc4], esi
mov dword [esi], vtable.components::rtx_lights.0
call dword [0x101491c8]
push eax
push str.Component_registered:__s_n
call fcn.10069130
mov edx, eax
add esp, 8
lea edi, [edx + 1]
nop dword [eax]
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x10002f60
sub edx, edi
mov ecx, 0x10167f8c
push edx
push eax
call fcn.10003330
mov eax, dword [0x1021b160]
cmp eax, dword [0x1021b164]
je 0x10002f8d
mov dword [eax], esi
add dword [0x1021b160], 4
jmp 0x10002f9a
lea ecx, [ebp - 0xc4]
push ecx
push eax
call fcn.10003170
cmp byte [0x1021ac11], 0
je 0x1000304a
push 4
call fcn.100d91f3
mov edi, eax
mov dword [ebp - 0xc8], edi
sub esp, 0x24
mov dword [ebp - 4], 0x25
mov ecx, esp
mov dword [edi], vtable.components::rtx_map_settings.0
mov dword [ecx], vtable.std::_Func_impl_no_alloc_class__public:_void___thiscall_components::rtx_map_settings::constructor_void_::_2::_lambda_1___void__class_components::command::params_.0
mov dword [ecx + 4], edi
mov dword [ecx + 0x24], ecx
mov ecx, str.mapsettings_update
call fcn.100160e0
mov dword [ebp - 4], 0xffffffff
add esp, 0x28
mov eax, dword [edi]
mov ecx, edi
mov dword [ebp - 0xc4], edi
mov eax, dword [eax + 4]
call eax
push eax
push str.Component_registered:__s_n
call fcn.10069130
mov esi, eax
add esp, 8
lea ecx, [esi + 1]
nop word [eax + eax]
mov dl, byte [esi]
inc esi
test dl, dl
jne 0x10003010
sub esi, ecx
mov ecx, 0x10167f8c
push esi
push eax
call fcn.10003330
mov eax, dword [0x1021b160]
cmp eax, dword [0x1021b164]
je 0x1000303d
mov dword [eax], edi
add dword [0x1021b160], 4
jmp 0x1000304a
lea ecx, [ebp - 0xc4]
push ecx
push eax
call fcn.10003170
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.100d8e9a
mov esp, ebp
pop ebp
ret
call fcn.100de11f
int3