Function at 0x424590
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
xor eax, eax
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
lea esi, [eax + 2]
mov dword [ebx], 0x68a38623
lea edi, [eax + 0x1f]
mov dword [ebx + 4], 0xec2da9e
mov ecx, eax
mov edx, 0xfffffc83
imul ecx, eax
imul ecx, ecx, 0x1f105
sub edx, ecx
imul ecx, eax, 0x1c65
or edx, ecx
imul ecx, eax, 0x2110e9c
imul edx, edx, 0x12a2
sub edx, ecx
sub edx, 0x2b025642
and edx, esi
rol esi, 1
xor eax, edx
sub edi, 1
jne 0x4245b1
movzx edi, byte [ebx + 0x1e]
mov ecx, 0xc2fcdb4c
imul eax, eax, 0x4e410fd4
imul edx, edi, 0x37160000
imul esi, edi, 0x42c00000
sub ecx, eax
mov eax, ecx
mov byte [ebx + 0xb], cl
sar eax, 0x18
sub edx, 0x26bacb7
mov byte [ebx + 8], al
xor esi, 0xa1debec1
mov dword [ebp - 0xc], eax
add esi, 0x189d02f7
mov eax, ecx
imul edx, edi
sar eax, 0x10
mov byte [ebx + 9], al
mov eax, ecx
sar eax, 8
or ecx, 0xffffffff
mov byte [ebx + 0xa], al
imul eax, edi, 0x5800000
sub ecx, eax
or ecx, 0xbc42827d
sub edx, ecx
add esi, edx
mov eax, esi
imul ecx, esi, 0x3e5c898c
imul eax, esi
dec ecx
imul edx, eax, 0xbbc40000
or ecx, 0x95a072bd
imul eax, esi, 0xe0d1bb3a
mov esi, dword [ebp + 8]
sub edx, ecx
xor eax, 0x352fc6a1
add edx, eax
imul eax, edi, 0x17edce76
add eax, 0x4b06cba0
add edx, eax
mov eax, edx
mov dword [ebp - 8], edx
sar eax, 0x18
mov ecx, edx
mov byte [ebx + 0xc], al
mov ebx, edx
mov dword [ebp - 4], eax
sar ecx, 8
sar ebx, 0x10
cmp byte [ebp - 4], bl
movzx eax, cl
movzx edx, dl
cmovae edx, eax
mov byte [esi + 0xd], bl
mov eax, dword [ebp - 8]
movzx eax, al
movzx ecx, cl
cmovae ecx, eax
mov byte [esi + 0xe], cl
mov byte [esi + 0xf], dl
movzx ebx, byte [esi + 3]
imul edi, ebx, 0x39f2996a
mov eax, ebx
mov dword [esi + 0x10], 0x71e438ea
not eax
imul edx, ebx, 0x95a072bd
imul esi, eax, 0x352fc6a1
mov ecx, edi
xor edi, 0xa406e033
not ecx
and ecx, 0xa406e033
sub esi, ecx
add esi, esi
lea eax, [edx + edx]
xor edx, 0x71de9a73
or eax, 0xe3bd34e7
sub esi, eax
add esi, edx
add esi, edi
imul eax, esi, 0x3a212
dec eax
imul ecx, esi, 0x2e9e2ef7
or eax, 0xfff8bd77
mov edi, dword [ebp + 8]
xor ecx, 0x3a144
sub ecx, eax
imul eax, ebx, 0x6aad403d
sub ecx, eax
sub ecx, 0x272ed0bc
imul edx, ecx, 0x4dd20000
add edx, 0x784024af
imul edx, ecx
add edx, 0xc8f39a51
mov eax, edx
mov dword [ebp - 8], edx
sar eax, 0x18
mov ebx, edx
mov dword [ebp - 4], eax
mov ecx, edx
mov byte [edi + 0x14], al
sar ecx, 8
movzx eax, cl
movzx edx, dl
sar ebx, 0x10
cmp byte [ebp - 4], bl
movzx ecx, cl
cmova edx, eax
mov byte [edi + 0x15], bl
mov eax, dword [ebp - 8]
movzx eax, al
cmova ecx, eax
or ebx, 0xffffffff
mov byte [edi + 0x17], cl
mov byte [edi + 0x16], dl
movzx esi, byte [edi + 6]
imul edx, esi, 0xbc42827d
imul eax, esi, 0x108e74f8
imul ecx, esi, 0x8473a7c
sub ebx, eax
lea eax, [edx*2 + 1]
not edx
or ebx, eax
xor ecx, edx
sub ecx, ebx
mov eax, esi
not eax
imul eax, eax, 0x43bd7d82
add eax, ecx
imul ecx, eax, 0x3a212
imul edx, eax, 0x2e9e2ef7
imul eax, esi, 0x5861e49b
add ecx, 0x14175
sub edx, 0x2054a0bb
or ecx, 0xfff8bd77
xor edx, 0x3a144
sub edx, ecx
sub edx, eax
sub edx, 0xf278f1e
imul eax, edx, 0x4dd20000
add eax, 0x784024af
imul edx, eax
add edx, 0xc8f39a51
mov eax, edx
mov dword [ebp - 8], edx
sar eax, 0x18
mov ebx, edx
mov dword [ebp - 4], eax
mov ecx, edx
sar ecx, 8
mov byte [edi + 0x18], al
sar ebx, 0x10
cmp byte [ebp - 4], bl
movzx eax, cl
movzx edx, dl
cmovbe edx, eax
movzx ecx, cl
mov eax, dword [ebp - 8]
movzx eax, al
cmovbe ecx, eax
mov byte [edi + 0x19], bl
mov byte [edi + 0x1a], cl
mov eax, dword [ebp - 0xc]
mov byte [edi + 0x1b], dl
movzx edx, al
imul ecx, edx, 0x4310e9a6
mov eax, edx
and eax, 3
dec ecx
or ecx, 0x1ab16677
sub eax, ecx
imul ecx, eax, 0x3976a10a
imul eax, edx, 0xde778b2d
shr eax, 2
xor eax, 0x5ca9d331
imul eax, eax, 0x1a257bd8
sub ecx, eax
imul eax, edx, 0xaf0bcc2
sub ecx, eax
lea edx, [ecx + 0x7f4dd213]
mov eax, edx
mov dword [ebp - 0xc], edx
sar eax, 0x18
mov ebx, edx
mov dword [ebp - 4], eax
mov ecx, edx
mov byte [edi + 0x1c], al
sar ebx, 0x10
sar ecx, 8
cmp byte [ebp - 4], bl
movzx eax, cl
movzx edx, dl
cmovb edx, eax
mov byte [edi + 0x1d], bl
mov eax, dword [ebp - 0xc]
movzx eax, al
movzx ecx, cl
cmovb ecx, eax
xor eax, eax
mov byte [edi + 0x1f], cl
mov byte [edi + 0x1e], dl
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret