Function at 0x1001d7b3
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2c
push ebx
mov ebx, edx
mov edx, ecx
push esi
xor esi, esi
mov dword [ebp - 0x14], ebx
push edi
mov cl, byte [ebx]
mov eax, esi
mov edi, dword [0x1004011c]
test cl, cl
mov byte [ebp - 2], cl
mov ecx, dword [0x10040130]
mov dword [ebp - 0xc], edx
mov dword [ebp - 8], edi
je 0x1001d806
imul ecx, ecx, 0x5c723970
inc eax
cmp byte [eax + ebx], 0
jne 0x1001d7e2
mov dword [0x10040130], ecx
cmp eax, 0x5cb
jne 0x1001d806
mov ebx, edi
and ebx, 0xbbc0543b
jmp 0x1001d812
mov ebx, dword [0x10040214]
add ebx, 0x1f6498fa
mov eax, ecx
or eax, 0x77c8791f
mov dword [ebp - 0x10], eax
mov al, byte [edx]
mov byte [ebp - 1], al
test al, al
mov eax, esi
je 0x1001d848
lea edi, [ecx + 0x4d03a809]
mov dword [ebp - 8], edi
inc eax
cmp byte [eax + edx], 0
jne 0x1001d830
cmp eax, 0x17b8
jbe 0x1001d848
mov edx, edi
and edx, 0x1eb8b6ee
jmp 0x1001d854
mov edx, dword [0x100401c8]
add edx, 0xe693fc0b
mov eax, esi
lea edi, [ebp - 0x2c]
push 5
pop ecx
mov esi, str.wxGlobalSEInformation
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
cmp byte [ebp - 0x2c], 0x50
jne 0x1001d885
mov cl, 0x50
test cl, cl
je 0x1001d885
cmp byte [ebp + eax - 0x2c], 0
je 0x1001d885
mov cl, byte [eax + 0x10038fc1]
inc eax
cmp cl, byte [ebp + eax - 0x2c]
je 0x1001d86d
movzx ecx, byte [eax + str.P3T3X33_3d3h3l3p3t3x33]
movzx eax, byte [ebp + eax - 0x2c]
sub ecx, eax
cmp ecx, 0x26f0
jae 0x1001d8a6
mov ebx, dword [ebp - 8]
xor ebx, 0xd9f248a5
jmp 0x1001d8ad
imul edx, dword [ebp - 0x10], 0x625e6630
mov cl, byte [ebp - 1]
lea edi, [ebp - 0x24]
mov esi, str.novosibirsk
xor eax, eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, dword [ebp - 0xc]
cmp cl, byte [ebp - 0x24]
jne 0x1001d8da
test cl, cl
je 0x1001d8da
cmp byte [ebp + eax - 0x24], 0
je 0x1001d8da
inc eax
mov cl, byte [esi + eax]
cmp cl, byte [ebp + eax - 0x24]
je 0x1001d8c5
movzx ecx, byte [eax + esi]
movzx eax, byte [ebp + eax - 0x24]
sub ecx, eax
cmp ecx, 0x946
jne 0x1001d8f7
mov edx, ebx
xor edx, 0x259c025a
jmp 0x1001d8fd
xor edx, 0x32664bd7
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 8]
cmp byte [eax], 0
je 0x1001d913
lea eax, [ecx + 0x389cecd3]
mov dword [0x10040130], eax
cmp byte [ebp - 1], 0
je 0x1001d930
xor edx, 0xd507de92
inc esi
cmp byte [esi], 0
jne 0x1001d919
lea eax, [ebx - 0x68e990e1]
mov dword [0x10040130], eax
mov esi, str.furniture
lea edi, [ebp - 0x20]
lea eax, [ebx - 0x62933462]
xor ecx, 0x9f6c9713
mov ebx, ecx
mov dword [ebp + 8], eax
mov al, byte [ebp - 2]
or ebx, 0xcd90b64e
movsd dword es:[edi], dword [esi]
xor edx, edx
mov dword [ebp - 0x10], ecx
mov ecx, edx
mov dword [0x100401c8], ebx
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
cmp al, byte [ebp - 0x20]
jne 0x1001d9b1
mov edx, dword [ebp - 0x14]
test al, al
je 0x1001d980
cmp byte [ebp + ecx - 0x20], 0
je 0x1001d980
inc ecx
mov al, byte [edx + ecx]
cmp al, byte [ebp + ecx - 0x20]
je 0x1001d96b
mov edx, dword [ebp + 8]
cmp edx, ecx
jae 0x1001d9af
imul eax, dword [ebp + 8], 0x9f1dc9b8
mov dword [0x10040130], eax
mov eax, dword [ebp - 0x10]
cmp edx, 0xd8e
jne 0x1001d9aa
imul ebx, eax, 0x2e0b1ca4
mov dword [0x100401c8], ebx
inc edx
cmp edx, ecx
jb 0x1001d996
xor edx, edx
mov ecx, dword [ebp - 8]
lea eax, [ebx - 0x1c3b5280]
pop edi
add ecx, 0x906e8afb
mov dword [0x1004011c], eax
pop esi
lea eax, [ebx + 0x4b659189]
mov dword [0x10040214], ecx
pop ebx
inc edx
cmp byte [edx + str.GetTraceEnableFlags], 0
jne 0x1001d9d4
cmp edx, 0x156b
jae 0x1001d9f4
or ecx, 0x9dddaf0e
mov dword [0x10040214], ecx
jmp 0x1001da00
and ecx, 0x5e630de0
mov dword [0x10040130], ecx
and eax, 0x83e44268
mov dword [0x10040234], eax
leave
ret