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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
mov eax, dword [0x100ca00c]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [0x100ebc2c]
xor edx, edx
push esi
push edi
mov dword [ebp - 0x14], ebx
mov eax, dword [ebx + 0x19ec]
mov dword [ebp - 0xc], 0x43520000
mov dword [ebp - 8], 0x41900000
mov byte [eax + 0x7c], 1
mov eax, dword [ebx + 0x19ec]
mov ecx, dword [eax + 0x1c4]
mov eax, dword [eax + 0x1cc]
push dword [eax + ecx*4 - 4]
mov ecx, 0x1007620c
call fcn.10027b40
add esp, 4
cmp dword [ebx + 0x1a0c], eax
jne 0x10010677
mov dword [ebx + 0x1a14], eax
cmp dword [ebx + 0x1a10], eax
jne 0x10010686
mov byte [ebx + 0x1a20], 1
push 0
lea edx, [ebp - 0xc]
mov ecx, 0x1007620c
push 0
push edx
mov edx, eax
call fcn.1002d340
add esp, 0xc
call fcn.1002d180
mov ecx, dword [0x100ebc2c]
mov eax, dword [ecx + 0x19ec]
mov byte [eax + 0x7c], 1
mov eax, dword [ecx + 0x19ec]
mov eax, dword [eax + 0x1c0]
test eax, eax
je 0x100106d3
cmp dword [eax + 0x10], 2
jne 0x100106ce
cmp dword [eax + 4], 1
je 0x100106e2
call fcn.10049760
push 1
mov edx, 2
call fcn.10049260
add esp, 4
call fcn.1005eab0
movss xmm1, dword [0x100c4e4c]
movss xmm0, dword [0x100c4d64]
call fcn.10045070
mov esi, dword [0x100ebc2c]
xor edx, edx
mov dword [ebp - 0xc], 0x43810000
mov dword [ebp - 8], 0x43fd0000
mov eax, dword [esi + 0x19ec]
mov byte [eax + 0x7c], 1
mov eax, dword [esi + 0x19ec]
mov ecx, dword [eax + 0x1c4]
mov eax, dword [eax + 0x1cc]
push dword [eax + ecx*4 - 4]
mov ecx, str.Miscellaneous
call fcn.10027b40
add esp, 4
cmp dword [esi + 0x1a0c], eax
jne 0x1001074d
mov dword [esi + 0x1a14], eax
cmp dword [esi + 0x1a10], eax
jne 0x1001075c
mov byte [esi + 0x1a20], 1
push ecx
lea ecx, [ebp - 0xc]
mov edx, eax
push 1
push ecx
mov ecx, str.Miscellaneous
call fcn.1002c930
mov ecx, dword [0x100ebc2c]
add esp, 0xc
mov dword [ebx + 0x1554], 0x40800000
mov dword [ebx + 0x1558], 0x40000000
mov dword [ebx + 0x1514], 0x40800000
mov dword [ebx + 0x1518], 0x40800000
mov eax, dword [ecx + 0x19ec]
mov byte [eax + 0x7c], 1
mov eax, dword [ecx + 0x19ec]
cmp byte [eax + 0x7f], 0
jne 0x100107d5
xorps xmm1, xmm1
mov dword [ebp - 0xc], 0
lea ecx, [ebp - 0xc]
mov dword [ebp - 8], 0x41100000
call fcn.1002a170
mov ecx, dword [0x100ebc2c]
mov eax, dword [ecx + 0x19ec]
mov byte [eax + 0x7c], 1
mov eax, dword [ecx + 0x19ec]
cmp byte [eax + 0x7f], 0
jne 0x10010804
xorps xmm1, xmm1
mov dword [ebp - 0xc], 0
lea ecx, [ebp - 0xc]
mov dword [ebp - 8], 0
call fcn.1002a170
call fcn.1005eab0
movss xmm1, dword [0x100c4e4c]
movss xmm0, dword [0x100c4d64]
call fcn.10045070
mov edx, 0x100cbb5a
mov ecx, str.Hitmarker__unimplemented_
call fcn.1005e0c0
mov ecx, dword [0x100ebc2c]
mov eax, dword [ecx + 0x19ec]
mov byte [eax + 0x7c], 1
mov eax, dword [ecx + 0x19ec]
cmp byte [eax + 0x7f], 0
jne 0x10010862
xorps xmm1, xmm1
mov dword [ebp - 0xc], 0
lea ecx, [ebp - 0xc]
mov dword [ebp - 8], 0
call fcn.1002a170
call fcn.1005eab0
movss xmm1, dword [0x100c4e4c]
movss xmm0, dword [0x100c4d64]
call fcn.10045070
mov edx, 0x100cbb67
mov ecx, str.Hitmarker_sound__unimplemented_
call fcn.1005e0c0
mov ecx, dword [0x100ebc2c]
mov eax, dword [ecx + 0x19ec]
mov byte [eax + 0x7c], 1
mov eax, dword [ecx + 0x19ec]
cmp byte [eax + 0x7f], 0
jne 0x100108c0
xorps xmm1, xmm1
mov dword [ebp - 0xc], 0
lea ecx, [ebp - 0xc]
mov dword [ebp - 8], 0
call fcn.1002a170
call fcn.1005eab0
call fcn.1005eab0
movss xmm1, dword [0x100c4e4c]
movss xmm0, dword [0x100c4d78]
call fcn.10045070
mov ecx, dword [0x100ebc2c]
mov edx, 0x431e0000
mov eax, dword [ecx + 0x19ec]
mov byte [eax + 0x7c], 1
mov eax, dword [ecx + 0x19ec]
lea esi, [eax + 0x184]
mov dword [ebp - 8], eax
mov dword [eax + 0x170], 0x431e0000
mov ecx, dword [esi]
mov edi, dword [esi + 4]
cmp ecx, edi
jne 0x10010943
inc ecx
test edi, edi
je 0x10010926
mov eax, edi
cdq
sub eax, edx
sar eax, 1
add eax, edi
jmp 0x1001092b
mov eax, 8
cmp eax, ecx
cmovg ecx, eax
push ecx
mov ecx, esi
call fcn.1004b270
mov eax, dword [ebp - 8]
mov ecx, dword [esi]
mov edx, dword [eax + 0x170]
mov eax, dword [esi + 8]
push ecx
push 3
push 0x100ca080
mov dword [eax + ecx*4], edx
mov edx, 0x100cbb74
inc dword [esi]
push ecx
mov ecx, str.Hitmarker_sound
call fcn.1005f840
mov ecx, dword [0x100ebc2c]
add esp, 0x10
mov eax, dword [ecx + 0x19ec]
mov byte [eax + 0x7c], 1
mov edx, dword [ecx + 0x19ec]
mov esi, dword [edx + 0x184]
sub esi, 1
mov dword [edx + 0x184], esi
jne 0x10010997
movss xmm0, dword [edx + 0x224]
jmp 0x100109a3
mov eax, dword [edx + 0x18c]
movss xmm0, dword [eax + esi*4 - 4]
movss dword [edx + 0x170], xmm0
mov eax, dword [ecx + 0x19ec]
mov byte [eax + 0x7c], 1
mov eax, dword [ecx + 0x19ec]
cmp byte [eax + 0x7f], 0
jne 0x100109e0
xorps xmm1, xmm1
mov dword [ebp - 0xc], 0
lea ecx, [ebp - 0xc]
mov dword [ebp - 8], 0x3f800000
call fcn.1002a170
mov ecx, dword [0x100ebc2c]
mov eax, dword [ecx + 0x19ec]
mov byte [eax + 0x7c], 1
mov eax, dword [ecx + 0x19ec]
cmp byte [eax + 0x7f], 0
jne 0x10010a0f
xorps xmm1, xmm1
mov dword [ebp - 0xc], 0
lea ecx, [ebp - 0xc]
mov dword [ebp - 8], 0
call fcn.1002a170
call fcn.1005eab0
movss xmm1, dword [0x100c4e4c]
movss xmm0, dword [0x100c4d64]
call fcn.10045070
mov edx, 0x100cbb7c
mov ecx, str.Quick_stop
call fcn.1005e0c0
mov ecx, dword [0x100ebc2c]
mov eax, dword [ecx + 0x19ec]
mov byte [eax + 0x7c], 1
mov eax, dword [ecx + 0x19ec]
cmp byte [eax + 0x7f], 0
jne 0x10010a6d
xorps xmm1, xmm1
mov dword [ebp - 0xc], 0
lea ecx, [ebp - 0xc]
mov dword [ebp - 8], 0
call fcn.1002a170
call fcn.1005eab0
movss xmm1, dword [0x100c4e4c]
movss xmm0, dword [0x100c4d64]
call fcn.10045070
mov edx, 0x100cbb71
mov ecx, str.BunnyHop
call fcn.1005e0c0
mov ecx, dword [0x100ebc2c]
mov eax, dword [ecx + 0x19ec]
mov byte [eax + 0x7c], 1
mov eax, dword [ecx + 0x19ec]
cmp byte [eax + 0x7f], 0
jne 0x10010acb
xorps xmm1, xmm1
mov dword [ebp - 0xc], 0
lea ecx, [ebp - 0xc]
mov dword [ebp - 8], 0
call fcn.1002a170
call fcn.1005eab0
movss xmm1, dword [0x100c4e4c]
movss xmm0, dword [0x100c4d64]
call fcn.10045070
mov edx, 0x100cbb73
mov ecx, str.Autostrafe
call fcn.1005e0c0
mov ecx, dword [0x100ebc2c]
mov eax, dword [ecx + 0x19ec]
mov byte [eax + 0x7c], 1
mov eax, dword [ecx + 0x19ec]
cmp byte [eax + 0x7f], 0
jne 0x10010b29
xorps xmm1, xmm1
mov dword [ebp - 0xc], 0
lea ecx, [ebp - 0xc]
mov dword [ebp - 8], 0
call fcn.1002a170
call fcn.1005eab0
call fcn.1005eab0
movss xmm1, dword [0x100c4e4c]
movss xmm0, dword [0x100c4d78]
call fcn.10045070
mov ecx, dword [0x100ebc2c]
mov edx, 0x431e0000
mov eax, dword [ecx + 0x19ec]
mov byte [eax + 0x7c], 1
mov eax, dword [ecx + 0x19ec]
lea esi, [eax + 0x184]
mov dword [ebp - 8], eax
mov dword [eax + 0x170], 0x431e0000
mov ecx, dword [esi]
mov edi, dword [esi + 4]
cmp ecx, edi
jne 0x10010bac
inc ecx
test edi, edi
je 0x10010b8f
mov eax, edi
cdq
sub eax, edx
sar eax, 1
add eax, edi
jmp 0x10010b94
mov eax, 8
cmp eax, ecx
cmovg ecx, eax
push ecx
mov ecx, esi
call fcn.1004b270
mov eax, dword [ebp - 8]
mov ecx, dword [esi]
mov edx, dword [eax + 0x170]
mov eax, dword [esi + 8]
push ecx
push 3
push 0x100ca0b0
mov dword [eax + ecx*4], edx
mov edx, 0x100cbb5c
inc dword [esi]
push ecx
mov ecx, str.Autostrafe_style
call fcn.1005f840
mov ecx, dword [0x100ebc2c]
add esp, 0x10
mov eax, dword [ecx + 0x19ec]
mov byte [eax + 0x7c], 1
mov edx, dword [ecx + 0x19ec]
mov esi, dword [edx + 0x184]
sub esi, 1
mov dword [edx + 0x184], esi
jne 0x10010c00
movss xmm0, dword [edx + 0x224]
jmp 0x10010c0c
mov eax, dword [edx + 0x18c]
movss xmm0, dword [eax + esi*4 - 4]
movss dword [edx + 0x170], xmm0
mov eax, dword [ecx + 0x19ec]
mov byte [eax + 0x7c], 1
mov eax, dword [ecx + 0x19ec]
cmp byte [eax + 0x7f], 0
jne 0x10010c49
xorps xmm1, xmm1
mov dword [ebp - 0xc], 0
lea ecx, [ebp - 0xc]
mov dword [ebp - 8], 0x3f800000
call fcn.1002a170
mov ecx, dword [0x100ebc2c]
mov eax, dword [ecx + 0x19ec]
mov byte [eax + 0x7c], 1
mov eax, dword [ecx + 0x19ec]
cmp byte [eax + 0x7f], 0
jne 0x10010c78
xorps xmm1, xmm1
mov dword [ebp - 0xc], 0
lea ecx, [ebp - 0xc]
mov dword [ebp - 8], 0
call fcn.1002a170
call fcn.1005eab0
movss xmm1, dword [0x100c4e4c]
movss xmm0, dword [0x100c4d64]
call fcn.10045070
mov edx, 0x100cbb65
mov ecx, str.Message_on_death__unimplemented_
call fcn.1005e0c0
mov ecx, dword [0x100ebc2c]
mov eax, dword [ecx + 0x19ec]
mov byte [eax + 0x7c], 1
mov eax, dword [ecx + 0x19ec]
cmp byte [eax + 0x7f], 0
jne 0x10010cd6
xorps xmm1, xmm1
mov dword [ebp - 0xc], 0
lea ecx, [ebp - 0xc]
mov dword [ebp - 8], 0
call fcn.1002a170
call fcn.1005eab0
movss xmm1, dword [0x100c4e4c]
movss xmm0, dword [0x100c4d64]
call fcn.10045070
mov edx, 0x100cbb7d
mov ecx, str.OOC___unimplemented_
call fcn.1005e0c0
mov ecx, dword [0x100ebc2c]
mov eax, dword [ecx + 0x19ec]
mov byte [eax + 0x7c], 1
mov eax, dword [ecx + 0x19ec]
cmp byte [eax + 0x7f], 0
jne 0x10010d34
xorps xmm1, xmm1
mov dword [ebp - 0xc], 0
lea ecx, [ebp - 0xc]
mov dword [ebp - 8], 0
call fcn.1002a170
call fcn.1005eab0
movss xmm1, dword [0x100c4e4c]
movss xmm0, dword [0x100c4d64]
call fcn.10045070
mov edx, 0x100cbb70
mov ecx, str.Flashlight_spam
call fcn.1005e0c0
mov ecx, dword [0x100ebc2c]
mov eax, dword [ecx + 0x19ec]
mov byte [eax + 0x7c], 1
mov eax, dword [ecx + 0x19ec]
cmp byte [eax + 0x7f], 0
jne 0x10010d92
xorps xmm1, xmm1
mov dword [ebp - 0xc], 0
lea ecx, [ebp - 0xc]
mov dword [ebp - 8], 0
call fcn.1002a170
call fcn.1005eab0
movss xmm1, dword [0x100c4e4c]
movss xmm0, dword [0x100c4d64]
call fcn.10045070
mov edx, 0x100cbb7e
mov ecx, str.Use_spam
call fcn.1005e0c0
mov ecx, dword [0x100ebc2c]
mov eax, dword [ecx + 0x19ec]
mov byte [eax + 0x7c], 1
mov eax, dword [ecx + 0x19ec]
cmp byte [eax + 0x7f], 0
jne 0x10010df0
xorps xmm1, xmm1
mov dword [ebp - 0xc], 0
lea ecx, [ebp - 0xc]
mov dword [ebp - 8], 0
call fcn.1002a170
call fcn.1005eab0
movss xmm1, dword [0x100c4e4c]
movss xmm0, dword [0x100c4d64]
call fcn.10045070
mov edx, 0x100cbb66
mov ecx, str.Spectator_List
call fcn.1005e0c0
mov ecx, dword [0x100ebc2c]
mov eax, dword [ecx + 0x19ec]
mov byte [eax + 0x7c], 1
mov eax, dword [ecx + 0x19ec]
cmp byte [eax + 0x7f], 0
jne 0x10010e4e
xorps xmm1, xmm1
mov dword [ebp - 0xc], 0
lea ecx, [ebp - 0xc]
mov dword [ebp - 8], 0
call fcn.1002a170
call fcn.1005eab0
movss xmm1, dword [0x100c4e4c]
movss xmm0, dword [0x100c4d64]
call fcn.10045070
mov edx, 0x100cbb81
mov ecx, str.Free_cam
call fcn.1005e0c0
push 0x100ca054
mov edx, 0x100cbb6c
mov ecx, str.freecamkey
call fcn.1005f940
add esp, 4
mov dword [ebx + 0x1554], 0
mov dword [ebx + 0x1558], 0
mov dword [ebx + 0x1514], 0x40c00000
mov dword [ebx + 0x1518], 0x40c00000
call fcn.1002cb50
movss xmm1, dword [0x100c4e4c]
movss xmm0, dword [0x100c4d64]
call fcn.10045070
mov esi, dword [0x100ebc2c]
xor edx, edx
mov dword [ebp - 0xc], 0x43810000
mov dword [ebp - 8], 0x41300000
mov eax, dword [esi + 0x19ec]
mov byte [eax + 0x7c], 1
mov eax, dword [esi + 0x19ec]
mov ecx, dword [eax + 0x1c4]
mov eax, dword [eax + 0x1cc]
push dword [eax + ecx*4 - 4]
mov ecx, str.Misc_Cover
call fcn.10027b40
add esp, 4
cmp dword [esi + 0x1a0c], eax
jne 0x10010f21
mov dword [esi + 0x1a14], eax
cmp dword [esi + 0x1a10], eax
jne 0x10010f30
mov byte [esi + 0x1a20], 1
sub esp, 8
lea esi, [ebp - 0xc]
mov edx, str.Miscellaneous
mov ecx, str.Misc_Cover
push esi
push eax
call fcn.1002cf90
call fcn.1002d180
call fcn.10048be0
call fcn.1005eab0
movss xmm1, dword [0x100c4e4c]
movss xmm0, dword [0x100c4d44]
call fcn.10045070
mov esi, dword [0x100ebc2c]
xor edx, edx
mov dword [ebp - 0xc], 0x43810000
mov dword [ebp - 8], 0x43160000
mov eax, dword [esi + 0x19ec]
mov byte [eax + 0x7c], 1
mov eax, dword [esi + 0x19ec]
mov ecx, dword [eax + 0x1c4]
mov eax, dword [eax + 0x1cc]
push dword [eax + ecx*4 - 4]
mov ecx, str.Settings
call fcn.10027b40
add esp, 0x14
cmp dword [esi + 0x1a0c], eax
jne 0x10010fbc
mov dword [esi + 0x1a14], eax
cmp dword [esi + 0x1a10], eax
jne 0x10010fcb
mov byte [esi + 0x1a20], 1
push ecx
lea ecx, [ebp - 0xc]
mov edx, eax
push 1
push ecx
mov ecx, str.Settings
call fcn.1002c930
mov ecx, dword [0x100ebc2c]
add esp, 0xc
mov dword [ebx + 0x1554], 0x40800000
mov dword [ebx + 0x1558], 0x40000000
mov dword [ebx + 0x1514], 0x40800000
mov dword [ebx + 0x1518], 0x40800000
mov eax, dword [ecx + 0x19ec]
mov byte [eax + 0x7c], 1
mov eax, dword [ecx + 0x19ec]
cmp byte [eax + 0x7f], 0
jne 0x10011044
xorps xmm1, xmm1
mov dword [ebp - 0xc], 0
lea ecx, [ebp - 0xc]
mov dword [ebp - 8], 0x41100000
call fcn.1002a170
mov ecx, dword [0x100ebc2c]
mov eax, dword [ecx + 0x19ec]
mov byte [eax + 0x7c], 1
mov eax, dword [ecx + 0x19ec]
cmp byte [eax + 0x7f], 0
jne 0x10011073
xorps xmm1, xmm1
mov dword [ebp - 0xc], 0
lea ecx, [ebp - 0xc]
mov dword [ebp - 8], 0
call fcn.1002a170
call fcn.1005eab0
movss xmm1, dword [0x100c4e4c]
movss xmm0, dword [0x100c4d78]
call fcn.10045070
push str.Menu_key
call fcn.1005a640
add esp, 4
mov edx, 0x100ca058
mov ecx, str.menukey
push 0x100ca070
call fcn.1005f940
mov ecx, dword [0x100ebc2c]
add esp, 4
mov eax, dword [ecx + 0x19ec]
mov byte [eax + 0x7c], 1
mov eax, dword [ecx + 0x19ec]
cmp byte [eax + 0x7f], 0
jne 0x100110e6
xorps xmm1, xmm1
mov dword [ebp - 0xc], 0
lea ecx, [ebp - 0xc]
mov dword [ebp - 8], 0
call fcn.1002a170
call fcn.1005eab0
movss xmm1, dword [0x100c4e4c]
movss xmm0, dword [0x100c4d78]
call fcn.10045070
push str.Menu_color
call fcn.1005a640
movss xmm1, dword [0x100c4e4c]
add esp, 4
movss xmm0, dword [0x100c4dd0]
call fcn.10045070
push 0
mov edx, 0x100cb104
mov ecx, str.Menu_color
call fcn.10005160
mov ecx, dword [0x100ebc2c]
add esp, 4
movss xmm0, dword [0x100cb104]
mov eax, dword [ecx + 0x19ec]
movss dword [ecx + 0x15b8], xmm0
movss xmm0, dword [0x100cb108]
movss dword [ecx + 0x15bc], xmm0
movss xmm0, dword [0x100cb10c]
movss dword [ecx + 0x15c0], xmm0
mov byte [eax + 0x7c], 1
mov eax, dword [ecx + 0x19ec]
cmp byte [eax + 0x7f], 0
jne 0x1001119b
xorps xmm1, xmm1
mov dword [ebp - 0xc], 0
lea ecx, [ebp - 0xc]
mov dword [ebp - 8], 0
call fcn.1002a170
call fcn.1005eab0
movss xmm1, dword [0x100c4e4c]
movss xmm0, dword [0x100c4d64]
call fcn.10045070
mov edx, 0x100ebbb5
mov ecx, str.Untrusted
call fcn.1005e0c0
mov dword [ebx + 0x1554], 0
mov dword [ebx + 0x1558], 0
mov dword [ebx + 0x1514], 0x40c00000
mov dword [ebx + 0x1518], 0x40c00000
call fcn.1002cb50
movss xmm1, dword [0x100c4e4c]
movss xmm0, dword [0x100c4d44]
call fcn.10045070
mov esi, dword [0x100ebc2c]
xor edx, edx
mov dword [ebp - 0xc], 0x43810000
mov dword [ebp - 8], 0x41300000
mov eax, dword [esi + 0x19ec]
mov byte [eax + 0x7c], 1
mov eax, dword [esi + 0x19ec]
mov ecx, dword [eax + 0x1c4]
mov eax, dword [eax + 0x1cc]
push dword [eax + ecx*4 - 4]
mov ecx, str.Settings_Cover
call fcn.10027b40
add esp, 4
cmp dword [esi + 0x1a0c], eax
jne 0x10011257
mov dword [esi + 0x1a14], eax
cmp dword [esi + 0x1a10], eax
jne 0x10011266
mov byte [esi + 0x1a20], 1
sub esp, 8
lea esi, [ebp - 0xc]
mov edx, str.Settings
mov ecx, str.Settings_Cover
push esi
push eax
call fcn.1002cf90
call fcn.1002d180
mov esi, dword [0x100ebc2c]
xor edx, edx
mov dword [ebp - 0xc], 0x43520000
mov dword [ebp - 8], 0x41900000
mov eax, dword [esi + 0x19ec]
mov byte [eax + 0x7c], 1
mov eax, dword [esi + 0x19ec]
mov ecx, dword [eax + 0x1c4]
mov eax, dword [eax + 0x1cc]
push dword [eax + ecx*4 - 4]
mov ecx, str.Settings___Configs
call fcn.10027b40
add esp, 0x14
cmp dword [esi + 0x1a0c], eax
jne 0x100112d3
mov dword [esi + 0x1a14], eax
cmp dword [esi + 0x1a10], eax
jne 0x100112e2
mov byte [esi + 0x1a20], 1
push 0
lea edx, [ebp - 0xc]
mov ecx, str.Settings___Configs
push 0
push edx
mov edx, eax
call fcn.1002d340
add esp, 0xc
call fcn.1002d180
call fcn.1005eab0
movss xmm1, dword [0x100c4e4c]
movss xmm0, dword [0x100c4d44]
call fcn.10045070
mov esi, dword [0x100ebc2c]
xor edx, edx
mov dword [ebp - 0xc], 0x43810000
mov dword [ebp - 8], 0x43480000
mov eax, dword [esi + 0x19ec]
mov byte [eax + 0x7c], 1
mov eax, dword [esi + 0x19ec]
mov ecx, dword [eax + 0x1c4]
mov eax, dword [eax + 0x1cc]
push dword [eax + ecx*4 - 4]
mov ecx, str.Configs
call fcn.10027b40
add esp, 4
cmp dword [esi + 0x1a0c], eax
jne 0x10011369
mov dword [esi + 0x1a14], eax
cmp dword [esi + 0x1a10], eax
jne 0x10011378
mov byte [esi + 0x1a20], 1
push ecx
lea ecx, [ebp - 0xc]
mov edx, eax
push 1
push ecx
mov ecx, str.Configs
call fcn.1002c930
mov ecx, dword [0x100ebc2c]
add esp, 0xc
mov dword [ebx + 0x1554], 0x40800000
mov dword [ebx + 0x1558], 0x40000000
mov dword [ebx + 0x1514], 0x40800000
mov dword [ebx + 0x1518], 0x40800000
mov eax, dword [ecx + 0x19ec]
mov byte [eax + 0x7c], 1
mov eax, dword [ecx + 0x19ec]
cmp byte [eax + 0x7f], 0
jne 0x100113f1
xorps xmm1, xmm1
mov dword [ebp - 0xc], 0
lea ecx, [ebp - 0xc]
mov dword [ebp - 8], 0x41100000
call fcn.1002a170
mov ecx, dword [0x100ebc2c]
mov eax, dword [ecx + 0x19ec]
mov byte [eax + 0x7c], 1
mov eax, dword [ecx + 0x19ec]
cmp byte [eax + 0x7f], 0
jne 0x10011420
xorps xmm1, xmm1
mov dword [ebp - 0xc], 0
lea ecx, [ebp - 0xc]
mov dword [ebp - 8], 0
call fcn.1002a170
call fcn.1005eab0
call fcn.1005eab0
movss xmm1, dword [0x100c4e4c]
movss xmm0, dword [0x100c4d80]
call fcn.10045070
mov ecx, dword [0x100ebc2c]
mov edx, 0x431e0000
mov eax, dword [ecx + 0x19ec]
mov byte [eax + 0x7c], 1
mov eax, dword [ecx + 0x19ec]
lea esi, [eax + 0x184]
mov dword [ebp - 8], eax
mov dword [eax + 0x170], 0x431e0000
mov ecx, dword [esi]
mov edi, dword [esi + 4]
cmp ecx, edi
jne 0x100114a3
inc ecx
test edi, edi
je 0x10011486
mov eax, edi
cdq
sub eax, edx
sar eax, 1
add eax, edi
jmp 0x1001148b
mov eax, 8
cmp eax, ecx
cmovg ecx, eax
push ecx
mov ecx, esi
call fcn.1004b270
mov eax, dword [ebp - 8]
mov ecx, dword [esi]
mov edx, dword [eax + 0x170]
mov eax, dword [esi + 8]
push ecx
push 5
push 0x100ca08c
mov dword [eax + ecx*4], edx
mov edx, 0x100ebfa8
inc dword [esi]
push ecx
mov ecx, str.Preset
call fcn.1005f840
mov ecx, dword [0x100ebc2c]
add esp, 0x10
mov eax, dword [ecx + 0x19ec]
mov byte [eax + 0x7c], 1
mov edx, dword [ecx + 0x19ec]
mov esi, dword [edx + 0x184]
sub esi, 1
mov dword [edx + 0x184], esi
jne 0x100114f7
movss xmm0, dword [edx + 0x224]
jmp 0x10011503
mov eax, dword [edx + 0x18c]
movss xmm0, dword [eax + esi*4 - 4]
movss dword [edx + 0x170], xmm0
mov eax, dword [ecx + 0x19ec]
mov byte [eax + 0x7c], 1
mov eax, dword [ecx + 0x19ec]
cmp byte [eax + 0x7f], 0
jne 0x10011540
xorps xmm1, xmm1
mov dword [ebp - 0xc], 0
lea ecx, [ebp - 0xc]
mov dword [ebp - 8], 0x3f800000
call fcn.1002a170
mov ecx, dword [0x100ebc2c]
mov eax, dword [ecx + 0x19ec]
mov byte [eax + 0x7c], 1
mov eax, dword [ecx + 0x19ec]
cmp byte [eax + 0x7f], 0
jne 0x1001156f
xorps xmm1, xmm1
mov dword [ebp - 0xc], 0
lea ecx, [ebp - 0xc]
mov dword [ebp - 8], 0
call fcn.1002a170
call fcn.1005eab0
call fcn.1005eab0
movss xmm1, dword [0x100c4e4c]
movss xmm0, dword [0x100c4d80]
call fcn.10045070
mov ecx, dword [0x100ebc2c]
mov edx, 0x431e0000
mov eax, dword [ecx + 0x19ec]
mov byte [eax + 0x7c], 1
mov eax, dword [ecx + 0x19ec]
lea esi, [eax + 0x184]
mov dword [ebp - 8], eax
mov dword [eax + 0x170], 0x431e0000
mov ecx, dword [esi]
mov edi, dword [esi + 4]
cmp ecx, edi
jne 0x100115f2
inc ecx
test edi, edi
je 0x100115d5
mov eax, edi
cdq
sub eax, edx
sar eax, 1
add eax, edi
jmp 0x100115da
mov eax, 8
cmp eax, ecx
cmovg ecx, eax
push ecx
mov ecx, esi
call fcn.1004b270
mov eax, dword [ebp - 8]
mov ecx, dword [esi]
mov edx, dword [eax + 0x170]
mov eax, dword [esi + 8]
push ecx
mov dword [ebp - 0xc], 0x431e0000
mov dword [ebp - 8], 0
mov dword [eax + ecx*4], edx
lea edx, [ebp - 0xc]
inc dword [esi]
mov ecx, str.Load
call fcn.1005c640
mov esi, dword [0x100ebc2c]
add esp, 4
mov byte [ebp - 0xd], al
mov ecx, dword [esi + 0x19ec]
mov byte [ecx + 0x7c], 1
mov edx, dword [esi + 0x19ec]
mov ecx, dword [edx + 0x184]
add ecx, 0xffffffff
mov dword [edx + 0x184], ecx
jne 0x1001164d
movss xmm0, dword [edx + 0x224]
jmp 0x10011659
mov eax, dword [edx + 0x18c]
movss xmm0, dword [eax + ecx*4 - 4]
movss dword [edx + 0x170], xmm0
mov eax, dword [esi + 0x19ec]
mov byte [eax + 0x7c], 1
mov eax, dword [esi + 0x19ec]
cmp byte [eax + 0x7f], 0
jne 0x10011690
xorps xmm1, xmm1
mov dword [ebp - 0xc], 0
lea ecx, [ebp - 0xc]
mov dword [ebp - 8], 0x3f800000
call fcn.1002a170
cmp byte [ebp - 0xd], 0
je 0x100116a8
mov ecx, dword [0x100ebfa8]
mov ecx, dword [ecx*4 + 0x100ca08c]
call fcn.10009120
mov ecx, dword [0x100ebc2c]
mov eax, dword [ecx + 0x19ec]
mov byte [eax + 0x7c], 1
mov eax, dword [ecx + 0x19ec]
cmp byte [eax + 0x7f], 0
jne 0x100116dd
xorps xmm1, xmm1
mov dword [ebp - 0xc], 0
lea ecx, [ebp - 0xc]
mov dword [ebp - 8], 0
call fcn.1002a170
call fcn.1005eab0
call fcn.1005eab0
movss xmm1, dword [0x100c4e4c]
movss xmm0, dword [0x100c4d80]
call fcn.10045070
mov ecx, dword [0x100ebc2c]
mov edx, 0x431e0000
mov eax, dword [ecx + 0x19ec]
mov byte [eax + 0x7c], 1
mov eax, dword [ecx + 0x19ec]
lea esi, [eax + 0x184]
mov dword [ebp - 8], eax
mov dword [eax + 0x170], 0x431e0000
mov ecx, dword [esi]
mov edi, dword [esi + 4]
cmp ecx, edi
jne 0x10011760
inc ecx
test edi, edi
je 0x10011743
mov eax, edi
cdq
sub eax, edx
sar eax, 1
add eax, edi
jmp 0x10011748
mov eax, 8
cmp eax, ecx
cmovg ecx, eax
push ecx
mov ecx, esi
call fcn.1004b270
mov eax, dword [ebp - 8]
mov ecx, dword [esi]
mov edx, dword [eax + 0x170]
mov eax, dword [esi + 8]
push ecx
mov dword [ebp - 0xc], 0x431e0000
mov dword [ebp - 8], 0
mov dword [eax + ecx*4], edx
lea edx, [ebp - 0xc]
inc dword [esi]
mov ecx, str.Save
call fcn.1005c640
mov esi, dword [0x100ebc2c]
add esp, 4
mov byte [ebp - 0xd], al
mov ecx, dword [esi + 0x19ec]
mov byte [ecx + 0x7c], 1
mov edx, dword [esi + 0x19ec]
mov ecx, dword [edx + 0x184]
add ecx, 0xffffffff
mov dword [edx + 0x184], ecx
jne 0x100117bb
movss xmm0, dword [edx + 0x224]
jmp 0x100117c7
mov eax, dword [edx + 0x18c]
movss xmm0, dword [eax + ecx*4 - 4]
movss dword [edx + 0x170], xmm0
mov eax, dword [esi + 0x19ec]
mov byte [eax + 0x7c], 1
mov eax, dword [esi + 0x19ec]
cmp byte [eax + 0x7f], 0
jne 0x100117fe
xorps xmm1, xmm1
mov dword [ebp - 0xc], 0
lea ecx, [ebp - 0xc]
mov dword [ebp - 8], 0x3f800000
call fcn.1002a170
cmp byte [ebp - 0xd], 0
je 0x10011816
mov ecx, dword [0x100ebfa8]
mov ecx, dword [ecx*4 + 0x100ca08c]
call fcn.100064e0
mov ecx, dword [0x100ebc2c]
mov eax, dword [ecx + 0x19ec]
mov byte [eax + 0x7c], 1
mov eax, dword [ecx + 0x19ec]
cmp byte [eax + 0x7f], 0
jne 0x1001184b
xorps xmm1, xmm1
mov dword [ebp - 0xc], 0
lea ecx, [ebp - 0xc]
mov dword [ebp - 8], 0
call fcn.1002a170
call fcn.1005eab0
call fcn.1005eab0
movss xmm1, dword [0x100c4e4c]
movss xmm0, dword [0x100c4d80]
call fcn.10045070
mov ecx, dword [0x100ebc2c]
mov edx, 0x431e0000
mov eax, dword [ecx + 0x19ec]
mov byte [eax + 0x7c], 1
mov eax, dword [ecx + 0x19ec]
lea esi, [eax + 0x184]
mov dword [ebp - 8], eax
mov dword [eax + 0x170], 0x431e0000
mov ecx, dword [esi]
mov edi, dword [esi + 4]
cmp ecx, edi
jne 0x100118ce
inc ecx
test edi, edi
je 0x100118b1
mov eax, edi
cdq
sub eax, edx
sar eax, 1
add eax, edi
jmp 0x100118b6
mov eax, 8
cmp eax, ecx
cmovg ecx, eax
push ecx
mov ecx, esi
call fcn.1004b270
mov eax, dword [ebp - 8]
mov ecx, dword [esi]
mov edx, dword [eax + 0x170]
mov eax, dword [esi + 8]
push ecx
mov dword [ebp - 0xc], 0x431e0000
mov dword [ebp - 8], 0
mov dword [eax + ecx*4], edx
lea edx, [ebp - 0xc]
inc dword [esi]
mov ecx, str.Reset
call fcn.1005c640
mov esi, dword [0x100ebc2c]
add esp, 4
mov byte [ebp - 0xd], al
mov ecx, dword [esi + 0x19ec]
mov byte [ecx + 0x7c], 1
mov edx, dword [esi + 0x19ec]
mov ecx, dword [edx + 0x184]
add ecx, 0xffffffff
mov dword [edx + 0x184], ecx
jne 0x10011929
movss xmm0, dword [edx + 0x224]
jmp 0x10011935
mov eax, dword [edx + 0x18c]
movss xmm0, dword [eax + ecx*4 - 4]
movss dword [edx + 0x170], xmm0
mov eax, dword [esi + 0x19ec]
mov byte [eax + 0x7c], 1
mov eax, dword [esi + 0x19ec]
cmp byte [eax + 0x7f], 0
jne 0x1001196c
xorps xmm1, xmm1
mov dword [ebp - 0xc], 0
lea ecx, [ebp - 0xc]
mov dword [ebp - 8], 0x3f800000
call fcn.1002a170
cmp byte [ebp - 0xd], 0
je 0x10011977
call fcn.1000a630
mov dword [ebx + 0x1554], 0
mov dword [ebx + 0x1558], 0
mov dword [ebx + 0x1514], 0x40c00000
mov dword [ebx + 0x1518], 0x40c00000
call fcn.1002cb50
movss xmm1, dword [0x100c4e4c]
movss xmm0, dword [0x100c4d44]
call fcn.10045070
mov esi, dword [0x100ebc2c]
xor edx, edx
mov dword [ebp - 0xc], 0x43810000
mov dword [ebp - 8], 0x41300000
mov eax, dword [esi + 0x19ec]
mov byte [eax + 0x7c], 1
mov eax, dword [esi + 0x19ec]
mov ecx, dword [eax + 0x1c4]
mov eax, dword [eax + 0x1cc]
push dword [eax + ecx*4 - 4]
mov ecx, str.Configs_Cover
call fcn.10027b40
add esp, 4
cmp dword [esi + 0x1a0c], eax
jne 0x10011a0a
mov dword [esi + 0x1a14], eax
cmp dword [esi + 0x1a10], eax
jne 0x10011a19
mov byte [esi + 0x1a20], 1
sub esp, 8
lea esi, [ebp - 0xc]
mov edx, str.Configs
mov ecx, str.Configs_Cover
push esi
push eax
call fcn.1002cf90
call fcn.1002d180
mov esi, dword [0x100ebc2c]
xor edx, edx
mov dword [ebp - 0xc], 0x43520000
mov dword [ebp - 8], 0x41900000
mov eax, dword [esi + 0x19ec]
mov byte [eax + 0x7c], 1
mov eax, dword [esi + 0x19ec]
mov ecx, dword [eax + 0x1c4]
mov eax, dword [eax + 0x1cc]
push dword [eax + ecx*4 - 4]
mov ecx, str.Settings___Others
call fcn.10027b40
add esp, 0x14
cmp dword [esi + 0x1a0c], eax
jne 0x10011a86
mov dword [esi + 0x1a14], eax
cmp dword [esi + 0x1a10], eax
jne 0x10011a95
mov byte [esi + 0x1a20], 1
push 0
lea edx, [ebp - 0xc]
mov ecx, str.Settings___Others
push 0
push edx
mov edx, eax
call fcn.1002d340
add esp, 0xc
call fcn.1002d180
call fcn.1005eab0
movss xmm1, dword [0x100c4e4c]
movss xmm0, dword [0x100c4d44]
call fcn.10045070
mov esi, dword [0x100ebc2c]
xor edx, edx
mov dword [ebp - 0xc], 0x43810000
mov dword [ebp - 8], 0x42f00000
mov eax, dword [esi + 0x19ec]
mov byte [eax + 0x7c], 1
mov eax, dword [esi + 0x19ec]
mov ecx, dword [eax + 0x1c4]
mov eax, dword [eax + 0x1cc]
push dword [eax + ecx*4 - 4]
mov ecx, str.Others
call fcn.10027b40
add esp, 4
cmp dword [esi + 0x1a0c], eax
jne 0x10011b1c
mov dword [esi + 0x1a14], eax
cmp dword [esi + 0x1a10], eax
jne 0x10011b2b
mov byte [esi + 0x1a20], 1
push ecx
lea ecx, [ebp - 0xc]
mov edx, eax
push 1
push ecx
mov ecx, str.Others
call fcn.1002c930
mov ecx, dword [0x100ebc2c]
add esp, 0xc
mov dword [ebx + 0x1554], 0x40800000
mov dword [ebx + 0x1558], 0x40000000
mov dword [ebx + 0x1514], 0x40800000
mov dword [ebx + 0x1518], 0x40800000
mov eax, dword [ecx + 0x19ec]
mov byte [eax + 0x7c], 1
mov eax, dword [ecx + 0x19ec]
cmp byte [eax + 0x7f], 0
jne 0x10011ba4
xorps xmm1, xmm1
mov dword [ebp - 0xc], 0
lea ecx, [ebp - 0xc]
mov dword [ebp - 8], 0x41100000
call fcn.1002a170
mov ecx, dword [0x100ebc2c]
mov eax, dword [ecx + 0x19ec]
mov byte [eax + 0x7c], 1
mov eax, dword [ecx + 0x19ec]
cmp byte [eax + 0x7f], 0
jne 0x10011bd3
xorps xmm1, xmm1
mov dword [ebp - 0xc], 0
lea ecx, [ebp - 0xc]
mov dword [ebp - 8], 0
call fcn.1002a170
call fcn.1005eab0
call fcn.1005eab0
movss xmm1, dword [0x100c4e4c]
movss xmm0, dword [0x100c4d80]
call fcn.10045070
mov ecx, dword [0x100ebc2c]
mov edx, 0x431e0000
mov eax, dword [ecx + 0x19ec]
mov byte [eax + 0x7c], 1
mov eax, dword [ecx + 0x19ec]
lea esi, [eax + 0x184]
mov dword [ebp - 8], eax
mov dword [eax + 0x170], 0x431e0000
mov ecx, dword [esi]
mov edi, dword [esi + 4]
cmp ecx, edi
jne 0x10011c56
inc ecx
test edi, edi
je 0x10011c39
mov eax, edi
cdq
sub eax, edx
sar eax, 1
add eax, edi
jmp 0x10011c3e
mov eax, 8
cmp eax, ecx
cmovg ecx, eax
push ecx
mov ecx, esi
call fcn.1004b270
mov eax, dword [ebp - 8]
mov ecx, dword [esi]
mov edx, dword [eax + 0x170]
mov eax, dword [esi + 8]
push ecx
mov dword [ebp - 0xc], 0x431e0000
mov dword [ebp - 8], 0
mov dword [eax + ecx*4], edx
lea edx, [ebp - 0xc]
inc dword [esi]
mov ecx, str.Unload
call fcn.1005c640
mov esi, dword [0x100ebc2c]
add esp, 4
mov byte [ebp - 0xd], al
mov ecx, dword [esi + 0x19ec]
mov byte [ecx + 0x7c], 1
mov edx, dword [esi + 0x19ec]
mov ecx, dword [edx + 0x184]
add ecx, 0xffffffff
mov dword [edx + 0x184], ecx
jne 0x10011cb1
movss xmm0, dword [edx + 0x224]
jmp 0x10011cbd
mov eax, dword [edx + 0x18c]
movss xmm0, dword [eax + ecx*4 - 4]
movss dword [edx + 0x170], xmm0
mov eax, dword [esi + 0x19ec]
mov byte [eax + 0x7c], 1
mov eax, dword [esi + 0x19ec]
cmp byte [eax + 0x7f], 0
jne 0x10011cf4
xorps xmm1, xmm1
mov dword [ebp - 0xc], 0
lea ecx, [ebp - 0xc]
mov dword [ebp - 8], 0x3f800000
call fcn.1002a170
cmp byte [ebp - 0xd], 0
je 0x10011e25
mov eax, dword [0x100ebbd4]
mov esi, dword [0x100ebbd8]
mov ebx, dword [sym.imp.KERNEL32.dll_VirtualProtect]
mov edi, dword [eax]
lea eax, [ebp - 8]
push eax
push 0x40
push 4
add edi, 0x54
push edi
call ebx
lea eax, [ebp - 8]
mov dword [edi], esi
push eax
push dword [ebp - 8]
push 4
push edi
call ebx
mov eax, dword [0x100ebc20]
mov esi, dword [0x100ebc00]
mov edi, dword [eax]
lea eax, [ebp - 8]
push eax
push 0x40
push 4
add edi, 0x8c
push edi
call ebx
lea eax, [ebp - 8]
mov dword [edi], esi
push eax
push dword [ebp - 8]
push 4
push edi
call ebx
mov eax, dword [0x100ebc08]
mov esi, dword [0x100ebbdc]
mov edi, dword [eax]
lea eax, [ebp - 8]
push eax
push 0x40
push 4
add edi, 0x18
push edi
call ebx
lea eax, [ebp - 8]
mov dword [edi], esi
push eax
push dword [ebp - 8]
push 4
push edi
call ebx
mov eax, dword [0x100ebbf4]
mov esi, dword [0x100ebbec]
mov edi, dword [eax]
lea eax, [ebp - 8]
push eax
push 0x40
push 4
add edi, 0x1c
push edi
call ebx
lea eax, [ebp - 8]
mov dword [edi], esi
push eax
push dword [ebp - 8]
push 4
push edi
call ebx
mov eax, dword [0x100ebbf0]
mov esi, dword [0x100ebc1c]
mov edi, dword [eax]
lea eax, [ebp - 8]
push eax
push 0x40
add edi, 0xa4
push 4
push edi
call ebx
mov dword [edi], esi
lea eax, [ebp - 8]
push eax
push dword [ebp - 8]
push 4
push edi
call ebx
mov eax, dword [0x100ebbcc]
mov esi, dword [0x100ebc18]
mov edi, dword [eax]
lea eax, [ebp - 8]
push eax
push 0x40
push 4
add edi, 0x50
push edi
call ebx
lea eax, [ebp - 8]
mov dword [edi], esi
push eax
push dword [ebp - 8]
push 4
push edi
call ebx
mov eax, dword [0x100ebc04]
push 1
mov ecx, dword [eax]
mov eax, dword [0x100cbb18]
mov dword [ecx], eax
mov ecx, dword [0x100ebbe0]
mov eax, dword [ecx]
call dword [eax + 0x2c]
mov ebx, dword [ebp - 0x14]
mov byte [0x100ca064], 0
mov dword [ebx + 0x1554], 0
mov dword [ebx + 0x1558], 0
mov dword [ebx + 0x1514], 0x40c00000
mov dword [ebx + 0x1518], 0x40c00000
call fcn.1002cb50
movss xmm1, dword [0x100c4e4c]
movss xmm0, dword [0x100c4d44]
call fcn.10045070
mov esi, dword [0x100ebc2c]
xor edx, edx
mov dword [ebp - 0x18], 0x43810000
mov dword [ebp - 0x14], 0x41300000
mov eax, dword [esi + 0x19ec]
mov byte [eax + 0x7c], 1
mov eax, dword [esi + 0x19ec]
mov ecx, dword [eax + 0x1c4]
mov eax, dword [eax + 0x1cc]
push dword [eax + ecx*4 - 4]
mov ecx, str.Others_Cover
call fcn.10027b40
add esp, 4
cmp dword [esi + 0x1a0c], eax
jne 0x10011eb8
mov dword [esi + 0x1a14], eax
cmp dword [esi + 0x1a10], eax
jne 0x10011ec7
mov byte [esi + 0x1a20], 1
sub esp, 8
lea esi, [ebp - 0x18]
mov edx, str.Others
mov ecx, str.Others_Cover
push esi
push eax
call fcn.1002cf90
add esp, 0x10
call fcn.1002d180
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.1006cd6e
mov esp, ebp
pop ebp
ret