Function at 0x10024e10
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x58
mov eax, dword [0x100d92b4]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 8]
push esi
mov esi, dword [ebp + 0xc]
mov eax, esi
imul eax, esi
push edi
mov edi, dword [ebp + 0x18]
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x30], eax
call fcn.10057630
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x44], esp
call fcn.10057630
mov dword [ebp - 0x38], esp
push dword [ebp - 0x30]
push 0
push dword [ebp - 0x44]
call fcn.10058d80
xor eax, eax
add esp, 0xc
mov dword [ebp - 0x28], eax
test esi, esi
jle 0x10024f59
mov ecx, ebx
mov dword [ebp - 0x3c], 3
sub ecx, dword [ebp - 0x44]
mov edx, esi
mov dword [ebp - 0x48], ecx
mov ecx, dword [ebp - 0x44]
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x54], 6
xor ebx, ebx
xor esi, esi
mov dword [ebp - 0x34], esi
nop
mov edi, dword [ebp - 0x48]
test byte [edi + ecx], 0xf0
mov edi, dword [ebp - 0x2c]
jne 0x10024f36
lea edx, [ebx + eax]
mov dword [ebp - 0x50], edx
and edx, 1
mov dword [ebp - 0x58], edx
jne 0x10024eb1
or byte [ecx], 1
test edi, edi
jne 0x10024ebc
test al, 1
jne 0x10024ebc
or byte [ecx], 2
mov eax, 0xaaaaaaab
mov esi, ebx
mul ebx
mov edi, edx
shr edi, 1
lea eax, [edi + edi*2]
sub esi, eax
jne 0x10024ed3
or byte [ecx], 4
cmp dword [ebp - 0x2c], 0
jne 0x10024eeb
mov eax, dword [ebp - 0x50]
mov esi, 3
cdq
idiv esi
test edx, edx
jne 0x10024eeb
or byte [ecx], 8
mov eax, dword [ebp - 0x28]
shr eax, 1
add eax, edi
test al, 1
jne 0x10024ef9
or byte [ecx], 0x10
cmp dword [ebp - 0x2c], 0
mov esi, dword [ebp - 0x34]
jne 0x10024f1f
mov eax, esi
cdq
idiv dword [ebp - 0x54]
test edx, edx
jne 0x10024f0f
or byte [ecx], 0x20
mov eax, esi
cdq
idiv dword [ebp - 0x3c]
add edx, esi
test dl, 1
jne 0x10024f1f
or byte [ecx], 0x40
mov eax, esi
cdq
idiv dword [ebp - 0x3c]
mov eax, dword [ebp - 0x28]
add edx, dword [ebp - 0x58]
test dl, 1
mov edx, dword [ebp + 0xc]
jne 0x10024f36
or byte [ecx], 0x80
inc ebx
add esi, eax
inc ecx
mov dword [ebp - 0x34], esi
cmp ebx, edx
jl 0x10024e90
mov ecx, dword [ebp - 0x40]
inc eax
add ecx, edx
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x40], ecx
cmp eax, edx
jl 0x10024e88
mov ebx, dword [ebp + 0x14]
test ebx, ebx
je 0x10024f68
lea edi, [ebx - 1]
jmp 0x1002504f
mov edx, dword [ebp - 0x2c]
xor ecx, ecx
xor edi, edi
mov dword [ebp - 0x40], ecx
mov ecx, dword [ebp + 0x10]
xor ebx, ebx
mov eax, 1
mov dword [ebp - 0x3c], edi
xor esi, esi
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x48], esi
nop word [eax + eax]
test edx, edx
je 0x10024fab
test ebx, ebx
je 0x10024fab
cmp ebx, 2
je 0x10024fab
cmp ebx, 4
je 0x10024fab
cmp ebx, 7
jne 0x10025034
xor edi, edi
cmp dword [ebp - 0x30], edi
jle 0x10024ff7
mov ebx, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x38]
sub ebx, ecx
nop word [eax + eax]
lea esi, [edi + ecx]
mov ecx, dword [ebp - 0x4c]
mov dl, byte [ebx + esi]
and dl, al
mov cl, byte [ecx + edi]
mov al, cl
xor cl, 1
and al, 0xf
movzx ecx, cl
test dl, dl
movzx eax, al
cmove ecx, eax
mov eax, dword [ebp - 0x28]
inc edi
mov byte [esi], cl
mov ecx, dword [ebp - 0x38]
cmp edi, dword [ebp - 0x30]
jl 0x10024fc0
mov ebx, dword [ebp - 0x34]
mov esi, dword [ebp - 0x48]
mov ecx, dword [ebp + 0x10]
mov edi, dword [ebp + 0xc]
push ebx
push ecx
push edi
push dword [ebp - 0x38]
call fcn.10024a60
push edi
push dword [ebp - 0x38]
call fcn.10026450
mov ecx, dword [ebp - 0x40]
add esp, 0x18
mov edx, dword [ebp - 0x2c]
mov dword [ebp + esi - 0x24], eax
cmp eax, dword [ebp + ecx - 0x24]
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp + 0x10]
jge 0x10025031
mov edi, ebx
mov dword [ebp - 0x40], esi
mov dword [ebp - 0x3c], edi
jmp 0x10025034
mov edi, dword [ebp - 0x3c]
add esi, 4
rol eax, 1
inc ebx
mov dword [ebp - 0x48], esi
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x28], eax
cmp esi, 0x20
jl 0x10024f90
mov ebx, dword [ebp + 0x14]
cmp dword [ebp + 0x1c], 0
je 0x100250d9
test ebx, ebx
je 0x10025072
push str.specified
push edi
push str.Mask:__d___s_
call fcn.10007430
add esp, 0xc
jmp 0x100250cc
mov esi, dword [ebp - 0x2c]
mov ecx, str.automatic
test esi, esi
mov eax, str.fast_automatic
cmove eax, ecx
push eax
push edi
push str.Mask:__d___s_
call fcn.10007430
add esp, 0xc
test esi, esi
je 0x100250b2
push dword [ebp - 8]
push dword [ebp - 0x14]
push dword [ebp - 0x1c]
push dword [ebp - 0x24]
push str._0:_d__2:_d__4:_d__7:_d
call fcn.10007430
add esp, 0x14
jmp 0x100250cc
xor esi, esi
push dword [ebp + esi*4 - 0x24]
push esi
push str.__d:_d
call fcn.10007430
inc esi
add esp, 0xc
cmp esi, 8
jl 0x100250b4
push 0x100864bc
call fcn.10007430
add esp, 4
test ebx, ebx
jne 0x100250f5
cmp edi, 7
jne 0x100250f5
push dword [ebp - 0x30]
push dword [ebp - 0x38]
push dword [ebp - 0x4c]
call fcn.10058800
add esp, 0xc
jmp 0x1002511e
mov edx, dword [ebp - 0x30]
mov eax, 1
mov ecx, edi
shl eax, cl
test edx, edx
jle 0x1002511e
mov ebx, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x4c]
sub ebx, ecx
nop dword [eax]
test byte [ebx + ecx], al
je 0x10025118
xor byte [ecx], 1
inc ecx
sub edx, 1
jne 0x10025110
mov eax, edi
lea esp, [ebp - 0x64]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10057052
mov esp, ebp
pop ebp
ret