Function at 0x3430bd32
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x10c
mov eax, dword [0x34234fcc]
xor eax, esp
mov dword [esp + 0x108], eax
mov eax, dword [esp + 0x114]
push ebx
mov ebx, dword [esp + 0x114]
push ebp
push esi
mov dword [esp + 0x34], eax
xor eax, eax
push edi
mov esi, edx
xor edi, edi
xor ebp, ebp
mov dword [esp + 0x34], ecx
mov dword [esp + 0x14], edi
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], eax
cmp esi, eax
je 0x3430bdd3
push esi
call fcn.341f2ad9
lea eax, [eax + eax + 2]
add esp, 4
push eax
mov dword [esp + 0x20], eax
call sub.MSO.dll_Ordinal_1880
mov dword [esp + 0x24], eax
test eax, eax
jne 0x3430bdac
mov dword [esp + 0x18], 0xfffffc0d
jmp 0x3430bfe5
lea edx, [esp + 0x1c]
push edx
push eax
push esi
call fcn.342199ab
mov dword [esp + 0x18], eax
test eax, eax
jl 0x3430bfe5
mov ebp, dword [esp + 0x1c]
mov edi, dword [esp + 0x14]
dec ebp
mov dword [esp + 0x1c], ebp
xor eax, eax
cmp ebx, eax
je 0x3430be27
push ebx
call fcn.341f2ad9
lea eax, [eax + eax + 2]
add esp, 4
push eax
mov dword [esp + 0x18], eax
call sub.MSO.dll_Ordinal_1880
mov dword [esp + 0x20], eax
test eax, eax
jne 0x3430be03
mov dword [esp + 0x18], 0xfffffc0d
jmp 0x3430bfe5
lea ecx, [esp + 0x14]
push ecx
push eax
push ebx
call fcn.342199ab
mov dword [esp + 0x18], eax
test eax, eax
jl 0x3430bfe5
dec dword [esp + 0x14]
mov ebp, dword [esp + 0x1c]
mov edi, dword [esp + 0x14]
xor edx, edx
lea ecx, [edi - 1]
mov eax, ebp
div ecx
lea ebx, [edi + ebp]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x28], eax
add eax, ebp
mov dword [esp + 0x44], edx
mov dword [esp + 0x2c], eax
cmp ebx, 0x7f
jae 0x3430be54
mov dword [esp + 0x30], ebx
jmp 0x3430be60
mov dword [esp + 0x30], 0x7f
mov ebx, dword [esp + 0x30]
lea eax, [edi - 1]
xor ecx, ecx
mov dword [esp + 0x3c], eax
test eax, eax
jl 0x3430bebf
cmp ecx, 0x7f
jae 0x3430bebf
mov edi, dword [esp + 0x44]
test eax, eax
je 0x3430be7e
mov edi, dword [esp + 0x40]
mov edx, dword [esp + 0x20]
mov dl, byte [eax + edx]
mov byte [esp + ecx + 0x48], dl
inc ecx
xor esi, esi
test edi, edi
jbe 0x3430beb6
cmp ecx, 0x7f
jae 0x3430beb6
mov edx, dword [esp + 0x28]
cmp edx, dword [esp + 0x2c]
jae 0x3430beb1
mov eax, edx
mov dl, byte [eax]
mov byte [esp + ecx + 0x48], dl
inc ecx
inc eax
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x3c]
inc esi
cmp esi, edi
jb 0x3430be90
sub eax, 1
mov dword [esp + 0x3c], eax
jns 0x3430be6d
mov esi, ebx
shr esi, 1
push esi
lea eax, [esp + 0x4c]
push eax
lea ecx, [esp + 0xd0]
push ecx
call sub.MSVCR90.dll_memcpy
mov edi, ebx
sub edi, esi
push edi
lea edx, [esp + esi + 0x58]
push edx
lea eax, [esp + 0x5c]
push eax
call sub.MSVCR90.dll_memcpy
push esi
lea ecx, [esp + 0xe4]
push ecx
lea edx, [esp + edi + 0x68]
push edx
call sub.MSVCR90.dll_memcpy
mov eax, 0x24924925
mul ebp
mov eax, ebp
sub eax, edx
shr eax, 1
add eax, edx
mov dl, byte [esp + 0x6c]
shr eax, 2
lea ecx, [eax*8]
sub ecx, eax
mov eax, ebp
sub eax, ecx
lea edi, [ebx - 1]
add esp, 0x24
inc eax
xor esi, esi
mov byte [esp + 0x13], dl
test edi, edi
jbe 0x3430bf63
mov ecx, 8
sub ecx, eax
mov dword [esp + 0x2c], ecx
jmp 0x3430bf42
mov ecx, dword [esp + 0x2c]
mov dl, byte [esp + esi + 0x49]
mov bl, byte [esp + esi + 0x48]
sar dl, cl
mov ecx, eax
shl bl, cl
inc esi
or dl, bl
mov byte [esp + esi + 0x47], dl
cmp esi, edi
jb 0x3430bf3e
mov dl, byte [esp + 0x13]
mov ebx, dword [esp + 0x30]
mov cl, 8
sub cl, al
sar dl, cl
mov ecx, eax
mov al, byte [esp + ebx + 0x47]
shl al, cl
xor ecx, ecx
or dl, al
mov byte [esp + ebx + 0x47], dl
test ebx, ebx
jbe 0x3430bf95
xor edx, edx
mov eax, 0x7fa52ebd
div ebp
mov edx, eax
mov al, dl
imul cl
xor byte [esp + ecx + 0x48], al
inc ecx
cmp ecx, ebx
jb 0x3430bf88
cmp dword [esp + 0x14], 4
mov esi, dword [esp + 0x38]
push ebx
jbe 0x3430bfbf
lea eax, [esp + 0x4c]
push eax
lea ecx, [esi + 2]
push ecx
call dword [sym.imp.MSVCR90.dll_memmove]
mov dl, byte [esp + 0x20]
mov byte [esi], 0xfe
mov byte [esi + 1], dl
add ebx, 2
jmp 0x3430bfd2
lea ecx, [esp + 0x4c]
push ecx
lea edx, [esi + 1]
push edx
call dword [sym.imp.MSVCR90.dll_memmove]
mov byte [esi], 0xff
inc ebx
add esp, 0xc
cmp ebx, 0x7f
jb 0x3430bfdf
mov ebx, 0x7f
mov eax, dword [esp + 0x34]
mov dword [eax], ebx
mov eax, dword [esp + 0x24]
pop edi
pop esi
pop ebp
pop ebx
test eax, eax
je 0x3430bff7
push eax
call sub.MSO.dll_Ordinal_1449
mov eax, dword [esp + 0x10]
test eax, eax
je 0x3430c005
push eax
call sub.MSO.dll_Ordinal_1449
mov ecx, dword [esp + 0x108]
mov eax, dword [esp + 8]
xor ecx, esp
call fcn.341f1dd1
add esp, 0x10c
ret 8