Function at 0x425ab0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x158
mov dword [esp + 0x10], 0xab63a54d
mov dword [esp + 0x14], 0xaf18a91a
mov dword [esp + 0x18], 0xb30bad6a
mov dword [esp + 0x1c], 0xb717b106
mov dword [esp + 0x20], 0xbbb4b55d
lea eax, [esp + 0x24]
mov dword [esp + 0x24], 0
mov dword [esp + 0x27], 0
mov ecx, 0x520a6bc5
movzx edx, byte [esp + ecx - 0x520a6bb5]
xor edx, ecx
mov dword [esp + 0x84], edx
mov edx, dword [esp + 0x84]
mov esi, edx
xor esi, 0x63
and edx, 0x1c
add edx, edx
sub edx, esi
mov byte [esp + ecx - 0x520a6bb5], dl
cmp ecx, 0x520a6bdf
je 0x425b66
movzx edx, byte [esp + ecx - 0x520a6bb4]
lea esi, [ecx + 1]
xor esi, edx
mov dword [esp + 0x84], esi
mov edx, dword [esp + 0x84]
mov esi, edx
xor esi, 0x63
and edx, 0x1c
add edx, edx
sub edx, esi
mov byte [esp + ecx - 0x520a6bb4], dl
add ecx, 2
jmp 0x425b00
lea esi, [esp + 0x12a]
lea edx, [esp + 0x10]
mov edi, esi
mov ecx, 5
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0x13e]
xor ecx, ecx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
lea edi, [esp + 0x6c]
push edi
push 0
push 0
push 9
push esi
push 0
call dword [0x44d510]
mov ebx, dword [esp + 0x6c]
test ebx, ebx
jns 0x425baf
mov eax, 0xffffffff
jmp 0x425bb2
lea eax, [ebx + ebx]
push eax
call fcn.00408d90
add esp, 4
push edi
push ebx
mov dword [esp + 0x58], eax
push eax
push 9
push esi
push 0
call dword [0x44d510]
mov dword [esp + 0x10], 0xbb13b972
mov dword [esp + 0x14], 0xbf19bd2f
mov dword [esp + 0x18], 0xa332a12f
mov dword [esp + 0x1c], 0xa7a4a506
mov word [esp + 0x20], 0
mov byte [esp + 0x22], 0
mov eax, 0x64bf0e38
mov ecx, 0xc97e1c70
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax - 0x64bf0e28]
mov esi, ecx
and esi, 0x4920106e
mov edi, eax
xor edi, 0xbf9008b7
lea ebx, [edi + esi]
add ebx, 0x79642858
not edx
mov esi, ebx
and esi, edx
lea edi, [esi + esi]
not edi
add edi, esi
or edx, ebx
lea ebx, [edx + edx]
not ebx
add ebx, edx
or ebx, esi
and edx, edi
not edx
and edx, ebx
mov dword [esp + 0x84], edx
mov edx, dword [esp + 0x84]
add dl, 0xf
mov byte [esp + eax - 0x64bf0e28], dl
inc eax
add ecx, 2
cmp eax, 0x64bf0e4b
jne 0x425c10
lea edi, [esp + 0xfe]
lea eax, [esp + 0x10]
mov ecx, 4
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [esp + 0x10e]
lea eax, [esp + 0x20]
xor ecx, ecx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x10], 0x3bb015a
mov dword [esp + 0x14], 0x1fa11d8f
mov dword [esp + 0x18], 0x1baa19af
mov dword [esp + 0x1c], 0x174915a6
mov dword [esp + 0x20], 0x13a611b5
mov dword [esp + 0x24], 0x6fde6db1
mov dword [esp + 0x28], 0x6b6869e5
lea eax, [esp + 0x2c]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x2c], 0
mov dword [esp + 0x2f], 0
mov eax, 0x345e80ab
nop
nop
nop
mov dword [esp], eax
movzx edx, byte [esp + eax - 0x345e809b]
lea edi, [eax - 0x345e8000]
and edi, edx
lea ebx, [edi + edi]
not ebx
add ebx, edi
mov ecx, ebx
and ecx, 2
mov eax, edi
and eax, 2
mov dword [esp + 4], eax
xor ebx, 2
sub ebx, eax
mov eax, 0xfffffffd
sub eax, ebx
not ebx
and ebx, ecx
mov esi, ecx
not esi
and esi, eax
imul esi, ebx
mov ebx, eax
and ebx, ecx
or eax, ecx
imul eax, ebx
or edi, 2
imul edi, dword [esp + 4]
sub edx, eax
sub edx, esi
sub edx, edi
add edx, dword [esp]
mov dword [esp + 0x84], edx
mov eax, dword [esp + 0x84]
add al, 0x53
mov ecx, dword [esp]
mov byte [esp + ecx - 0x345e809b], al
mov eax, dword [esp]
inc eax
cmp eax, 0x345e80ce
jne 0x425cf0
lea edi, [esp + 0x10e]
lea eax, [esp + 0x10]
mov ecx, 7
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [esp + 0x12a]
xor ecx, ecx
mov eax, dword [esp + 0x4c]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x10], 0x638b61a4
mov dword [esp + 0x14], 0x678565f7
mov dword [esp + 0x18], 0x6bf86987
mov dword [esp + 0x1c], 0x6f9e6d88
mov dword [esp + 0x20], 0x13d011e4
lea eax, [esp + 0x24]
mov dword [esp + 0x5c], eax
mov word [esp + 0x24], 0x1514
mov dword [esp + 0x26], 0
mov byte [esp + 0x2a], 0
mov edi, 0xe5c96a9
mov edx, 0x1cb92d52
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 4], edx
movzx ecx, byte [esp + edi - 0xe5c9699]
mov esi, dword [esp + 4]
and esi, 0x8982560
mov ebx, edi
xor ebx, 0xe5ee73b0
mov eax, 0xa8
sub eax, esi
sub eax, ebx
lea edx, [esi + ebx]
add edx, 0xf1a36957
mov dword [esp + 0x4c], edx
mov dword [esp], ecx
mov edx, ecx
not edx
lea ebx, [ecx + edx*2]
mov esi, 0xfffffffe
sub esi, ebx
mov ecx, esi
and ecx, 0xfffffffd
mov ebx, dword [esp]
lea ebx, [ebx + edx*2]
inc ebx
and ebx, 2
imul ebx, ecx
mov ecx, esi
and ecx, 2
or esi, 2
imul esi, ecx
sub ebx, dword [esp]
add ebx, esi
mov edx, dword [esp + 4]
mov ecx, ebx
mov esi, dword [esp + 0x4c]
and ecx, esi
add ebx, esi
add ecx, ecx
sub ebx, ecx
mov ecx, ebx
not ecx
or ecx, esi
add ecx, ebx
inc ecx
and eax, dword [esp]
or eax, ecx
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x84]
add al, 0x30
mov byte [esp + edi - 0xe5c9699], al
inc edi
add edx, 2
cmp edi, 0xe5c96c4
jne 0x425df0
lea esi, [esp + 0x13e]
lea eax, [esp + 0x10]
mov edi, esi
mov ecx, 5
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [esp + 0x152]
mov ecx, 1
mov eax, dword [esp + 0x5c]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
lea eax, [esp + 0xfe]
mov dword [esp + 0xd8], eax
lea eax, [esp + 0x10e]
mov dword [esp + 0xdc], eax
mov dword [esp + 0xe0], esi
mov esi, dword [esp + 0x50]
mov eax, esi
add eax, 2
mov dword [esp + 0x74], eax
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x5c], 0
cmp ecx, 0xc
setne al
xor ecx, ecx
jmp dword [eax*4 + 0x449adc]