Function at 0x10013070
Capabilities:
Encode data using xor
Read file on windows
Terminate process

Disassembly:
mov ecx, 0x1009cfd8
call fcn.10019840
call fcn.10003b20
mov ecx, 0x1009cf50
call fcn.100185d0
push 0
call dword [sym.imp.KERNEL32.dll_SetProcessDEPPolicy]
call fcn.10015300
mov ecx, 0x10092d90
call fcn.10003ab0
mov ecx, 0x1009a0b8
call fcn.100142d0
call fcn.10015700
mov ecx, 0x10092c78
call fcn.10003630
call fcn.1000c350
call fcn.10013a90
call fcn.10015050
call fcn.10018a00
mov ecx, 0x10098940
call fcn.100134a0
mov ecx, 0x1009d318
jmp 0x1001a8c0
push ebp
lea ebp, [esp - 0xcc]
sub esp, 0xcc
push 0xffffffffffffffff
push 0x1006565d
mov eax, dword fs:[0]
push eax
sub esp, 0x68
mov eax, dword [0x1008b880]
xor eax, ebp
mov dword [ebp + 0xc8], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x28], ecx
push 0x1006b26c
push str..DataLocalServerListDisplay.bmd
call fcn.1004ce8f
mov edi, eax
add esp, 8
test edi, edi
jne 0x1001a92e
push 0x10
push 0x1006b294
push str.ServerListDisplay.bmd_file_not_found
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
push edi
call dword [sym.imp.KERNEL32.dll_ExitProcess]
push 2
push 0
push edi
call fcn.1004d4a3
push edi
call fcn.1004db02
push edi
mov esi, eax
call fcn.1004dcc8
push esi
call fcn.10045ee9
push edi
push esi
mov ebx, eax
push 1
push ebx
call fcn.1004d07f
push edi
call fcn.1004cda8
add esp, 0x2c
xor ecx, ecx
test esi, esi
jle 0x1001a983
nop word [eax + eax]
mov eax, ecx
and eax, 0x1f
mov al, byte [eax + 0x1008b71c]
xor byte [ecx + ebx], al
inc ecx
cmp ecx, esi
jl 0x1001a970
lea ecx, [ebp]
call fcn.10040820
push 0
push 0x74
push esi
push ebx
lea eax, [ebp - 0x74]
mov dword [ebp - 4], 0
push eax
lea ecx, [ebp]
call fcn.100413d0
cmp dword [ebp - 0x74], 0
je 0x1001a9c6
push 0x10
push str.Error
push str.ServerListDisplay.bmd_file_corrupted
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
push 0
call dword [sym.imp.KERNEL32.dll_ExitProcess]
mov ebx, dword [ebp - 0x28]
mov ecx, ebx
call fcn.1001a890
push str.ServerListDisplay
lea eax, [ebp - 0x24]
push eax
lea ecx, [ebp]
call fcn.10040da0
push 1
push str.Enable
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0x24]
call fcn.10040d30
mov ecx, eax
call fcn.10040c60
mov byte [ebx + 4], al
lea ecx, [ebp - 0x24]
push str.Server
lea eax, [ebp - 0x10]
push eax
call fcn.10040da0
lea ecx, [ebp - 0x10]
call fcn.10040940
test eax, eax
je 0x1001ad64
nop
push 0x30
call fcn.10045b60
mov edi, eax
mov dword [ebp - 0x1c], eax
add esp, 4
test edi, edi
je 0x1001aa4a
mov dword [edi + 8], 0
mov dword [edi + 0x18], 0
mov dword [edi + 0x1c], 0xf
jmp 0x1001aa4f
xor edi, edi
mov dword [ebp - 0x1c], edi
push 0
push str.Code
lea eax, [ebp - 0x38]
mov dword [ebp - 0x2c], edi
push eax
lea ecx, [ebp - 0x10]
call fcn.10040d30
mov ecx, eax
call fcn.10040ce0
push 0
mov dword [edi], eax
lea ecx, [ebp - 0x10]
push str.Type
lea eax, [ebp - 0x3c]
push eax
call fcn.10040d30
mov ecx, eax
call fcn.10040ce0
push 0
mov byte [edi + 4], al
lea ecx, [ebp - 0x10]
push str.DisplayCode
lea eax, [ebp - 0x40]
push eax
call fcn.10040d30
mov ecx, eax
call fcn.10040c60
push 0
mov byte [edi + 5], al
lea ecx, [ebp - 0x10]
push str.DisplayGroupName
lea eax, [ebp - 0x44]
push eax
call fcn.10040d30
mov ecx, eax
call fcn.10040c60
push 0
mov byte [edi + 6], al
lea ecx, [ebp - 0x10]
push str.DisplayStatusText
lea eax, [ebp - 0x48]
push eax
call fcn.10040d30
mov ecx, eax
call fcn.10040c60
push 0x1006b269
mov byte [edi + 7], al
lea ecx, [ebp - 0x10]
push str.Text
lea eax, [ebp - 0x4c]
push eax
call fcn.10040d30
mov ecx, eax
call fcn.10040d10
mov edx, eax
lea ebx, [edi + 8]
mov esi, edx
mov dword [ebp - 0x30], edx
lea ecx, [esi + 1]
nop dword [eax]
mov al, byte [esi]
inc esi
test al, al
jne 0x1001ab10
sub esi, ecx
mov ecx, dword [ebx + 0x14]
mov dword [ebp - 0x34], ecx
cmp esi, ecx
ja 0x1001ab4c
mov dword [ebp - 0x1c], ebx
mov eax, ebx
cmp ecx, 0x10
jb 0x1001ab32
mov eax, dword [ebx]
mov dword [ebp - 0x1c], eax
push esi
push edx
push eax
mov dword [ebx + 0x10], esi
call fcn.10048580
mov eax, dword [ebp - 0x1c]
add esp, 0xc
mov byte [eax + esi], 0
jmp 0x1001ac22
cmp esi, 0x7fffffff
ja 0x1001ad8f
mov edi, esi
or edi, 0xf
cmp edi, 0x7fffffff
jbe 0x1001ab7a
mov eax, connect
mov edi, closesocket
push eax
call fcn.100017f0
add esp, 4
jmp 0x1001abcc
mov edx, ecx
mov eax, closesocket
shr edx, 1
sub eax, edx
cmp ecx, eax
jbe 0x1001ab9e
mov eax, connect
mov edi, closesocket
push eax
call fcn.100017f0
add esp, 4
jmp 0x1001abcc
lea eax, [edx + ecx]
cmp edi, eax
cmovb edi, eax
lea eax, [edi + 1]
cmp eax, 0x1000
jb 0x1001abbb
push eax
call fcn.100017f0
add esp, 4
jmp 0x1001abcc
test eax, eax
je 0x1001abca
push eax
call fcn.10045b60
add esp, 4
jmp 0x1001abcc
xor eax, eax
push esi
push dword [ebp - 0x30]
mov dword [ebx + 0x14], edi
mov edi, eax
push edi
mov dword [ebp - 0x20], eax
mov dword [ebx + 0x10], esi
call fcn.10048580
mov eax, dword [ebp - 0x34]
add esp, 0xc
mov byte [edi + esi], 0
cmp eax, 0x10
jb 0x1001ac1d
lea ecx, [eax + 1]
mov eax, dword [ebx]
cmp ecx, 0x1000
jb 0x1001ac13
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1001ad94
mov eax, edx
push ecx
push eax
call fcn.10045b90
add esp, 8
mov dword [ebx], edi
mov edi, dword [ebp - 0x1c]
push str.Color
lea eax, [ebp - 0x14]
push eax
lea ecx, [ebp - 0x10]
call fcn.10040da0
lea ecx, [ebp - 0x14]
call fcn.10040940
test eax, eax
je 0x1001ad1c
push 0
push str.State
lea eax, [ebp - 0x50]
push eax
lea ecx, [ebp - 0x14]
call fcn.10040d30
mov ecx, eax
call fcn.10040ce0
mov byte [ebp - 0x16], al
cmp al, 2
ja 0x1001acfb
push 0
push str.RGBA
lea eax, [ebp - 0x54]
push eax
lea ecx, [ebp - 0x14]
call fcn.10040d30
mov ecx, eax
call fcn.10040ce0
push 0
mov byte [ebp - 0x15], al
lea ecx, [ebp - 0x14]
push 0x1006b378
lea eax, [ebp - 0x58]
push eax
call fcn.10040d30
mov ecx, eax
call fcn.10040ce0
push 0
mov bh, al
lea ecx, [ebp - 0x14]
push 0x1006b37c
lea eax, [ebp - 0x5c]
push eax
call fcn.10040d30
mov ecx, eax
call fcn.10040ce0
push 0
mov bl, al
lea ecx, [ebp - 0x14]
push 0x1006b380
lea eax, [ebp - 0x60]
push eax
call fcn.10040d30
mov ecx, eax
call fcn.10040ce0
movzx ecx, al
shl ecx, 8
movzx eax, bl
or ecx, eax
movzx eax, bh
shl ecx, 8
or ecx, eax
movzx eax, byte [ebp - 0x15]
shl ecx, 8
or ecx, eax
movzx eax, byte [ebp - 0x16]
mov dword [edi + eax*4 + 0x20], ecx
lea eax, [ebp - 0x64]
push eax
lea ecx, [ebp - 0x14]
call fcn.10041700
lea ecx, [ebp - 0x14]
mov eax, dword [eax]
mov dword [ebp - 0x14], eax
call fcn.10040940
test eax, eax
jne 0x1001ac43
mov ecx, dword [ebp - 0x28]
add ecx, 8
mov dword [edi + 0x2c], 0
mov eax, dword [ecx + 4]
cmp eax, dword [ecx + 8]
je 0x1001ad39
mov dword [eax], edi
add dword [ecx + 4], 4
jmp 0x1001ad43
lea edx, [ebp - 0x2c]
push edx
push eax
call fcn.1001a210
lea eax, [ebp - 0x68]
push eax
lea ecx, [ebp - 0x10]
call fcn.10041700
lea ecx, [ebp - 0x10]
mov eax, dword [eax]
mov dword [ebp - 0x10], eax
call fcn.10040940
test eax, eax
jne 0x1001aa20
lea ecx, [ebp]
call fcn.10040900
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0xc8]
xor ecx, ebp
call fcn.10045eb8
lea esp, [ebp + 0xcc]
pop ebp
ret
call fcn.10002100
call fcn.1004aaaf
int3