Function at 0x10032bd0
Capabilities:
Encode data using xor
Generate random numbers using the delphi lcg

Disassembly:
sub esp, 0x86c
push ebx
push ebp
push esi
mov ebx, dword [esp + 0x87c]
push edi
mov edi, dword [esp + 0x884]
push 0
push 0x8002
mov dword [edi], 0
mov ecx, dword [0x107ab964]
push ebx
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, eax
cmp esi, 0xffffffff
je 0x10032e4f
mov ecx, dword [0x107ab964]
push esi
mov edx, dword [ecx]
call dword [edx + 0x20]
cmp eax, 0xa200
jg 0x10032c4d
mov ecx, dword [0x107ab964]
push esi
mov eax, dword [ecx]
call dword [eax + 0x18]
mov ecx, dword [0x107ab964]
push edi
push ebx
push ecx
call fcn.1002bac0
add esp, 0xc
neg eax
pop edi
pop esi
sbb eax, eax
pop ebp
neg eax
pop ebx
add esp, 0x86c
ret
lea edx, [esp + 0x10]
push 1
lea ecx, [esp + 0x80]
push edx
mov edx, dword [0x107ab964]
push ecx
lea ebp, [eax - 0xa200]
push 0x800
push 0x800
push ebp
push eax
push esi
push edx
call fcn.100253e0
add esp, 0x24
test eax, eax
je 0x10032e43
cmp dword [esp + 0x10], 0x800
jne 0x10032e43
mov edi, dword [esp + 0x54e]
xor ebx, ebx
imul edi, edi, 0x8088405
lea eax, [esp + 0x18]
lea ecx, [esp + 0x14]
inc edi
push eax
push ecx
push edi
push 0xff
call fcn.10032b60
mov dl, byte [esp + 0x24]
mov al, byte [esp + ebx + 0x8c]
xor al, dl
add esp, 0x10
mov byte [esp + ebx + 0x7c], al
inc ebx
cmp ebx, 0x3e8
jl 0x10032c9d
mov ecx, 0x18
xor eax, eax
lea edi, [esp + 0x1c]
rep stosd dword es:[edi], eax
mov ecx, dword [0x107ab964]
lea eax, [esp + 0x1c]
push eax
push esi
push ecx
call fcn.1000fc50
add esp, 0xc
test eax, eax
je 0x10032e43
push 0
push 0
push 0
push 0
push 0x80
call sub.platform.dll_Ordinal_24
mov edi, eax
add esp, 0x14
test edi, edi
jne 0x10032d34
mov ecx, dword [0x107ab964]
push esi
mov eax, dword [ecx]
call dword [eax + 0x18]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x86c
ret
mov edx, dword [0x107ab964]
lea ecx, [esp + 0x1c]
push ecx
push edi
push esi
push edx
call fcn.10011160
add esp, 0x10
test eax, eax
jne 0x10032d70
push edi
call sub.platform.dll_Ordinal_27
mov ecx, dword [0x107ab964]
add esp, 4
mov eax, dword [ecx]
push esi
call dword [eax + 0x18]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x86c
ret
cmp byte [esp + 0x7c], 0x4d
jne 0x10032e21
cmp byte [esp + 0x7d], 0x5a
jne 0x10032e21
push edi
call sub.platform.dll_Ordinal_27
mov ecx, dword [0x107ab964]
add esp, 4
mov edx, dword [ecx]
push 0
push ebp
push esi
call dword [edx + 8]
mov ecx, dword [0x107ab964]
test eax, eax
jg 0x10032dbb
mov eax, dword [ecx]
push esi
call dword [eax + 0x18]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x86c
ret
mov edx, dword [ecx]
lea eax, [esp + 0x7c]
push 0x800
push eax
push esi
call dword [edx + 0x14]
cmp eax, 0x800
jne 0x10032e43
mov eax, dword [0x107ab964]
push 0
push 0xa200
push ebp
push esi
push eax
call fcn.10029bd0
add esp, 0x14
test eax, eax
je 0x10032e43
mov eax, dword [0x107ab964]
push 1
push 0
push ebp
push esi
push eax
call fcn.10013800
mov ecx, dword [0x107ab964]
add esp, 0x14
test eax, eax
je 0x10032e49
mov eax, dword [ecx]
push esi
call dword [eax + 0x18]
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x86c
ret
mov ecx, dword [0x107ab964]
push esi
push ecx
call fcn.10011230
add esp, 8
test eax, eax
je 0x10032e5c
cmp dword [edi + 0x24], eax
je 0x10032e5c
push edi
call sub.platform.dll_Ordinal_27
add esp, 4
mov ecx, dword [0x107ab964]
mov edx, dword [ecx]
push esi
call dword [edx + 0x18]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x86c
ret
push edi
call sub.platform.dll_Ordinal_27
mov ecx, dword [0x107ab964]
add esp, 4
mov eax, dword [ecx]
push esi
call dword [eax + 0x18]
mov ecx, dword [esp + 0x884]
mov edx, dword [esp + 0x880]
mov eax, dword [0x107ab964]
push ecx
push edx
push eax
call fcn.1002bac0
add esp, 0xc
neg eax
pop edi
pop esi
sbb eax, eax
pop ebp
neg eax
pop ebx
add esp, 0x86c
ret