Function at 0x425d80
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 8]
mov dword [ebp - 8], eax
test eax, eax
je 0x4261f9
mov ecx, dword [ecx + 4]
test ecx, ecx
je 0x4261f9
cmp ecx, 0x20
jb 0x4261f9
push ebx
push esi
movzx esi, byte [eax + 5]
mov ecx, esi
imul eax, esi, 0x1d800000
imul ecx, esi
push edi
mov edi, 2
add eax, 0x1dd50c58
imul edx, ecx, 0x50adea9d
imul ecx, esi, 0xbc1d1137
lea ebx, [edi + 0x1d]
imul eax, esi
add edx, 0x37c
or edx, ecx
imul ecx, esi, 0x740a6c2f
imul edx, edx, 0x12a2
sub eax, 0x7b96d42e
mov dword [ebp - 0xc], eax
sub edx, ecx
mov esi, edx
mov eax, edx
and esi, 1
nop
mov ecx, esi
mov edx, 0xfffffc83
imul ecx, esi
imul ecx, ecx, 0x1f105
sub edx, ecx
imul ecx, esi, 0x1c65
or edx, ecx
imul ecx, esi, 0x2110e9c
inc edx
imul edx, edx, 0x12a2
sub edx, ecx
add edx, eax
and edx, edi
rol edi, 1
xor esi, edx
sub ebx, 1
jne 0x425e00
mov eax, dword [ebp - 8]
mov edx, 0x2bdfed21
movzx ecx, byte [eax + 5]
mov dword [ebp - 0x10], ecx
imul ecx, dword [ebp - 0xc], 0x73660000
mov ebx, dword [ebp - 0x10]
sub edx, ecx
imul ecx, esi, 0x4e410fd4
imul edx, dword [ebp - 0xc]
sub edx, ecx
imul ecx, ebx, 0x358a1a44
add ecx, 0xd31e13c7
add ecx, edx
mov dword [ebp - 4], ecx
mov edx, ecx
mov esi, dword [ebp - 4]
sar edx, 0x18
sar ecx, 0x10
sar esi, 8
cmp dl, cl
mov byte [eax], dl
mov byte [eax + 1], cl
mov ecx, esi
mov dword [ebp - 0xc], esi
jbe 0x425e95
mov byte [eax + 2], cl
mov ecx, dword [ebp - 4]
mov byte [eax + 3], cl
jmp 0x425e9e
mov byte [eax + 3], cl
mov ecx, dword [ebp - 4]
mov byte [eax + 2], cl
imul ecx, ebx, 0x3c2a4a89
or edi, 0xffffffff
mov edx, edi
mov esi, 0xfa000000
sub edx, ecx
imul ecx, ebx, 0x3c2a4a89
or edx, 0xa06b74bb
or ecx, 0xa06b74bb
add edx, ecx
imul ecx, ebx, 0x59a00000
mov dword [ebp - 4], edx
sub esi, ecx
imul ecx, ebx, 0x1bf86a88
imul esi, ebx
sub edi, ecx
imul ecx, ebx, 0x6dfc3544
or edi, 0xdebfa907
sub esi, edi
xor ecx, 0x10a02b7c
add ecx, 0x61200c55
add ecx, esi
xor esi, esi
mov dword [ebp - 0xc], ecx
lea edi, [esi + 2]
lea ebx, [esi + 0x1f]
mov ecx, esi
mov edx, 0xfffffc83
imul ecx, esi
imul ecx, ecx, 0x1f105
sub edx, ecx
imul ecx, esi, 0x1c65
or edx, ecx
imul ecx, esi, 0x2110e9c
imul edx, edx, 0x12a2
sub edx, ecx
add edx, 0x750cb8ae
and edx, edi
rol edi, 1
xor esi, edx
sub ebx, 1
jne 0x425f01
imul ecx, dword [ebp - 0xc], 0x73660000
mov edx, 0x2bdfed21
sub edx, ecx
imul ecx, dword [ebp - 4], 0xe097f64
imul edx, dword [ebp - 0xc]
add edx, ecx
imul ecx, esi, 0x4e410fd4
sub edx, ecx
imul ecx, dword [ebp - 0x10], 0xbaed1c4
sub edx, ecx
add edx, 0x1397e331
mov dword [ebp - 4], edx
mov ecx, dword [ebp - 4]
mov ebx, dword [ebp - 4]
sar edx, 0x18
sar ecx, 0x10
mov byte [eax + 4], dl
sar ebx, 8
cmp dl, cl
mov byte [eax + 5], cl
mov ecx, dword [ebp - 4]
jae 0x425f93
mov byte [eax + 6], bl
mov byte [eax + 7], cl
jmp 0x425f99
mov byte [eax + 7], bl
mov byte [eax + 6], cl
movzx ebx, byte [eax + 0xd]
mov edi, 2
mov ecx, ebx
imul eax, ebx, 0x1d800000
imul ecx, ebx
mov dword [ebp - 4], ebx
sub eax, 0x2b2af3a8
imul edx, ecx, 0x50adea9d
imul ecx, ebx, 0xbc1d1137
imul eax, ebx
add edx, 0x37c
or edx, ecx
imul ecx, ebx, 0x740a6c2f
imul edx, edx, 0x12a2
lea ebx, [edi + 0x1d]
sub eax, 0x3de6f1f6
mov dword [ebp - 0xc], eax
sub edx, ecx
mov esi, edx
mov eax, edx
and esi, 1
nop dword [eax]
mov ecx, esi
mov edx, 0xfffffc83
imul ecx, esi
imul ecx, ecx, 0x1f105
sub edx, ecx
imul ecx, esi, 0x1c65
or edx, ecx
imul ecx, esi, 0x2110e9c
inc edx
imul edx, edx, 0x12a2
sub edx, ecx
add edx, eax
and edx, edi
rol edi, 1
xor esi, edx
sub ebx, 1
jne 0x425ff0
imul ecx, dword [ebp - 0xc], 0x73660000
mov ebx, 0x2bdfed21
mov eax, dword [ebp - 8]
mov edx, ebx
sub edx, ecx
imul ecx, esi, 0x4e410fd4
imul edx, dword [ebp - 0xc]
sub edx, ecx
imul ecx, dword [ebp - 4], 0x358a1a44
add ecx, 0xe9cea019
add edx, ecx
mov ecx, edx
sar ecx, 0x18
mov byte [eax + 8], cl
mov ecx, edx
sar ecx, 0x10
mov byte [eax + 9], cl
mov ecx, edx
sar ecx, 8
mov byte [eax + 0xa], cl
mov byte [eax + 0xb], dl
movzx esi, byte [eax + 0xc]
or eax, 0xffffffff
mov edx, eax
imul ecx, esi, 0x3c2a4a89
mov dword [ebp - 4], esi
sub edx, ecx
imul ecx, esi, 0x3c2a4a89
or edx, 0xb5f9d790
or ecx, 0xb5f9d790
add edx, ecx
imul ecx, esi, 0x59a00000
mov dword [ebp - 0xc], edx
mov edx, 0xf3000000
sub edx, ecx
imul ecx, esi, 0x1bf86a88
imul edx, esi
sub eax, ecx
or eax, 0xdebfa907
sub edx, eax
imul eax, esi, 0x6dfc3544
xor eax, 0x10a02b7c
add eax, 0x9958d85
add eax, edx
xor esi, esi
mov dword [ebp - 0x10], eax
lea edi, [esi + 2]
lea eax, [esi + 0x1f]
mov ecx, esi
mov edx, 0xfffffc83
imul ecx, esi
imul ecx, ecx, 0x1f105
sub edx, ecx
imul ecx, esi, 0x1c65
or edx, ecx
imul ecx, esi, 0x2110e9c
imul edx, edx, 0x12a2
sub edx, ecx
add edx, 0x248784dc
and edx, edi
rol edi, 1
xor esi, edx
sub eax, 1
jne 0x4260d6
imul ecx, dword [ebp - 0x10], 0x73660000
mov eax, dword [ebp - 8]
sub ebx, ecx
imul ecx, dword [ebp - 0xc], 0xe097f64
imul ebx, dword [ebp - 0x10]
add ebx, ecx
imul ecx, dword [ebp - 4], 0xbaed1c4
sub ebx, ecx
imul ecx, esi, 0x4e410fd4
sub ebx, ecx
sub ebx, 0x59fe9166
mov ecx, ebx
sar ecx, 0x18
mov byte [eax + 0xc], cl
mov ecx, ebx
sar ecx, 0x10
mov byte [eax + 0xd], cl
mov ecx, ebx
sar ecx, 8
xor esi, esi
mov byte [eax + 0xe], cl
mov byte [eax + 0xf], bl
mov dword [eax + 0x10], 0x60481b32
lea edi, [esi + 2]
lea ebx, [esi + 0x1f]
nop dword [eax]
mov ecx, esi
mov edx, 0xfffffc83
imul ecx, esi
imul ecx, ecx, 0x1f105
sub edx, ecx
imul ecx, esi, 0x1c65
or edx, ecx
imul ecx, esi, 0x2110e9c
imul edx, edx, 0x12a2
sub edx, ecx
add edx, 0x40f4ff1a
and edx, edi
rol edi, 1
xor esi, edx
sub ebx, 1
jne 0x426170
imul ecx, esi, 0x4e410fd4
mov ebx, 0x3a18432e
sub ebx, ecx
mov edx, ebx
mov ecx, ebx
sar edx, 0x18
mov esi, ebx
sar ecx, 0x10
sar esi, 8
cmp dl, cl
mov byte [eax + 0x14], dl
mov byte [eax + 0x15], cl
mov ecx, esi
mov dword [ebp - 0x10], esi
jae 0x4261dc
mov byte [eax + 0x16], cl
mov byte [eax + 0x17], bl
jmp 0x4261e2
mov byte [eax + 0x17], cl
mov byte [eax + 0x16], bl
pop edi
mov dword [eax + 0x18], 0x679285db
pop esi
mov dword [eax + 0x1c], 0x70927a14
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
or eax, 0xffffffff
mov esp, ebp
pop ebp
ret