Function at 0x100cb0c0
Capabilities:
Create process on windows
Resolve function by parsing pe exports
Self delete

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
mov eax, 0x1a04
call fcn.10127eb0
mov edx, dword [0x1019c5c0]
push ebx
push esi
mov esi, ecx
mov eax, dword [edx + 0x1b94]
push edi
mov dword [esp + 0x14], esi
mov byte [eax + 0x8c], 1
mov eax, dword [edx + 0x1b94]
mov eax, dword [eax + 0x198]
test eax, eax
je 0x100cb10d
cmp dword [eax + 0x10], 2
jne 0x100cb108
cmp dword [eax + 4], 1
je 0x100cb11b
call fcn.100b60c0
push 1
mov edx, 2
xor ecx, ecx
call fcn.100b57f0
movss xmm0, dword [0x1018036c]
mov ecx, 1
call fcn.100b5420
mov edx, 0x1019c414
mov ecx, str.Incremental_Load
call fcn.10106c80
movss xmm0, dword [0x10180368]
call fcn.100f5a00
mov eax, dword fs:[0x2c]
mov ecx, dword [0x10191b58]
mov ebx, dword [0x10190fc4]
add ebx, 0x3624
mov dword [esp + 0xa4], ebx
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x1027c0f0]
cmp eax, dword [ecx + 4]
jle 0x100cb1a8
push 0x1027c0f0
call fcn.101273eb
add esp, 4
cmp dword [0x1027c0f0], 0xffffffff
jne 0x100cb1a8
push 0x10152760
call fcn.10127369
add esp, 4
push 0x1027c0f0
call fcn.1012739a
add esp, 4
mov eax, dword [0x1019c5c0]
xorps xmm1, xmm1
movss xmm0, dword [esi + 0x14]
subss xmm0, dword [eax + 0x18]
comiss xmm1, xmm0
movss dword [esi + 0x14], xmm0
jb 0x100cb240
mov ecx, dword [0x10190fc4]
call fcn.10018680
mov eax, dword [ebx]
mov esi, eax
mov edi, dword [ebx + 4]
cmp esi, edi
je 0x100cb235
nop word [eax + eax]
cmp dword [0x10190664], 0xf
mov eax, 0x10190650
mov ecx, esi
cmova eax, dword [0x10190650]
cmp dword [esi + 0x14], 0xf
jbe 0x100cb1fd
mov ecx, dword [esi]
push dword [0x10190660]
mov edx, dword [esi + 0x10]
push eax
call fcn.1002bd60
test al, al
jne 0x100cb217
add esi, 0x18
cmp esi, edi
jne 0x100cb1e0
mov eax, dword [ebx]
cmp esi, edi
je 0x100cb235
sub esi, eax
mov eax, 0x2aaaaaab
imul esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [0x10190a40], eax
mov eax, dword [esp + 0x14]
mov dword [eax + 0x14], 0x3dcccccd
mov ecx, dword [ebx + 4]
mov eax, 0x2aaaaaab
sub ecx, dword [ebx]
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [0x10190a40], eax
jb 0x100cb268
mov dword [0x10190a40], 0xffffffff
mov ecx, dword [ebx + 4]
mov eax, 0x2aaaaaab
sub ecx, dword [ebx]
imul ecx
push 5
sar edx, 2
mov ecx, 0x1015b321
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, 0x10190a40
push eax
push ebx
push 0x100ccc40
call fcn.10116900
test al, al
je 0x100cb2ca
mov eax, dword [0x10190a40]
cmp eax, 0xffffffff
je 0x100cb2ca
lea ecx, [eax + eax*2]
mov eax, dword [ebx]
lea eax, [eax + ecx*8]
cmp eax, 0x10190650
je 0x100cb2ca
cmp dword [eax + 0x14], 0xf
mov ecx, dword [eax + 0x10]
jbe 0x100cb2be
mov eax, dword [eax]
push ecx
push eax
mov ecx, 0x10190650
call fcn.1001d2a0
xor ecx, ecx
call fcn.100f55b0
mov eax, dword [0x10190664]
mov edx, 0x10190650
cmp eax, 0xf
mov dword [esp + 0x74], 0x10190650
mov ecx, 0x1015b321
mov dword [esp + 0x78], 0
cmova edx, dword [0x10190650]
lea esi, [eax + 1]
mov dword [esp + 0x7c], 0
lea eax, [esp + 0x74]
mov dword [esp + 0xc], 0
push eax
push 0x100afa00
push 0x40020
lea eax, [esp + 0x18]
mov dword [esp + 0x1c], 0
push eax
push esi
push edx
mov edx, str.config_name
call fcn.1010cde0
test al, al
je 0x100cb480
mov edi, dword [0x10190a40]
cmp edi, 0xffffffff
je 0x100cb480
cmp dword [0x10190664], 0xf
mov esi, 0x10190650
mov ebx, dword [0x10190fc4]
cmova esi, dword [0x10190650]
mov ecx, esi
lea edx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100cb370
sub ecx, edx
mov edx, 0xfde9
push ecx
push esi
lea ecx, [esp + 0x38]
call fcn.100033d0
lea eax, [ebx + 0x360c]
push eax
lea ecx, [esp + 0x1c]
call fcn.1001ae80
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0x1c]
call fcn.100035d0
mov edx, dword [ebx + 0x3624]
lea edi, [edi + edi*2]
shl edi, 3
add edx, edi
cmp dword [edx + 0x14], 0xf
jbe 0x100cb3bd
mov edx, dword [edx]
mov ecx, edx
lea eax, [ecx + 1]
mov dword [esp + 0x14], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100cb3c6
sub ecx, dword [esp + 0x14]
push ecx
push edx
mov edx, 0xfde9
lea ecx, [esp + 0xb0]
call fcn.100033d0
lea eax, [ebx + 0x360c]
push eax
lea ecx, [esp + 0x84]
call fcn.1001ae80
lea eax, [esp + 0xa8]
push eax
lea ecx, [esp + 0x84]
call fcn.100035d0
cmp dword [esp + 0x2c], 7
lea ecx, [esp + 0x18]
lea eax, [esp + 0x80]
cmova ecx, dword [esp + 0x18]
cmp dword [esp + 0x94], 7
push ecx
cmova eax, dword [esp + 0x84]
push eax
call fcn.101259b7
lea ecx, [esp + 0x80]
call fcn.1001d240
lea ecx, [esp + 0xa8]
call fcn.1001d240
lea ecx, [esp + 0x18]
call fcn.1001d240
lea ecx, [esp + 0x30]
call fcn.1001d240
mov ecx, dword [ebx + 0x3624]
mov edx, esi
add ecx, edi
lea edi, [edx + 1]
nop
mov al, byte [edx]
inc edx
test al, al
jne 0x100cb470
sub edx, edi
push edx
push esi
call fcn.1001d2a0
mov eax, dword [0x1019c5c0]
mov eax, dword [eax + 0x1b94]
dec dword [eax + 0xc0]
call fcn.100b5de0
movss xmm0, dword [0x1018033c]
call fcn.100f5a00
push 0
lea edx, [esp + 0x10]
mov dword [esp + 0x10], 0
mov ecx, str.Open_config_directory
mov dword [esp + 0x14], 0
call fcn.101055e0
test al, al
je 0x100cb518
mov esi, dword [0x10190fc4]
add esi, 0x360c
mov eax, esi
cmp dword [esi + 0x14], 7
jbe 0x100cb4dd
mov eax, dword [esi]
push eax
call fcn.101254a0
push esi
lea ecx, [esp + 0x1c]
call fcn.1001ae80
cmp dword [esp + 0x2c], 7
lea eax, [esp + 0x18]
push 1
cmova eax, dword [esp + 0x1c]
push 0
push 0
push eax
push str.open
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
lea ecx, [esp + 0x18]
call fcn.1001d240
push 0
lea edx, [esp + 0x10]
mov dword [esp + 0x10], 0x42c80000
mov ecx, str.Create_config
mov dword [esp + 0x14], 0x41c80000
call fcn.101055e0
test al, al
je 0x100cb5f5
cmp dword [0x10190664], 0xf
mov ecx, 0x10190650
mov edi, dword [0x10190fc4]
cmova ecx, dword [0x10190650]
mov dword [esp + 0xc], edi
mov dword [esp + 0x14], ecx
cmp byte [ecx], 0
je 0x100cb5f5
mov esi, dword [edi + 0x3628]
mov ebx, dword [edi + 0x3624]
cmp ebx, esi
je 0x100cb5b7
nop word [eax + eax]
mov edi, ecx
lea edx, [edi + 1]
mov al, byte [edi]
inc edi
test al, al
jne 0x100cb585
sub edi, edx
mov eax, ebx
cmp dword [ebx + 0x14], 0xf
jbe 0x100cb598
mov eax, dword [ebx]
mov edx, dword [ebx + 0x10]
push edi
push ecx
mov ecx, eax
call fcn.1002bd60
test al, al
jne 0x100cb5b3
mov ecx, dword [esp + 0x14]
add ebx, 0x18
cmp ebx, esi
jne 0x100cb580
mov edi, dword [esp + 0xc]
cmp ebx, dword [edi + 0x3628]
jne 0x100cb5f5
lea eax, [esp + 0x14]
lea ecx, [edi + 0x3624]
push eax
call fcn.100227d0
mov edx, dword [edi + 0x3628]
mov eax, 0x2aaaaaab
sub edx, dword [edi + 0x3624]
mov ecx, edi
imul edx
sar edx, 2
mov eax, edx
dec edx
shr eax, 0x1f
add eax, edx
push eax
call fcn.10015200
push 0
lea edx, [esp + 0x10]
mov dword [esp + 0x10], 0x42c80000
mov ecx, str.Reset_config
mov dword [esp + 0x14], 0x41c80000
call fcn.101055e0
test al, al
je 0x100cb667
mov esi, dword [0x1019c5c0]
xor edx, edx
mov eax, dword [esi + 0x1b94]
mov ecx, dword [eax + 0xc0]
mov eax, dword [eax + 0xc8]
push dword [eax + ecx*4 - 4]
mov ecx, str.Config_to_reset
call fcn.100e9b80
cmp dword [esi + 0x1bc8], eax
jne 0x100cb64f
mov dword [esi + 0x1bcc], eax
cmp dword [esi + 0x1c04], eax
jne 0x100cb65e
mov byte [esi + 0x1c08], 1
xor edx, edx
mov ecx, eax
call fcn.100f6840
mov esi, dword [0x1019c5c0]
mov eax, dword [esi + 0x1cd4]
cmp eax, dword [esi + 0x1ce0]
jg 0x100cb68a
mov dword [esi + 0x1c18], 0
jmp 0x100cc665
mov eax, dword [esi + 0x1b94]
mov ecx, str.Config_to_reset
mov edx, dword [eax + 0xc0]
mov eax, dword [eax + 0xc8]
push dword [eax + edx*4 - 4]
xor edx, edx
call fcn.100e9b80
cmp dword [esi + 0x1bc8], eax
jne 0x100cb6ba
mov dword [esi + 0x1bcc], eax
cmp dword [esi + 0x1c04], eax
jne 0x100cb6c9
mov byte [esi + 0x1c08], 1
mov edx, 0x141
mov ecx, eax
call fcn.100f6b80
test al, al
je 0x100cc665
xor ebx, ebx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ebx
cmp ebx, 1
jne 0x100cb712
mov eax, dword [0x1019c5c0]
mov ecx, dword [eax + 0x1b94]
cmp byte [ecx + 0x8f], 0
jne 0x100cb712
mov ecx, dword [ecx + 0x1a0]
neg ecx
sbb ecx, ecx
add ecx, 6
call fcn.10107700
mov ecx, dword [ebx*4 + 0x10178908]
lea eax, [esp + 0xc]
push eax
push 0
xor dl, dl
call fcn.10115e50
test al, al
je case.default.0x100cb738
cmp ebx, 0xf
ja case.default.0x100cb738
jmp dword [ebx*4 + 0x100ccbfc]
mov ecx, dword [0x10190fc4]
call fcn.10016490
mov cl, 1
call fcn.100d4a20
mov eax, dword [0x10190fcc]
push str.cl_fullupdate
mov ecx, dword [eax + 8]
mov eax, dword [ecx]
mov eax, dword [eax + 0x3c]
call eax
mov eax, dword [eax + 0x18]
call eax
mov byte [0x1019c2e0], 1
inc ebx
jmp 0x100cb6e7
push 0x5a0
lea eax, [esp + 0xc4]
push 0
push eax
call fcn.10128f30
add esp, 0xc
lea eax, [esp + 0xc1]
mov ecx, 0x28
nop word [eax + eax]
mov dword [eax - 1], 0
lea eax, [eax + 0x24]
mov dword [eax - 0x21], 0x101
mov byte [eax - 0x1d], 0
mov dword [eax - 0x19], 0
mov dword [eax - 0x15], 0x3f800000
mov dword [eax - 0x11], 0x64
mov dword [eax - 0xd], 0
mov dword [eax - 9], 1
mov word [eax - 5], 0x100
sub ecx, 1
jne 0x100cb7a0
mov edi, dword [0x10190fc4]
lea esi, [esp + 0xc0]
add edi, 0x894
mov ecx, 0x168
rep movsd dword es:[edi], dword [esi]
mov eax, dword [0x10190fc4]
inc ebx
mov dword [eax + 0xe50], 0x42
jmp 0x100cb6e7
push 1
sub esp, 0x18
mov word [esp + 0x4c], 0
mov ecx, esp
push str.legit_aa_invert
call fcn.1001b210
lea ecx, [esp + 0x50]
call fcn.100b67c0
mov ecx, dword [0x10190fc4]
lea eax, [esp + 0x30]
push eax
lea ecx, [ecx + 0x868]
call fcn.100173a0
lea ecx, [esp + 0x30]
call fcn.10006600
inc ebx
jmp 0x100cb6e7
push 0x6e0
lea eax, [esp + 0xc4]
push 0
push eax
call fcn.10128f30
add esp, 0xc
lea ecx, [esp + 0xc0]
mov edx, 0x28
call fcn.10022920
mov edi, dword [0x10190fc4]
lea esi, [esp + 0xc0]
mov ecx, 0x1b8
inc ebx
rep movsd dword es:[edi], dword [esi]
mov eax, dword [0x10190fc4]
mov dword [eax + 0x6fc], 0x42
jmp 0x100cb6e7
push 0
sub esp, 0x18
mov byte [esp + 0xdc], 0
mov ecx, esp
mov dword [esp + 0xe0], 0
mov dword [esp + 0xe4], 0
push str.manual_forward
call fcn.1001b210
lea ecx, [esp + 0xe8]
call fcn.100b67c0
push 0
sub esp, 0x18
mov ecx, esp
push str.manual_backward
call fcn.1001b210
lea ecx, [esp + 0x10c]
call fcn.100b67c0
push 0
sub esp, 0x18
xorps xmm0, xmm0
mov ecx, esp
movups xmmword [ecx], xmm0
mov dword [ecx + 0x10], 0xc
mov dword [ecx + 0x14], 0xf
movq xmm0, qword [str.manual_right]
movq qword [ecx], xmm0
mov eax, dword [0x1015b660]
mov dword [ecx + 8], eax
mov byte [ecx + 0xc], 0
lea ecx, [esp + 0x130]
call fcn.100b67c0
push 0
sub esp, 0x18
xorps xmm0, xmm0
mov ecx, esp
movups xmmword [ecx], xmm0
mov dword [ecx + 0x10], 0xb
mov dword [ecx + 0x14], 0xf
movq xmm0, qword [str.manual_left]
movq qword [ecx], xmm0
mov ax, word [0x1015b670]
mov word [ecx + 8], ax
mov al, byte [0x1015b672]
mov byte [ecx + 0xa], al
mov byte [ecx + 0xb], 0
lea ecx, [esp + 0x154]
call fcn.100b67c0
mov ecx, dword [0x10190fc4]
lea eax, [esp + 0xc0]
xorps xmm0, xmm0
mov byte [esp + 0x16c], 0
push eax
movups xmmword [esp + 0x160], xmm0
lea ecx, [ecx + 0x734]
call fcn.100173e0
lea ecx, [esp + 0xc0]
call fcn.10006440
inc ebx
jmp 0x100cb6e7
push 1
sub esp, 0x18
mov byte [esp + 0x4c], 0
mov esi, esp
xorps xmm0, xmm0
push 0x20
movups xmmword [esi], xmm0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0xf
call fcn.10127068
mov ecx, eax
mov dword [esi + 0x10], 0x11
mov dword [esi], ecx
add esp, 4
mov dword [esi + 0x14], 0x1f
movups xmm0, xmmword [str.fake_angle_invert]
movups xmmword [ecx], xmm0
mov al, byte [0x1015b684]
mov byte [ecx + 0x10], al
mov byte [ecx + 0x11], 0
lea ecx, [esp + 0x50]
call fcn.100b67c0
mov esi, dword [0x10190fc4]
mov al, byte [esp + 0x30]
movaps xmm0, xmmword [0x10180560]
movups xmmword [esp + 0x58], xmm0
mov byte [esi + 0x7e4], al
lea ecx, [esi + 0x7ec]
mov eax, dword [esp + 0x34]
mov dword [esi + 0x7e8], eax
lea eax, [esp + 0x38]
push eax
call fcn.1001b060
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x4c]
mov dword [esi + 0x804], eax
mov al, byte [esp + 0x54]
mov byte [esi + 0x808], al
mov eax, dword [esp + 0x58]
mov dword [esi + 0x80c], eax
mov eax, dword [esp + 0x5c]
mov dword [esi + 0x810], eax
mov eax, dword [esp + 0x60]
mov dword [esi + 0x814], eax
mov eax, dword [esp + 0x64]
mov dword [esi + 0x818], eax
cmp ecx, 0xf
jbe 0x100cbaca
mov edx, dword [esp + 0x38]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100cbac0
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100ccbf6
push ecx
push edx
call fcn.10127383
add esp, 8
inc ebx
jmp 0x100cb6e7
mov eax, dword [0x10190fc4]
inc ebx
mov byte [esp + 0x74], 0
mov dword [esp + 0x78], 0
movq xmm0, qword [esp + 0x74]
movq qword [eax + 0x728], xmm0
mov dword [eax + 0x730], 1
jmp 0x100cb6e7
mov eax, dword [0x10190fc4]
inc ebx
mov word [esp + 0x80], 0
mov byte [esp + 0x82], 0
mov dword [esp + 0x84], 0xc8
mov byte [esp + 0x88], 0
mov dword [esp + 0x8c], 0xc8
movups xmm0, xmmword [esp + 0x80]
movups xmmword [eax + 0x1264], xmm0
jmp 0x100cb6e7
push 0x3c0
lea eax, [esp + 0xc4]
push 0
push eax
call fcn.10128f30
add esp, 0xc
lea eax, [esp + 0xc1]
mov ecx, 0x28
nop dword [eax]
mov dword [eax - 1], 0x1000000
lea eax, [eax + 0x18]
mov word [eax - 0x15], 0
mov byte [eax - 0x13], 0
mov dword [eax - 0x11], 0
mov dword [eax - 0xd], 0x32
mov dword [eax - 9], 0
mov dword [eax - 5], 1
sub ecx, 1
jne 0x100cbb70
mov edi, dword [0x10190fc4]
lea esi, [esp + 0xc0]
add edi, 0xe80
mov ecx, 0xf0
rep movsd dword es:[edi], dword [esi]
mov eax, dword [0x10190fc4]
inc ebx
mov dword [eax + 0x125c], 0x42
jmp 0x100cb6e7
call fcn.10086450
inc ebx
jmp 0x100cb6e7
mov ecx, dword [0x10190fc4]
push 0
push 0
lea ecx, [ecx + 0x1274]
call fcn.100199c0
mov eax, dword [0x10190fc4]
inc ebx
mov dword [eax + 0x12b0], 0x42
jmp 0x100cb6e7
push 1
sub esp, 0x18
mov ecx, esp
push 0x1015b6b0
call fcn.1001b210
lea ecx, [esp + 0xdc]
call fcn.100b67c0
push 0x188
mov dword [esp + 0xf0], 0
call fcn.10127068
add esp, 4
mov dword [esp + 0xe8], eax
lea ecx, [esp + 0xf0]
mov dword [esp + 0xf0], 0
mov dword [esp + 0xf4], 0
mov dword [eax], eax
push eax
push 0x10
mov dword [eax + 4], eax
mov dword [esp + 0x100], 0
mov dword [esp + 0x104], 7
mov dword [esp + 0x108], 8
mov dword [esp + 0xec], 0x3f800000
call fcn.1001e3b0
push 0x188
mov dword [esp + 0x110], 0
call fcn.10127068
add esp, 4
mov dword [esp + 0x108], eax
lea ecx, [esp + 0x110]
mov dword [esp + 0x110], 0
mov dword [esp + 0x114], 0
mov dword [eax], eax
push eax
push 0x10
mov dword [eax + 4], eax
mov dword [esp + 0x120], 0
mov dword [esp + 0x124], 7
mov dword [esp + 0x128], 8
mov dword [esp + 0x10c], 0x3f800000
call fcn.1001e3b0
push 0xd8
mov dword [esp + 0x130], 0
call fcn.10127068
add esp, 4
mov dword [esp + 0x128], eax
lea ecx, [esp + 0x130]
mov dword [esp + 0x130], 0
mov dword [esp + 0x134], 0
mov dword [eax], eax
push eax
push 0x10
mov dword [eax + 4], eax
mov dword [esp + 0x140], 0
mov dword [esp + 0x144], 7
mov dword [esp + 0x148], 8
mov dword [esp + 0x12c], 0x3f800000
call fcn.1001e3b0
push 0x130
mov dword [esp + 0x150], 0
call fcn.10127068
add esp, 4
mov dword [esp + 0x148], eax
lea ecx, [esp + 0x150]
mov dword [esp + 0x150], 0
mov dword [esp + 0x154], 0
mov dword [eax], eax
push eax
push 0x10
mov dword [eax + 4], eax
mov dword [esp + 0x160], 0
mov dword [esp + 0x164], 7
mov dword [esp + 0x168], 8
mov dword [esp + 0x14c], 0x3f800000
call fcn.1001e3b0
push 0xc0
mov dword [esp + 0x170], 0
call fcn.10127068
add esp, 4
mov dword [eax], eax
mov dword [eax + 4], eax
push eax
push 0x10
lea ecx, [esp + 0x178]
mov dword [esp + 0x170], eax
mov dword [esp + 0x178], 0
mov dword [esp + 0x17c], 0
mov dword [esp + 0x180], 0
mov dword [esp + 0x184], 7
mov dword [esp + 0x188], 8
mov dword [esp + 0x16c], 0x3f800000
call fcn.1001e3b0
push 0xc0
mov dword [esp + 0x190], 0
call fcn.10127068
add esp, 4
mov dword [esp + 0x188], eax
lea ecx, [esp + 0x190]
mov dword [esp + 0x190], 0
mov dword [esp + 0x194], 0
mov dword [eax], eax
push eax
push 0x10
mov dword [eax + 4], eax
mov dword [esp + 0x1a0], 0
mov dword [esp + 0x1a4], 7
mov dword [esp + 0x1a8], 8
mov dword [esp + 0x18c], 0x3f800000
call fcn.1001e3b0
mov ecx, dword [0x10190fc4]
lea eax, [esp + 0xc0]
push eax
lea ecx, [ecx + 0x131c]
call fcn.100174d0
lea ecx, [esp + 0xc0]
call fcn.10006920
inc ebx
jmp 0x100cb6e7
movaps xmm0, xmmword [0x10180780]
push 1
sub esp, 0x18
mov word [esp + 0xdc], 0
mov ecx, esp
mov byte [esp + 0xde], 0
movups xmmword [esp + 0xe0], xmm0
mov dword [esp + 0xf0], 0x3f800000
xorps xmm0, xmm0
mov dword [esp + 0xf4], 0x3f800000
movups xmmword [ecx], xmm0
mov dword [ecx + 0x10], 4
mov dword [ecx + 0x14], 0xf
mov eax, dword [str.zoom]
mov dword [ecx], eax
mov byte [ecx + 4], 0
lea ecx, [esp + 0x120]
mov dword [esp + 0xf8], 0x3f19999a
mov dword [esp + 0xfc], 0
mov dword [esp + 0x100], 0
mov dword [esp + 0x104], 0
mov dword [esp + 0x108], 0
mov word [esp + 0x10c], 0
mov byte [esp + 0x110], 0
mov dword [esp + 0x114], 0
mov dword [esp + 0x118], 0
mov word [esp + 0x11c], 0
call fcn.100b67c0
push 1
sub esp, 0x18
mov byte [esp + 0x144], 0
mov ecx, esp
xorps xmm0, xmm0
movups xmmword [ecx], xmm0
mov dword [ecx + 0x10], 0xb
mov dword [ecx + 0x14], 0xf
movq xmm0, qword [str.thirdperson]
movq qword [ecx], xmm0
movzx eax, word [0x1015b6c4]
mov word [ecx + 8], ax
mov al, byte [0x1015b6c6]
mov byte [ecx + 0xa], al
mov byte [ecx + 0xb], 0
lea ecx, [esp + 0x148]
call fcn.100b67c0
push 1
sub esp, 0x18
mov dword [esp + 0x16c], 0
mov ecx, esp
mov byte [esp + 0x170], 0
xorps xmm0, xmm0
movups xmmword [ecx], xmm0
mov dword [ecx + 0x10], 7
mov dword [ecx + 0x14], 0xf
mov eax, dword [str.freecam]
mov dword [ecx], eax
movzx eax, word [0x1015b6cc]
mov word [ecx + 4], ax
mov al, byte [0x1015b6ce]
mov byte [ecx + 6], al
mov byte [ecx + 7], 0
lea ecx, [esp + 0x174]
call fcn.100b67c0
xorps xmm0, xmm0
mov dword [esp + 0x17c], 2
movups xmmword [esp + 0x184], xmm0
mov byte [esp + 0x180], 0
movaps xmm0, xmmword [0x10180770]
movups xmmword [esp + 0x194], xmm0
mov word [esp + 0x1a4], 0
movaps xmm0, xmmword [0x10180770]
movups xmmword [esp + 0x1a6], xmm0
mov word [esp + 0x1b6], 0
movaps xmm0, xmmword [0x10180770]
movups xmmword [esp + 0x1b8], xmm0
mov word [esp + 0x1c8], 0
movaps xmm0, xmmword [0x10180730]
movups xmmword [esp + 0x1ca], xmm0
mov dword [esp + 0x1da], 0x3f19999a
movaps xmm0, xmmword [0x10180740]
mov word [esp + 0x1de], 0
movups xmmword [esp + 0x1e0], xmm0
mov dword [esp + 0x1f0], 0x3f19999a
lea eax, [esp + 0x288]
xorps xmm0, xmm0
mov dword [esp + 0x1f4], 0
movups xmmword [esp + 0x1f8], xmm0
push 0x100
movaps xmm0, xmmword [0x10180880]
movups xmmword [esp + 0x21c], xmm0
push 0
movaps xmm0, xmmword [0x10180820]
movups xmmword [esp + 0x230], xmm0
push eax
movaps xmm0, xmmword [0x10180790]
mov dword [esp + 0x214], 0
mov dword [esp + 0x218], 0xf
mov byte [esp + 0x204], 0
mov byte [esp + 0x21c], 0
mov word [esp + 0x220], 0
mov dword [esp + 0x244], 0x3f800000
mov dword [esp + 0x248], 0x3f19999a
mov dword [esp + 0x24c], 0
mov dword [esp + 0x250], 0
mov dword [esp + 0x254], 0
mov dword [esp + 0x258], 0
mov dword [esp + 0x25c], 0
mov dword [esp + 0x260], 0
mov dword [esp + 0x264], 0x3f19999a
mov dword [esp + 0x268], 0
movups xmmword [esp + 0x26c], xmm0
mov dword [esp + 0x27c], 0x3f000000
mov dword [esp + 0x280], 0x3f19999a
mov dword [esp + 0x284], 0
mov dword [esp + 0x288], 0x40800000
mov dword [esp + 0x28c], 0
mov dword [esp + 0x290], 0
call fcn.10128f30
movaps xmm0, xmmword [0x10180840]
add esp, 0xc
movups xmmword [esp + 0x389], xmm0
mov byte [esp + 0x388], 0
movaps xmm0, xmmword [0x101806e0]
movups xmmword [esp + 0x39f], xmm0
mov dword [esp + 0x399], 0x3f19999a
movaps xmm0, xmmword [0x10180700]
movups xmmword [esp + 0x3b5], xmm0
mov word [esp + 0x39d], 0
movaps xmm0, xmmword [0x101806e0]
movups xmmword [esp + 0x3cc], xmm0
mov dword [esp + 0x3af], 0x3f19999a
movaps xmm0, xmmword [0x101806f0]
movups xmmword [esp + 0x3e1], xmm0
mov word [esp + 0x3b3], 0
movaps xmm0, xmmword [0x10180710]
movups xmmword [esp + 0x3f6], xmm0
mov dword [esp + 0x3c5], 0x3f19999a
xorps xmm0, xmm0
mov word [esp + 0x3c9], 0
movups xmmword [esp + 0x414], xmm0
mov byte [esp + 0x3cb], 0
movaps xmm0, xmmword [0x10180860]
movups xmmword [esp + 0x424], xmm0
mov dword [esp + 0x3dc], 0x3f19999a
movaps xmm0, xmmword [0x10180870]
movups xmmword [esp + 0x43c], xmm0
mov byte [esp + 0x3e0], 0
movaps xmm0, xmmword [0x10180750]
mov dword [esp + 0x3f1], 0x3f19999a
mov byte [esp + 0x3f5], 0
mov dword [esp + 0x406], 0x3f19999a
mov word [esp + 0x40a], 0
mov byte [esp + 0x40c], 0
mov dword [esp + 0x410], 0
mov dword [esp + 0x434], 0x3f19999a
mov dword [esp + 0x438], 0
mov dword [esp + 0x44c], 0x3e800000
mov dword [esp + 0x450], 0x3f19999a
mov dword [esp + 0x454], 0x10000
mov dword [esp + 0x458], 0x64
mov dword [esp + 0x45c], 0x64
mov byte [esp + 0x460], 0
mov ecx, dword [0x10190fc4]
lea eax, [esp + 0xc0]
movups xmmword [esp + 0x461], xmm0
push eax
movaps xmm0, xmmword [0x10180830]
movups xmmword [esp + 0x47a], xmm0
lea ecx, [ecx + 0x1400]
mov dword [esp + 0x475], 0x3f19999a
movaps xmm0, xmmword [0x10180780]
movups xmmword [esp + 0x48f], xmm0
mov byte [esp + 0x479], 0
movaps xmm0, xmmword [0x10180750]
movups xmmword [esp + 0x4a5], xmm0
mov dword [esp + 0x48a], 0x3f19999a
movaps xmm0, xmmword [0x10180830]
movups xmmword [esp + 0x4ba], xmm0
mov byte [esp + 0x48e], 0
movaps xmm0, xmmword [0x10180780]
movups xmmword [esp + 0x4cf], xmm0
mov dword [esp + 0x49f], 0x3f19999a
movaps xmm0, xmmword [0x10180860]
mov word [esp + 0x4a3], 0
mov dword [esp + 0x4b5], 0x3f19999a
mov byte [esp + 0x4b9], 0
mov dword [esp + 0x4ca], 0x3f19999a
mov byte [esp + 0x4ce], 0
mov dword [esp + 0x4df], 0x3f19999a
mov byte [esp + 0x4e3], 0
movups xmmword [esp + 0x4e4], xmm0
mov dword [esp + 0x4f4], 0x3f19999a
mov dword [esp + 0x4f8], 0
call fcn.10017790
lea ecx, [esp + 0xc0]
call fcn.10007400
inc ebx
jmp 0x100cb6e7
push 0x1950
lea eax, [esp + 0xc4]
push 0
push eax
call fcn.10128f30
add esp, 0xc
lea ecx, [esp + 0xc0]
mov edx, 0x24
call fcn.10022990
push 0x1950
lea eax, [esp + 0xc4]
push eax
mov eax, dword [0x10190fc4]
add eax, 0x1838
push eax
call fcn.101289b0
mov eax, dword [0x10190fcc]
add esp, 0xc
mov ecx, dword [eax + 8]
push str.cl_fullupdate
mov eax, dword [ecx]
mov eax, dword [eax + 0x3c]
call eax
mov eax, dword [eax + 0x18]
call eax
mov byte [0x1019c2e0], 1
inc ebx
jmp 0x100cb6e7
push 0x30
lea eax, [esp + 0x38]
mov dword [esp + 0x34], 0x64
push 0
push eax
call fcn.10128f30
movaps xmm0, xmmword [0x10180640]
add esp, 0xc
movaps xmm1, xmmword [0x10180640]
inc ebx
movups xmmword [esp + 0x34], xmm0
movaps xmm0, xmmword [0x10180640]
movups xmmword [esp + 0x44], xmm0
movups xmm0, xmmword [esp + 0x30]
movups xmmword [esp + 0x54], xmm1
movups xmmword [str.ddddddddddddd], xmm0
movups xmm0, xmmword [esp + 0x40]
psrldq xmm1, 0xc
movups xmmword [0x101903d8], xmm0
movups xmm0, xmmword [esp + 0x50]
movd dword [0x101903f8], xmm1
movups xmmword [0x101903e8], xmm0
jmp 0x100cb6e7
inc ebx
cmp ebx, 0x10
jl 0x100cb6e7
jmp 0x100cc625
lea ecx, [esp + 0xc0]
call fcn.10004ea0
mov ecx, dword [0x10190fc4]
lea eax, [esp + 0xc0]
push eax
lea ecx, [ecx + 0x3188]
call fcn.10017d80
lea ecx, [esp + 0xc0]
call fcn.10007550
mov cl, 1
call fcn.100d4a20
mov esi, dword [0x1019c5c0]
mov eax, dword [esi + 0x1b94]
cmp dword [esi + 0x1cf8], eax
jne 0x100cc649
mov dword [esi + 0x1df8], eax
mov dword [esi + 0x1dfc], 2
test dword [eax + 8], 0x1000000
je 0x100cc659
mov byte [esi + 0x1b46], 1
call fcn.100f4c80
mov byte [esi + 0x1b46], 0
cmp dword [0x10190a40], 0xffffffff
je 0x100ccbbb
push 0
lea edx, [esp + 0x10]
mov dword [esp + 0x10], 0x42c80000
mov ecx, str.Load_selected
mov dword [esp + 0x14], 0x41c80000
call fcn.101055e0
test al, al
je 0x100cc6eb
mov eax, dword [0x10190a40]
mov ecx, dword [0x10190fc4]
lea edx, [eax + eax*2]
mov eax, dword [ecx + 0x3624]
cmp dword [eax + edx*8 + 0x14], 0xf
lea edx, [eax + edx*8]
jbe 0x100cc6b6
mov edx, dword [edx]
movzx eax, byte [0x1019c414]
push eax
push edx
call fcn.1000d900
mov eax, dword [0x10190fcc]
push str.cl_fullupdate
mov ecx, dword [eax + 8]
mov eax, dword [ecx]
mov eax, dword [eax + 0x3c]
call eax
mov eax, dword [eax + 0x18]
call eax
mov cl, 1
mov byte [0x1019c2e0], 1
call fcn.100d4a20
push 0
lea edx, [esp + 0x10]
mov dword [esp + 0x10], 0x42c80000
mov ecx, str.Save_selected
mov dword [esp + 0x14], 0x41c80000
call fcn.101055e0
test al, al
je 0x100cc75d
mov esi, dword [0x1019c5c0]
xor edx, edx
mov eax, dword [esi + 0x1b94]
mov ecx, dword [eax + 0xc0]
mov eax, dword [eax + 0xc8]
push dword [eax + ecx*4 - 4]
mov ecx, str.reallySave
call fcn.100e9b80
cmp dword [esi + 0x1bc8], eax
jne 0x100cc745
mov dword [esi + 0x1bcc], eax
cmp dword [esi + 0x1c04], eax
jne 0x100cc754
mov byte [esi + 0x1c08], 1
xor edx, edx
mov ecx, eax
call fcn.100f6840
mov esi, dword [0x1019c5c0]
mov eax, dword [esi + 0x1cd4]
cmp eax, dword [esi + 0x1ce0]
jg 0x100cc780
mov dword [esi + 0x1c18], 0
jmp 0x100cc894
mov eax, dword [esi + 0x1b94]
mov ecx, str.reallySave
mov edx, dword [eax + 0xc0]
mov eax, dword [eax + 0xc8]
push dword [eax + edx*4 - 4]
xor edx, edx
call fcn.100e9b80
cmp dword [esi + 0x1bc8], eax
jne 0x100cc7b0
mov dword [esi + 0x1bcc], eax
cmp dword [esi + 0x1c04], eax
jne 0x100cc7bf
mov byte [esi + 0x1c08], 1
mov edx, 0x141
mov ecx, eax
call fcn.100f6b80
test al, al
je 0x100cc894
push 1
xor edx, edx
mov ecx, str.Are_you_sure_
call fcn.10104710
push 0
lea edx, [esp + 0x10]
mov dword [esp + 0x10], 0x42340000
mov ecx, 0x101786f4
mov dword [esp + 0x14], 0
call fcn.101055e0
test al, al
je 0x100cc80a
call fcn.100f6af0
movss xmm1, dword [0x1018049c]
xorps xmm0, xmm0
call fcn.100f5940
push 0
lea edx, [esp + 0x10]
mov dword [esp + 0x10], 0x42340000
mov ecx, 0x10178718
mov dword [esp + 0x14], 0
call fcn.101055e0
test al, al
je 0x100cc854
push dword [0x10190a40]
mov ecx, dword [0x10190fc4]
call fcn.10015200
call fcn.100f6af0
mov esi, dword [0x1019c5c0]
mov eax, dword [esi + 0x1b94]
cmp dword [esi + 0x1cf8], eax
jne 0x100cc878
mov dword [esi + 0x1df8], eax
mov dword [esi + 0x1dfc], 2
test dword [eax + 8], 0x1000000
je 0x100cc888
mov byte [esi + 0x1b46], 1
call fcn.100f4c80
mov byte [esi + 0x1b46], 0
push 0
lea edx, [esp + 0x10]
mov dword [esp + 0x10], 0x42c80000
mov ecx, str.Delete_selected
mov dword [esp + 0x14], 0x41c80000
call fcn.101055e0
test al, al
je 0x100cc906
mov esi, dword [0x1019c5c0]
xor edx, edx
mov eax, dword [esi + 0x1b94]
mov ecx, dword [eax + 0xc0]
mov eax, dword [eax + 0xc8]
push dword [eax + ecx*4 - 4]
mov ecx, str.reallyDelete
call fcn.100e9b80
cmp dword [esi + 0x1bc8], eax
jne 0x100cc8ee
mov dword [esi + 0x1bcc], eax
cmp dword [esi + 0x1c04], eax
jne 0x100cc8fd
mov byte [esi + 0x1c08], 1
xor edx, edx
mov ecx, eax
call fcn.100f6840
mov esi, dword [0x1019c5c0]
mov eax, dword [esi + 0x1cd4]
cmp eax, dword [esi + 0x1ce0]
jg 0x100cc929
mov dword [esi + 0x1c18], 0
jmp 0x100ccbbb
mov eax, dword [esi + 0x1b94]
mov ecx, str.reallyDelete
mov edx, dword [eax + 0xc0]
mov eax, dword [eax + 0xc8]
push dword [eax + edx*4 - 4]
xor edx, edx
call fcn.100e9b80
cmp dword [esi + 0x1bc8], eax
jne 0x100cc959
mov dword [esi + 0x1bcc], eax
cmp dword [esi + 0x1c04], eax
jne 0x100cc968
mov byte [esi + 0x1c08], 1
mov edx, 0x141
mov ecx, eax
call fcn.100f6b80
test al, al
je 0x100ccbbb
push 1
xor edx, edx
mov ecx, str.Are_you_sure_
call fcn.10104710
push 0
lea edx, [esp + 0x10]
mov dword [esp + 0x10], 0x42340000
mov ecx, 0x101786f4
mov dword [esp + 0x14], 0
call fcn.101055e0
test al, al
je 0x100cc9b3
call fcn.100f6af0
movss xmm1, dword [0x1018049c]
xorps xmm0, xmm0
call fcn.100f5940
push 0
lea edx, [esp + 0x10]
mov dword [esp + 0x10], 0x42340000
mov ecx, 0x10178718
mov dword [esp + 0x14], 0
call fcn.101055e0
test al, al
je 0x100ccb7b
mov eax, dword [0x10190a40]
mov ebx, dword [0x10190fc4]
mov dword [esp + 0x14], ebx
lea eax, [eax + eax*2]
mov esi, dword [ebx + 0x3624]
shl eax, 3
add esi, eax
mov dword [esp + 0xc], eax
cmp dword [esi + 0x14], 0xf
jbe 0x100cca14
mov esi, dword [esi]
mov ecx, esi
lea edi, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100cca20
sub ecx, edi
mov edx, 0xfde9
push ecx
push esi
lea ecx, [esp + 0x38]
call fcn.100033d0
lea eax, [ebx + 0x360c]
push eax
lea ecx, [esp + 0x1c]
call fcn.1001ae80
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0x1c]
call fcn.100035d0
cmp dword [esp + 0x2c], 7
lea eax, [esp + 0x18]
cmova eax, dword [esp + 0x18]
push eax
call fcn.10125817
lea ecx, [esp + 0x18]
call fcn.1001d240
lea ecx, [esp + 0x30]
call fcn.1001d240
mov edi, dword [ebx + 0x3624]
add edi, dword [esp + 0xc]
mov eax, dword [ebx + 0x3628]
lea esi, [edi + 0x18]
cmp esi, eax
je 0x100ccab4
sub edi, esi
mov ebx, eax
nop dword [eax + eax]
push esi
lea ecx, [edi + esi]
call fcn.1001b060
add esi, 0x18
cmp esi, ebx
jne 0x100ccaa0
mov ebx, dword [esp + 0x14]
mov esi, dword [ebx + 0x3628]
mov ecx, dword [esi - 4]
cmp ecx, 0xf
jbe 0x100ccaee
mov eax, dword [esi - 0x18]
inc ecx
cmp ecx, 0x1000
jb 0x100ccae4
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100ccbf6
mov eax, edx
push ecx
push eax
call fcn.10127383
add esp, 8
mov ecx, dword [esp + 0xa4]
mov eax, 0x2aaaaaab
mov dword [esi - 8], 0
mov dword [esi - 4], 0xf
mov byte [esi - 0x18], 0
add dword [ebx + 0x3628], 0xffffffe8
mov esi, dword [ecx]
mov ecx, dword [ecx + 4]
sub ecx, esi
imul ecx
mov ecx, dword [0x10190a40]
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ecx, eax
jae 0x100ccb56
lea eax, [ecx + ecx*2]
lea eax, [esi + eax*8]
cmp eax, 0x10190650
je 0x100ccb76
cmp dword [eax + 0x14], 0xf
mov edx, dword [eax + 0x10]
jbe 0x100ccb48
mov eax, dword [eax]
push edx
push eax
mov ecx, 0x10190650
call fcn.1001d2a0
jmp 0x100ccb76
cmp dword [0x10190664], 0xf
mov eax, 0x10190650
mov dword [0x10190660], 0
cmova eax, dword [0x10190650]
mov byte [eax], 0
call fcn.100f6af0
mov esi, dword [0x1019c5c0]
mov eax, dword [esi + 0x1b94]
cmp dword [esi + 0x1cf8], eax
jne 0x100ccb9f
mov dword [esi + 0x1df8], eax
mov dword [esi + 0x1dfc], 2
test dword [eax + 8], 0x1000000
je 0x100ccbaf
mov byte [esi + 0x1b46], 1
call fcn.100f4c80
mov byte [esi + 0x1b46], 0
mov ecx, dword [0x1019c5c0]
mov eax, dword [ecx + 0x1b94]
mov byte [eax + 0x8c], 1
mov eax, dword [ecx + 0x1b94]
mov eax, dword [eax + 0x198]
test eax, eax
je 0x100ccbef
cmp dword [eax + 0x10], 1
jne 0x100ccbea
cmp dword [eax + 4], 0
je 0x100ccbef
call fcn.100b60c0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.1012fd0a
nop
aas
mov bh, 12
adc byte [edi - 0x49], dh
or al, 0x10
adc bh, byte [eax - 0x47a7eff4]
or al, 16
test eax, 0xc7100cb8
mov ecx, -1160769524
or al, 0x10
add byte [ebx - 0x44b5eff4], bh
or al, 16
aam 0xbb
or al, 16
fistp qword [ebx - 0x43f6eff4]
or al, 16
movsx ecx, word [eax + edx]
inc esp
or al, 16
insd dword es:[edi], dx
lds ecx, [eax + edx]
in eax, dx
lds ecx, [eax + edx]
int3