Function at 0x42fcc0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x55c8a8
mov eax, dword fs:[0]
push eax
sub esp, 0x44
push ebx
push esi
push edi
mov eax, dword [0x5b5be8]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov esi, dword [ebp + 0xc]
mov ebx, dword [ebp + 8]
xor eax, eax
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x48], eax
mov dword [ebp - 4], eax
mov eax, dword [ebx + 4]
sub eax, dword [ebx]
cmp eax, 1
jne 0x42fd2f
call fcn.004098d0
mov eax, dword [ebx]
mov dl, byte [eax]
mov ecx, dword [esi]
mov byte [ecx], dl
mov dword [edi], 1
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp eax, 0xa
jb 0x430239
lea ecx, [eax - 8]
add eax, 4
lea esi, [ebp - 0x50]
mov dword [ebp - 0x18], ecx
call fcn.004098d0
mov edx, dword [ebp - 0x18]
mov eax, dword [ebx]
movzx ecx, byte [eax + edx + 4]
movzx esi, byte [eax + edx + 5]
add eax, edx
shl ecx, 8
add ecx, esi
movzx esi, byte [eax + 6]
movzx eax, byte [eax + 7]
shl ecx, 8
add ecx, esi
mov esi, dword [ebp - 0x50]
shl ecx, 8
add ecx, eax
xor eax, eax
add edx, 4
je 0x42fd95
jmp 0x42fd80
mov edx, dword [ebx]
mov dl, byte [edx + eax]
xor dl, cl
mov byte [esi + eax], dl
mov edx, dword [ebp - 0x18]
inc eax
add edx, 4
cmp eax, edx
jb 0x42fd80
mov ebx, dword [ebp - 0x18]
movzx eax, byte [esi + ebx]
mov dword [edi], eax
movzx edx, byte [esi + ebx + 1]
shl eax, 8
add eax, edx
mov dword [edi], eax
movzx edx, byte [esi + ebx + 2]
shl eax, 8
add eax, edx
mov dword [edi], eax
movzx edx, byte [esi + ebx + 3]
shl eax, 8
add edx, eax
mov dword [edi], edx
xor edx, edx
mov eax, ecx
div ebx
mov eax, ecx
and eax, 0xfff0
inc eax
mov dword [ebp - 0x20], edx
xor edx, edx
div ebx
shr edx, 1
sub edx, 2
mov dword [ebp - 0x1c], edx
cmp edx, 1
jg 0x42fdf9
cmp ebx, 4
jbe 0x42fdf5
cmp ebx, 0x10
ja 0x42fdf3
add ebx, 0xfffffffe
jmp 0x42fdf6
shr ebx, 1
dec ebx
mov dword [ebp - 0x1c], ebx
xor ecx, ecx
xor ebx, ebx
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x28], ecx
mov eax, dword [ebp - 0x18]
xor esi, esi
mov edi, eax
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x38], ecx
mov byte [ebp - 4], 2
mov dword [ebp - 0x10], 2
cmp eax, 2
jle 0x430002
jmp 0x42fe36
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x30]
xor edx, edx
div dword [ebp - 0x10]
mov dword [ebp - 0x14], eax
test edx, edx
jne 0x42fff3
lea eax, [ebp - 0x10]
cmp eax, ebx
jae 0x42feb7
mov edx, eax
cmp ecx, edx
ja 0x42feb7
mov edi, eax
sub edi, ecx
sar edi, 2
cmp ebx, dword [ebp - 0x28]
jne 0x42fea9
mov eax, ebx
sub eax, ecx
sar eax, 2
cmp eax, 0x3ffffffe
ja 0x4301af
mov ecx, dword [ebp - 0x28]
sub ecx, dword [ebp - 0x30]
inc eax
sar ecx, 2
cmp eax, ecx
jbe 0x42fea9
mov edx, ecx
shr edx, 1
mov esi, 0x3fffffff
sub esi, edx
cmp esi, ecx
jae 0x42fe92
xor ecx, ecx
jmp 0x42fe94
add ecx, edx
cmp ecx, eax
jae 0x42fe9a
mov ecx, eax
push ecx
lea esi, [ebp - 0x30]
call fcn.0041ef80
mov ebx, dword [ebp - 0x2c]
mov esi, dword [ebp - 0x3c]
test ebx, ebx
je 0x42ff0f
mov eax, dword [ebp - 0x30]
mov ecx, dword [eax + edi*4]
mov dword [ebx], ecx
jmp 0x42ff0f
cmp ebx, dword [ebp - 0x28]
jne 0x42ff06
mov eax, ebx
sub eax, ecx
sar eax, 2
cmp eax, 0x3ffffffe
ja 0x4301af
mov ecx, dword [ebp - 0x28]
sub ecx, dword [ebp - 0x30]
inc eax
sar ecx, 2
cmp eax, ecx
jbe 0x42ff06
mov edx, ecx
shr edx, 1
mov esi, 0x3fffffff
sub esi, edx
cmp esi, ecx
jae 0x42feef
xor ecx, ecx
jmp 0x42fef1
add ecx, edx
cmp ecx, eax
jae 0x42fef7
mov ecx, eax
push ecx
lea esi, [ebp - 0x30]
call fcn.0041ef80
mov ebx, dword [ebp - 0x2c]
mov esi, dword [ebp - 0x3c]
test ebx, ebx
je 0x42ff0f
mov edx, dword [ebp - 0x10]
mov dword [ebx], edx
mov edi, dword [ebp - 0x14]
add ebx, 4
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x14], edi
cmp dword [ebp - 0x10], edi
je 0x42fff3
mov ecx, dword [ebp - 0x40]
lea eax, [ebp - 0x14]
cmp eax, esi
jae 0x42ff95
mov edx, eax
cmp ecx, edx
ja 0x42ff95
mov edi, eax
sub edi, ecx
sar edi, 2
cmp esi, dword [ebp - 0x38]
jne 0x42ff87
mov eax, esi
sub eax, ecx
sar eax, 2
cmp eax, 0x3ffffffe
ja 0x4301af
mov ecx, dword [ebp - 0x38]
sub ecx, dword [ebp - 0x40]
inc eax
sar ecx, 2
cmp eax, ecx
jbe 0x42ff87
mov edx, ecx
shr edx, 1
mov esi, 0x3fffffff
sub esi, edx
cmp esi, ecx
jae 0x42ff73
xor ecx, ecx
jmp 0x42ff75
add ecx, edx
cmp ecx, eax
jae 0x42ff7b
mov ecx, eax
push ecx
lea esi, [ebp - 0x40]
call fcn.0041ef80
mov esi, dword [ebp - 0x3c]
test esi, esi
je 0x42ffea
mov eax, dword [ebp - 0x40]
mov ecx, dword [eax + edi*4]
mov dword [esi], ecx
jmp 0x42ffea
cmp esi, dword [ebp - 0x38]
jne 0x42ffe1
mov eax, esi
sub eax, ecx
sar eax, 2
cmp eax, 0x3ffffffe
ja 0x4301af
mov ecx, dword [ebp - 0x38]
sub ecx, dword [ebp - 0x40]
inc eax
sar ecx, 2
cmp eax, ecx
jbe 0x42ffe1
mov edx, ecx
shr edx, 1
mov esi, 0x3fffffff
sub esi, edx
cmp esi, ecx
jae 0x42ffcd
xor ecx, ecx
jmp 0x42ffcf
add ecx, edx
cmp ecx, eax
jae 0x42ffd5
mov ecx, eax
push ecx
lea esi, [ebp - 0x40]
call fcn.0041ef80
mov esi, dword [ebp - 0x3c]
test esi, esi
je 0x42ffea
mov edx, dword [ebp - 0x14]
mov dword [esi], edx
mov edi, dword [ebp - 0x14]
add esi, 4
mov dword [ebp - 0x3c], esi
mov eax, dword [ebp - 0x10]
inc eax
mov dword [ebp - 0x10], eax
cmp eax, edi
jl 0x42fe30
mov edi, dword [ebp - 0x3c]
sub ebx, dword [ebp - 0x30]
mov eax, edi
sub eax, dword [ebp - 0x40]
sar ebx, 2
sar eax, 2
add eax, ebx
push eax
lea esi, [ebp - 0x30]
call fcn.0041ef80
mov esi, dword [ebp - 0x2c]
cmp edi, dword [ebp - 0x40]
je 0x430114
mov edx, dword [ebp - 0x28]
add edi, 0xfffffffc
mov dword [ebp - 0x14], edi
mov edi, dword [ebp - 0x30]
mov ebx, dword [ebp - 0x14]
cmp ebx, esi
jae 0x4300a0
cmp edi, ebx
ja 0x4300a0
sub ebx, edi
sar ebx, 2
cmp esi, edx
jne 0x430095
mov eax, esi
sub eax, edi
sar eax, 2
cmp eax, 0x3ffffffe
ja 0x4301af
mov ecx, edx
sub ecx, edi
inc eax
sar ecx, 2
cmp eax, ecx
jbe 0x430095
mov edx, ecx
shr edx, 1
mov esi, 0x3fffffff
sub esi, edx
cmp esi, ecx
jae 0x43007b
xor ecx, ecx
jmp 0x43007d
add ecx, edx
cmp ecx, eax
jae 0x430083
mov ecx, eax
push ecx
lea esi, [ebp - 0x30]
call fcn.0041ef80
mov edx, dword [ebp - 0x28]
mov esi, dword [ebp - 0x2c]
mov edi, dword [ebp - 0x30]
test esi, esi
je 0x4300f7
mov ecx, dword [edi + ebx*4]
mov dword [esi], ecx
jmp 0x4300f7
cmp esi, edx
jne 0x4300ef
mov eax, esi
sub eax, edi
sar eax, 2
cmp eax, 0x3ffffffe
ja 0x4301af
mov ecx, edx
sub ecx, edi
inc eax
sar ecx, 2
cmp eax, ecx
jbe 0x4300ef
mov edx, ecx
shr edx, 1
mov esi, 0x3fffffff
sub esi, edx
cmp esi, ecx
jae 0x4300d5
xor ecx, ecx
jmp 0x4300d7
add ecx, edx
cmp ecx, eax
jae 0x4300dd
mov ecx, eax
push ecx
lea esi, [ebp - 0x30]
call fcn.0041ef80
mov edx, dword [ebp - 0x28]
mov esi, dword [ebp - 0x2c]
mov edi, dword [ebp - 0x30]
test esi, esi
je 0x4300f7
mov eax, dword [ebx]
mov dword [esi], eax
mov eax, dword [ebp - 0x14]
sub eax, 4
mov dword [ebp - 0x14], eax
add esi, 4
add eax, 4
mov dword [ebp - 0x2c], esi
cmp eax, dword [ebp - 0x40]
jne 0x430036
jmp 0x430117
mov edi, dword [ebp - 0x30]
mov eax, dword [ebp - 0x40]
test eax, eax
je 0x430127
push eax
call fcn.004310e1
add esp, 4
mov ebx, dword [ebp - 0x1c]
cmp ebx, 1
jle 0x430155
nop
mov ecx, edi
cmp edi, esi
je 0x430155
mov eax, ebx
cdq
idiv dword [ecx]
test edx, edx
je 0x430148
add ecx, 4
cmp ecx, esi
jne 0x430136
jmp 0x430155
cmp ecx, esi
je 0x430155
dec ebx
mov dword [ebp - 0x1c], ebx
cmp ebx, 1
jg 0x430130
mov byte [ebp - 4], 0
test edi, edi
je 0x430166
push edi
call fcn.004310e1
add esp, 4
mov eax, dword [ebp + 8]
mov esi, dword [ebp + 0xc]
mov edi, dword [eax + 4]
sub edi, dword [eax]
mov ecx, dword [esi + 4]
mov eax, dword [esi]
mov edx, ecx
sub edx, eax
xor bl, bl
cmp edx, edi
jbe 0x4301a0
add eax, edi
mov dword [ebp + 8], eax
cmp eax, ecx
je 0x430204
mov edi, ecx
sub edi, ecx
push edi
push ecx
push eax
call fcn.00532370
add esp, 0xc
add edi, dword [ebp + 8]
mov dword [esi + 4], edi
jmp 0x430204
jae 0x430204
sub eax, ecx
add eax, edi
or ecx, 0xffffffff
sub ecx, eax
cmp ecx, edx
jae 0x4301b9
push str.vector_T__too_long
call fcn.0054f674
add edx, eax
mov eax, dword [esi + 8]
sub eax, dword [esi]
cmp edx, eax
jbe 0x4301e6
mov ecx, eax
shr ecx, 1
or esi, 0xffffffff
sub esi, ecx
cmp esi, eax
jae 0x4301d5
xor eax, eax
jmp 0x4301d7
add eax, ecx
cmp eax, edx
jae 0x4301dd
mov eax, edx
mov esi, dword [ebp + 0xc]
push eax
call fcn.0040a8e0
mov ecx, dword [esi + 4]
mov eax, dword [esi]
sub eax, ecx
add eax, edi
je 0x4301fd
push eax
push 0
push ecx
call fcn.00535390
add esp, 0xc
mov edx, dword [esi]
add edx, edi
mov dword [esi + 4], edx
mov edi, dword [ebp - 0x18]
xor ecx, ecx
test edi, edi
je 0x430229
mov edx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x50]
add bl, byte [eax + edx]
mov eax, dword [esi]
mov byte [ecx + eax], bl
mov eax, dword [ebp - 0x1c]
add eax, edx
xor edx, edx
inc ecx
div edi
cmp ecx, edi
jb 0x430210
mov eax, dword [ebp - 0x50]
test eax, eax
je 0x430239
push eax
call fcn.004310e1
add esp, 4
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret