Function at 0x1004dbe0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
push dword [ebp + 0xc]
mov ecx, dword [edi + 0x1cdd8]
lea esi, [edi + 0x2b6a]
call fcn.10009190
mov ecx, dword [edi + 0x56]
mov edx, eax
mov eax, ecx
mov dword [ebp - 0xc], edx
sub eax, edx
mov dword [ebp - 0x10], eax
test edx, edx
jle 0x1004dc70
cmp edx, ecx
jae 0x1004dc70
lea eax, [edi + 0x2a9a]
mov ecx, edi
push 0x10
push eax
push edx
mov dword [ebp - 8], eax
call fcn.10004380
mov ecx, dword [0x10113208]
xor ebx, ebx
mov edi, 0x100
mov dword [ebp - 4], ebx
nop dword [eax + eax]
cmp bx, di
jae 0x1004dc70
mov eax, dword [ebp - 8]
mov dl, byte [eax]
nop word [eax + eax]
mov al, bl
xor al, dl
cmp al, cl
je 0x1004dc7e
mov al, dl
sub al, bl
cmp al, cl
je 0x1004dc79
lea eax, [edx + ebx]
cmp al, cl
je 0x1004dc79
inc ebx
mov dword [ebp - 4], ebx
cmp bx, di
jb 0x1004dc50
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
cmp bx, di
jae 0x1004dc70
xor al, al
mov edx, esi
mov edi, 0x10
nop word [eax + eax]
mov cl, byte [edx - 0xd0]
lea edx, [edx + 1]
xor cl, bl
add bl, al
mov byte [edx - 1], cl
sub edi, 1
jne 0x1004dc90
mov ecx, dword [esi]
cmp ecx, dword [0x10113208]
jne 0x1004dcc7
mov ecx, dword [0x1011320f]
cmp dword [esi + 6], ecx
je 0x1004de52
cmp dword [esi + 7], ecx
je 0x1004de4c
mov ebx, dword [ebp - 4]
inc al
cmp al, 0xff
jne 0x1004dc80
xor al, al
mov bl, byte [ebp - 4]
mov edx, esi
mov edi, 0x10
nop dword [eax]
mov cl, byte [edx - 0xd0]
lea edx, [edx + 1]
sub cl, bl
add bl, al
mov byte [edx - 1], cl
sub edi, 1
jne 0x1004dce0
mov ecx, dword [esi]
cmp ecx, dword [0x10113208]
jne 0x1004dd17
mov ecx, dword [0x1011320f]
cmp dword [esi + 6], ecx
je 0x1004de5e
cmp dword [esi + 7], ecx
je 0x1004de58
inc al
cmp al, 0xff
jne 0x1004dcd2
xor al, al
nop
mov bl, byte [ebp - 4]
mov edx, esi
mov edi, 0x10
nop word [eax + eax]
mov cl, byte [edx - 0xd0]
lea edx, [edx + 1]
add cl, bl
add bl, al
mov byte [edx - 1], cl
sub edi, 1
jne 0x1004dd30
mov ecx, dword [esi]
cmp ecx, dword [0x10113208]
jne 0x1004dd67
mov ecx, dword [0x1011320f]
cmp dword [esi + 6], ecx
je 0x1004de68
cmp dword [esi + 7], ecx
je 0x1004de62
inc al
cmp al, 0xff
jne 0x1004dd20
or al, al
nop
mov bl, byte [ebp - 4]
mov edx, esi
mov edi, 0x10
nop word [eax + eax]
mov cl, byte [edx - 0xd0]
lea edx, [edx + 1]
xor cl, bl
add bl, al
mov byte [edx - 1], cl
sub edi, 1
jne 0x1004dd80
mov ecx, dword [esi]
cmp ecx, dword [0x10113208]
jne 0x1004ddb7
mov ecx, dword [0x1011320f]
cmp dword [esi + 6], ecx
je 0x1004de52
cmp dword [esi + 7], ecx
je 0x1004de4c
add al, 0xff
jne 0x1004dd70
or al, 0xff
nop dword [eax]
mov bl, byte [ebp - 4]
mov edx, esi
mov edi, 0x10
nop word [eax + eax]
mov cl, byte [edx - 0xd0]
lea edx, [edx + 1]
sub cl, bl
add bl, al
mov byte [edx - 1], cl
sub edi, 1
jne 0x1004ddd0
mov ecx, dword [esi]
cmp ecx, dword [0x10113208]
jne 0x1004ddff
mov ecx, dword [0x1011320f]
cmp dword [esi + 6], ecx
je 0x1004de5e
cmp dword [esi + 7], ecx
je 0x1004de58
add al, 0xff
jne 0x1004ddc0
or al, 0xff
mov bl, byte [ebp - 4]
mov edx, esi
mov edi, 0x10
nop
mov cl, byte [edx - 0xd0]
lea edx, [edx + 1]
add cl, bl
add bl, al
mov byte [edx - 1], cl
sub edi, 1
jne 0x1004de10
mov ecx, dword [0x10113208]
cmp dword [esi], ecx
jne 0x1004de3f
mov edx, dword [0x1011320f]
cmp dword [esi + 6], edx
je 0x1004de68
cmp dword [esi + 7], edx
je 0x1004de62
add al, 0xff
jne 0x1004de05
mov ebx, dword [ebp - 4]
inc ebx
jmp 0x1004dc33
xor cl, cl
mov dl, 1
jmp 0x1004de6c
mov cl, 1
mov dl, cl
jmp 0x1004de6c
xor cl, cl
mov dl, 2
jmp 0x1004de6c
mov dl, 2
jmp 0x1004de6a
mov dl, 3
xor cl, cl
jmp 0x1004de6c
mov dl, 3
mov cl, 1
mov ebx, dword [ebp + 8]
mov esi, dword [ebp - 0xc]
pop edi
mov dword [ebx + 0x2a7a], esi
mov esi, dword [ebp - 0x10]
mov byte [ebx + 0x2a87], al
mov eax, dword [ebp + 0xc]
mov dword [ebx + 0x2a7e], esi
mov byte [ebx + 0x2a83], cl
mov ecx, dword [ebp - 4]
mov dword [ebx + 0x2a88], eax
mov eax, 1
pop esi
mov byte [ebx + 0x2a82], dl
mov byte [ebx + 0x2a86], cl
pop ebx
mov esp, ebp
pop ebp
ret