Function at 0x100a28b0
Capabilities:
Encode data using xor

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10101d33
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0xd8
mov eax, dword [0x1017b040]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
xorps xmm0, xmm0
mov dword [ebp - 0x30], 0
xor eax, eax
movq qword [ebp - 0x38], xmm0
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x34], 0
mov dword [ebp - 0xcc], eax
mov dword [ebp - 0x30], eax
xor edi, edi
mov dword [ebp - 4], eax
movq qword [ebp - 0x4c], xmm0
mov dword [ebp - 0x44], eax
mov dword [ebp - 0xd0], edi
mov dword [ebp - 0x4c], edi
mov dword [ebp - 0x48], edi
mov dword [ebp - 0xdc], eax
mov dword [ebp - 0x44], eax
mov byte [ebp - 4], 1
call dword [0x1010518c]
mov dword [ebp - 0xc8], eax
xor esi, esi
mov edi, eax
nop
push 0
push 0
push esi
push 0
call dword [0x1010534c]
mov esi, eax
mov dword [ebp - 0x5c], 0
lea eax, [ebp - 0x5c]
mov dword [ebp - 0xc8], esi
push eax
push esi
call dword [0x10105340]
mov eax, dword [ebp - 0x34]
cmp edi, dword [ebp - 0x5c]
jne 0x100a29ad
cmp eax, dword [ebp - 0xcc]
je 0x100a2991
mov dword [eax], esi
add eax, 4
mov dword [ebp - 0x34], eax
jmp 0x100a29ad
lea ecx, [ebp - 0xc8]
push ecx
push eax
lea ecx, [ebp - 0x38]
call fcn.10014480
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0xcc], eax
mov eax, dword [ebp - 0x34]
test esi, esi
jne 0x100a2950
mov ecx, dword [ebp - 0x38]
mov esi, ecx
mov edi, dword [ebp - 0xd0]
mov dword [ebp - 0xc8], ecx
mov dword [ebp - 0xd0], ecx
cmp esi, eax
je 0x100a2b48
mov eax, dword [esi]
lea ecx, [ebp - 0xc4]
mov edx, eax
mov dword [ebp - 0xe8], eax
mov dword [ebp - 0xd4], eax
call fcn.100a25e0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0xc4]
cmp dword [ebp - 0xb0], 0xf
mov edx, dword [ebp - 0xc4]
mov eax, dword [ebp - 0xb4]
cmova ecx, edx
mov dword [ebp - 0xd8], edx
mov dword [ebp - 0xe4], ecx
cmp eax, 0xf
jb 0x100a2af9
add eax, 0xfffffff2
add eax, ecx
mov dword [ebp - 0xe0], eax
sub eax, ecx
push eax
push 0x54
push ecx
call fcn.100fe096
mov edi, eax
add esp, 0xc
test edi, edi
je 0x100a2af3
mov edx, edi
mov ecx, str.TXGuiFoundation
mov esi, 0xb
nop
mov eax, dword [edx]
cmp eax, dword [ecx]
jne 0x100a2a61
add edx, 4
add ecx, 4
sub esi, 4
jae 0x100a2a50
mov al, byte [edx]
cmp al, byte [ecx]
jne 0x100a2a88
mov al, byte [edx + 1]
cmp al, byte [ecx + 1]
jne 0x100a2a88
mov al, byte [edx + 2]
cmp al, byte [ecx + 2]
jne 0x100a2a88
cmp esi, 0xffffffff
je 0x100a2a84
mov al, byte [edx + 3]
cmp al, byte [ecx + 3]
jne 0x100a2a88
xor eax, eax
jmp 0x100a2a8d
sbb eax, eax
or eax, 1
test eax, eax
je 0x100a2aae
mov eax, dword [ebp - 0xe0]
inc edi
sub eax, edi
push eax
push 0x54
push edi
call fcn.100fe096
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x100a2a43
jmp 0x100a2aed
sub edi, dword [ebp - 0xe4]
cmp edi, 0xffffffff
je 0x100a2aed
mov eax, dword [ebp - 0x48]
cmp eax, dword [ebp - 0xdc]
je 0x100a2ad4
mov ecx, dword [ebp - 0xe8]
mov dword [eax], ecx
add eax, 4
mov dword [ebp - 0x48], eax
jmp 0x100a2aed
lea ecx, [ebp - 0xd4]
push ecx
push eax
lea ecx, [ebp - 0x4c]
call fcn.10014480
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0xdc], eax
mov esi, dword [ebp - 0xd0]
mov edx, dword [ebp - 0xd8]
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0xb0]
cmp eax, 0xf
jbe 0x100a2b33
lea ecx, [eax + 1]
mov eax, edx
cmp ecx, 0x1000
jb 0x100a2b29
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100a33d3
push ecx
push edx
call fcn.100fcd67
add esp, 8
add esi, 4
mov dword [ebp - 0xd0], esi
cmp esi, dword [ebp - 0x34]
jne 0x100a29d0
mov edi, dword [ebp - 0x4c]
mov esi, edi
cmp esi, dword [ebp - 0x48]
je 0x100a2b78
nop
push 0
push str.AEngineRenderWindowClass
push 0
push dword [esi]
call dword [0x10105344]
mov dword [0x101ac4d4], eax
test eax, eax
jne 0x100a2c47
add esi, 4
cmp esi, dword [ebp - 0x48]
jne 0x100a2b50
jmp 0x100a2b7d
mov eax, dword [0x101ac4d4]
test eax, eax
jne 0x100a2c47
push 0x10
push 0x1011225f
push str.Cant_find_gameloop_window__click_OK_to_try_again_
push eax
call dword [0x101053d0]
push 0x7d0
call dword [0x101050dc]
mov byte [ebp - 4], 0
test edi, edi
je 0x100a2bfa
mov eax, dword [ebp - 0xdc]
sub eax, edi
sar eax, 2
lea ecx, [eax*4]
mov eax, edi
cmp ecx, 0x1000
jb 0x100a2bdb
mov edi, dword [eax - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100a33d3
push ecx
push edi
call fcn.100fcd67
add esp, 8
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 0
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0xc8]
test edx, edx
je 0x100a28f1
mov ecx, dword [ebp - 0xcc]
mov eax, edx
sub ecx, edx
and ecx, 0xfffffffc
cmp ecx, 0x1000
jb 0x100a2c38
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100a33d3
push ecx
push edx
call fcn.100fcd67
add esp, 8
jmp 0x100a28f1
mov byte [ebp - 4], 0
test edi, edi
je 0x100a2c89
mov eax, dword [ebp - 0xdc]
sub eax, edi
sar eax, 2
lea ecx, [eax*4]
mov eax, edi
cmp ecx, 0x1000
jb 0x100a2c7f
mov edi, dword [eax - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100a33d3
push ecx
push edi
call fcn.100fcd67
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0xc8]
test edx, edx
je 0x100a2cd4
mov eax, dword [ebp - 0xcc]
sub eax, edx
sar eax, 2
lea ecx, [eax*4]
mov eax, edx
cmp ecx, 0x1000
jb 0x100a2cca
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100a33d3
push ecx
push edx
call fcn.100fcd67
add esp, 8
call fcn.100a6da0
call fcn.100a6da0
mov dword [ebp - 0xc8], eax
test eax, eax
jg 0x100a2d0c
nop dword [eax + eax]
push 0x320
call dword [0x101050dc]
call fcn.100a6da0
mov esi, eax
mov dword [ebp - 0xc8], esi
test esi, esi
jle 0x100a2cf0
lea eax, [ebp - 0xac]
push eax
push dword [0x101ac4d4]
call dword [0x10105348]
mov eax, dword [ebp - 0xa4]
lea ecx, [ebp - 0x58]
sub eax, dword [ebp - 0xac]
mov dword [0x101ab9dc], eax
mov eax, dword [ebp - 0xa0]
sub eax, dword [ebp - 0xa8]
mov dword [0x101ab9d8], eax
mov eax, dword [0x101ac4d4]
mov dword [0x101ab9d4], eax
call fcn.10092cc0
mov edi, eax
mov dword [ebp - 4], 3
mov edx, dword [edi + 0x14]
mov eax, edx
mov ecx, dword [edi + 0x10]
sub eax, ecx
cmp eax, 0xa
jb 0x100a2d93
lea eax, [ecx + 0xa]
mov dword [edi + 0x10], eax
mov eax, edi
cmp edx, 0xf
jbe 0x100a2d7a
mov eax, dword [edi]
push 0xa
lea esi, [eax + ecx]
push str.FFont.ttf
push esi
call fcn.100fe090
add esp, 0xc
mov byte [esi + 0xa], 0
jmp 0x100a2db2
push 0xa
push str.FFont.ttf
mov byte [ebp - 0xd4], 0
mov ecx, edi
push dword [ebp - 0xd4]
push 0xa
call fcn.1000a5e0
mov edi, eax
mov dword [ebp - 0x64], 0
xorps xmm0, xmm0
movups xmmword [ebp - 0x74], xmm0
mov dword [ebp - 0x60], 0
movups xmm0, xmmword [edi]
movups xmmword [ebp - 0x74], xmm0
movq xmm0, qword [edi + 0x10]
movq qword [ebp - 0x64], xmm0
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 0xf
mov byte [edi], 0
mov byte [ebp - 4], 5
mov ecx, dword [ebp - 0x44]
cmp ecx, 0xf
jbe 0x100a2e23
mov edx, dword [ebp - 0x58]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100a2e19
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x100a2e19
call dword [0x101055d0]
push ecx
push edx
call fcn.100fcd67
add esp, 8
cmp dword [ebp - 0x60], 0xf
lea eax, [ebp - 0x74]
push 0x10170c54
cmova eax, dword [ebp - 0x74]
push eax
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 0xf
mov byte [ebp - 0x58], 0
call dword [0x10105618]
add esp, 8
test eax, eax
je 0x100a2e62
push eax
call dword [0x1010560c]
add esp, 4
jmp 0x100a3021
cmp dword [ebp - 0x60], 0xf
lea esi, [ebp - 0x74]
movups xmm0, xmmword [str.CLII]
movups xmmword [ebp - 0x9c], xmm0
movups xmm0, xmmword [0x10170d28]
movups xmmword [ebp - 0x8c], xmm0
movq xmm0, qword [str.99_w._:__LMJH]
movq qword [ebp - 0x7c], xmm0
jbe 0x100a2e97
mov esi, dword [ebp - 0x74]
xor edx, edx
cmp dword [0x101ab6b0], 2
mov dword [ebp - 0xcc], edx
jl 0x100a2fd0
movaps xmm0, xmmword [0x101719b0]
xor ecx, ecx
movaps xmm4, xmmword [0x101717f0]
movaps xmm3, xmmword [0x10171fa0]
movaps xmm5, xmmword [0x10171860]
movaps xmm6, xmmword [0x10171900]
movaps xmmword [ebp - 0x40], xmm0
mov edx, dword [ebp - 0x40]
nop dword [eax + eax]
movd xmm0, ecx
lea eax, [ecx + 4]
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
movaps xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
movd xmm0, edx
andps xmm2, xmm6
packuswb xmm2, xmm2
packuswb xmm2, xmm2
paddb xmm2, xmm0
movd xmm0, dword [ebp + ecx - 0x9c]
xorps xmm2, xmm0
movd xmm0, eax
movd dword [ebp + ecx - 0x9c], xmm2
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
movaps xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
movd xmm0, edx
andps xmm2, xmm6
packuswb xmm2, xmm2
packuswb xmm2, xmm2
paddb xmm2, xmm0
movd xmm0, dword [ebp + ecx - 0x98]
xorps xmm2, xmm0
movd dword [ebp + ecx - 0x98], xmm2
add ecx, 8
cmp ecx, 0x28
jl 0x100a2ee0
jmp 0x100a300d
mov eax, 0x8d3dcb09
imul edx
add edx, dword [ebp - 0xcc]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0xcc]
movsx eax, al
mov cl, dl
imul eax, eax, 0x3a
sub cl, al
add cl, 0x36
xor byte [ebp + edx - 0x9c], cl
inc edx
mov dword [ebp - 0xcc], edx
cmp edx, 0x28
jl 0x100a2fd0
push 0
push 0
push esi
lea eax, [ebp - 0x9c]
push eax
push 0
call dword [0x101056b4]
mov edi, dword [ebp - 0xc8]
mov esi, dword [0x101051a8]
push edi
push 0
push 0x1fffff
call esi
push 0x64
mov dword [0x101ab9d0], eax
call dword [0x101050dc]
lea ecx, [ebp - 0x8c]
call fcn.100a2390
push edi
mov dword [ebp - 0x40], 0x8fe9514
mov dword [ebp - 0x3c], 0x8c5e224
mov dword [ebp - 0x38], 0x8fd0830
mov dword [ebp - 0x34], 0x5bcc908
movups xmm0, xmmword [ebp - 0x40]
push 0
mov byte [ebp - 0x30], 0x52
mov eax, dword [ebp - 0x30]
push 0x1fffff
movups xmmword [0x101ac4dc], xmm0
mov dword [0x101ac4ec], eax
call esi
xorps xmm0, xmm0
mov dword [ebp - 0x30], 0
movq qword [ebp - 0x38], xmm0
mov dword [0x101ab9d0], eax
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0
lea eax, [ebp - 0x38]
mov byte [ebp - 4], 7
push eax
push 1
push ecx
push bind
push 0x50000000
mov edx, 0x40
mov ecx, 0x101aa688
call fcn.100a6ed0
mov eax, dword [ebp - 0x34]
add esp, 0x14
mov ecx, dword [ebp - 0x38]
sub eax, ecx
sar eax, 2
test eax, eax
je 0x100a3123
mov esi, dword [ecx]
mov eax, ecx
mov byte [ebp - 4], 6
mov edx, dword [ebp - 0x30]
sub edx, ecx
and edx, 0xfffffffc
cmp edx, 0x1000
jb 0x100a3117
mov ecx, dword [eax - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100a33d3
push edx
push ecx
call fcn.100fcd67
add esp, 8
jmp 0x100a315d
mov byte [ebp - 4], 6
test ecx, ecx
je 0x100a315b
mov edx, dword [ebp - 0x30]
mov eax, ecx
sub edx, ecx
and edx, 0xfffffffc
cmp edx, 0x1000
jb 0x100a3151
mov ecx, dword [eax - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100a33d3
push edx
push ecx
call fcn.100fcd67
add esp, 8
xor esi, esi
mov eax, dword [0x101ac4e4]
push 0
push 0
push 0
push 0x10041120
add eax, esi
mov dword [0x101ab830], esi
mov esi, dword [0x10105104]
push 0
push 0
mov dword [0x101ab860], eax
call esi
push 0
push 0
push 0
push 0x1003e430
push 0
mov edi, eax
push 0
mov dword [ebp - 0xd4], edi
call esi
push 0
push 0
push 0
push 0x1003e640
push 0
push 0
mov dword [0x101ab9cc], eax
call esi
push 0
push 0
push 0
push 0x1003f480
push 0
push 0
mov dword [0x101ab9b8], eax
call esi
push 0
push 0
push 0
push 0x10041030
push 0
push 0
mov dword [0x101ab9c8], eax
call esi
push 0
push 0
push 0
push 0x10019270
push 0
push 0
mov dword [0x101ab9bc], eax
call esi
push 0
push 0
push 0
push 0x10019250
push 0
push 0
mov dword [0x101ab9c0], eax
call esi
mov dword [0x101ab9c4], eax
mov eax, dword [0x101abd10]
cmp eax, dword [0x101abd14]
je 0x100a3232
mov dword [eax], edi
mov ecx, dword [0x101abd10]
add ecx, 4
mov dword [0x101abd10], ecx
jmp 0x100a3245
lea ecx, [ebp - 0xd4]
push ecx
push eax
call fcn.1001a330
mov ecx, dword [0x101abd10]
cmp ecx, dword [0x101abd14]
je 0x100a3265
mov eax, dword [0x101ab9cc]
mov dword [ecx], eax
mov ecx, dword [0x101abd10]
add ecx, 4
mov dword [0x101abd10], ecx
jmp 0x100a3276
push 0x101ab9cc
push ecx
call fcn.1001a330
mov ecx, dword [0x101abd10]
cmp ecx, dword [0x101abd14]
je 0x100a3296
mov eax, dword [0x101ab9b8]
mov dword [ecx], eax
mov ecx, dword [0x101abd10]
add ecx, 4
mov dword [0x101abd10], ecx
jmp 0x100a32a7
push 0x101ab9b8
push ecx
call fcn.1001a330
mov ecx, dword [0x101abd10]
cmp ecx, dword [0x101abd14]
je 0x100a32c7
mov eax, dword [0x101ab9c8]
mov dword [ecx], eax
mov ecx, dword [0x101abd10]
add ecx, 4
mov dword [0x101abd10], ecx
jmp 0x100a32d8
push 0x101ab9c8
push ecx
call fcn.1001a330
mov ecx, dword [0x101abd10]
cmp ecx, dword [0x101abd14]
je 0x100a32f8
mov eax, dword [0x101ab9bc]
mov dword [ecx], eax
mov ecx, dword [0x101abd10]
add ecx, 4
mov dword [0x101abd10], ecx
jmp 0x100a3309
push 0x101ab9bc
push ecx
call fcn.1001a330
mov ecx, dword [0x101abd10]
cmp ecx, dword [0x101abd14]
je 0x100a3329
mov eax, dword [0x101ab9c0]
mov dword [ecx], eax
mov ecx, dword [0x101abd10]
add ecx, 4
mov dword [0x101abd10], ecx
jmp 0x100a333a
push 0x101ab9c0
push ecx
call fcn.1001a330
mov ecx, dword [0x101abd10]
cmp ecx, dword [0x101abd14]
je 0x100a3352
mov eax, dword [0x101ab9c4]
mov dword [ecx], eax
add dword [0x101abd10], 4
jmp 0x100a335d
push 0x101ab9c4
push ecx
call fcn.1001a330
call fcn.100961d0
push 0x100a2860
push 0xfffffffffffffffc
push dword [0x101ac4d4]
call dword [0x101053cc]
mov ecx, dword [ebp - 0x78]
mov dword [0x101ac4d0], eax
cmp ecx, 0xf
jbe 0x100a33ad
mov edx, dword [ebp - 0x8c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100a33a3
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100a33d3
push ecx
push edx
call fcn.100fcd67
add esp, 8
mov ecx, dword [ebp - 0x60]
cmp ecx, 0xf
jbe 0x100a33e3
mov edx, dword [ebp - 0x74]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100a33d9
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x100a33d9
call dword [0x101055d0]
push ecx
push edx
call fcn.100fcd67
add esp, 8
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.100fc92f
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret