Function at 0x10050100
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
mov eax, dword [0x100df0c0]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov ebx, ecx
xor esi, esi
push edi
mov edi, edx
mov dword [ebp - 0x1c], ebx
push 0x20
mov edx, ebx
mov dword [ebp - 0x24], edi
or ecx, 0xffffffff
call fcn.1004fbf0
mov dword [edi + 0x20], eax
lea ecx, [esi + 0x20]
mov edx, edi
sub ebx, edi
mov byte [edx], 0
lea edx, [edx + 1]
mov al, byte [ebx + edx - 1]
neg al
mov byte [edx - 1], al
dec ecx
jne 0x10050135
push 0x20
mov edx, edi
or ecx, 0xffffffff
call fcn.1004fbf0
mov ebx, dword [ebp - 0x1c]
xor edx, edx
mov ecx, dword [edi + 0x20]
mov dword [edi + 0x24], eax
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0xc]
mov dword [ebp - 0x14], ecx
sub ebx, eax
lea esp, [esp]
mov al, byte [edi + edx + 0x18]
lea ecx, [ebp - 0xc]
add ecx, edx
inc edx
add al, byte [ebx + ecx]
mov byte [ecx], al
cmp edx, 8
jl 0x10050170
mov byte [edi + 0x28], 0
xor ebx, ebx
mov byte [edi + 0x128], 0
mov al, byte [edi + ebx]
test al, al
je 0x100501af
lea ecx, [edi + 0x29]
mov dl, al
push esi
call fcn.1004fb50
test eax, eax
jne 0x100501af
mov al, byte [edi + ebx]
mov byte [edi + esi + 0x29], al
inc esi
inc ebx
cmp ebx, 0x20
jl 0x10050191
mov eax, dword [ebp - 0x1c]
movzx eax, byte [eax + 1]
and eax, 0x80000001
jns 0x100501c8
dec eax
or eax, 0xfffffffe
inc eax
lea ecx, [edi + 0x29]
mov edi, ecx
je 0x100501ed
mov ebx, 0xff
push esi
mov dl, bl
mov ecx, edi
call fcn.1004fb50
test eax, eax
jne 0x100501e6
mov byte [edi + esi], bl
inc esi
dec ebx
test ebx, ebx
jg 0x100501d4
jmp 0x1005020d
mov ebx, 1
push esi
mov dl, bl
mov ecx, edi
call fcn.1004fb50
test eax, eax
jne 0x10050204
mov byte [edi + esi], bl
inc esi
inc ebx
cmp ebx, 0x100
jl 0x100501f2
mov edi, dword [ebp - 0x24]
lea eax, [ebp - 0x14]
push 0x10
push eax
mov edx, 0xff
lea ecx, [edi + 0x29]
call fcn.1004fb80
mov ecx, 1
lea ebx, [edi + 0x28]
jmp 0x10050230
movzx eax, byte [ebx + ecx]
mov byte [eax + ebx + 0x100], cl
inc ecx
cmp ecx, 0xff
jle 0x10050230
mov esi, 0xffffffd8
sub esi, edi
jmp 0x10050250
lea eax, [esi + ebx]
and eax, 0x8000001f
jns 0x1005025f
dec eax
or eax, 0xffffffe0
inc eax
mov dl, byte [ebx]
lea ecx, [eax + edi]
movzx eax, byte [ecx]
add al, 0x6b
add al, dl
mov byte [ebx + 0x200], al
movzx eax, byte [ecx]
add al, 0x4e
add al, dl
mov byte [ebx + 0x300], al
movzx eax, byte [ecx]
sub al, 0x5a
xor al, dl
mov byte [ebx + 0x400], al
inc ebx
lea eax, [esi + ebx]
cmp eax, 0x100
jl 0x10050250
mov eax, dword [ebp - 0x1c]
movzx eax, byte [eax + 2]
and eax, 0x80000001
jns 0x100502a9
dec eax
or eax, 0xfffffffe
inc eax
lea ecx, [edi + 0x328]
mov edx, 0x40
je 0x10050310
jmp 0x100502c0
mov eax, dword [edi + 0x20]
lea ecx, [ecx + 4]
xor dword [ecx - 0x104], eax
mov eax, dword [edi + 0x24]
add dword [ecx - 0x104], eax
mov eax, dword [edi + 0x20]
xor dword [ecx - 4], eax
mov eax, dword [edi + 0x24]
add dword [ecx - 4], eax
mov eax, dword [edi + 0x20]
xor dword [ecx + 0xfc], eax
mov eax, dword [edi + 0x24]
add dword [ecx + 0xfc], eax
dec edx
jne 0x100502c0
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1009bea4
mov esp, ebp
pop ebp
ret
mov eax, dword [edi + 0x20]
lea ecx, [ecx + 4]
sub dword [ecx - 0x104], eax
mov eax, dword [edi + 0x24]
xor dword [ecx - 0x104], eax
mov eax, dword [edi + 0x20]
sub dword [ecx - 4], eax
mov eax, dword [edi + 0x24]
xor dword [ecx - 4], eax
mov eax, dword [edi + 0x20]
sub dword [ecx + 0xfc], eax
mov eax, dword [edi + 0x24]
xor dword [ecx + 0xfc], eax
dec edx
jne 0x10050310
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.1009bea4
mov esp, ebp
pop ebp
ret