Function at 0x425312
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x9c
mov eax, dword [ebp + 0x10]
mov edi, dword [ebp + 0xc]
push eax
sub esp, 0x10
mov ebx, esp
sub esp, 8
mov esi, esp
mov ecx, dword [eax + 4]
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ecx + eax + 2], 0
lea eax, [eax + 2]
jne 0x425330
mov ecx, 0xfffffffe
cmp word [edi + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x425340
sar eax, 1
sar ecx, 1
lea edx, [eax + ecx]
add edx, 0x3f
test edx, edx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x20], esi
jns 0x425366
mov eax, 0xffffffff
jmp 0x42536f
add eax, ecx
lea eax, [eax*2 + 0x7e]
push eax
call fcn.0040cbc0
add esp, 4
mov dword [ebp - 0x14], eax
mov dword [ebp - 0xa8], 0xf1990fb2
mov dword [ebp - 0xa4], 0xf555f365
mov dword [ebp - 0xa0], 0xf933f766
mov dword [ebp - 0x9c], 0xfd54fb69
mov dword [ebp - 0x98], 0xe159ff68
mov dword [ebp - 0x94], 0xe576e378
mov dword [ebp - 0x90], 0xe942e72f
mov dword [ebp - 0x8c], 0xed3eeb37
mov dword [ebp - 0x88], 0xd135ef3e
mov dword [ebp - 0x84], 0xd509d304
mov dword [ebp - 0x80], 0xd90fd702
mov dword [ebp - 0x7c], 0xdd01db0a
mov dword [ebp - 0x78], 0xc162df0b
mov dword [ebp - 0x74], 0xc566c36b
mov dword [ebp - 0x70], 0xc9c6c766
mov dword [ebp - 0x6c], 0
xor eax, eax
xor ecx, ecx
nop
nop
nop
movzx esi, byte [ebp + ecx - 0xa8]
mov ebx, eax
and ebx, 0x7a
mov edx, ecx
xor edx, 0xaf47e0fd
add edx, ebx
xor edx, esi
lea esi, [edx + edx]
mov ebx, esi
and ebx, 0x1c
xor edx, 0xe
add edx, ebx
and esi, 2
xor edx, 1
add edx, esi
mov byte [ebp + ecx - 0xa8], dl
inc ecx
add eax, 2
cmp ecx, 0x40
jne 0x425410
mov dword [ebp - 0x68], 0x59af5ba8
mov dword [ebp - 0x64], 0x5daf5fac
mov dword [ebp - 0x60], 0x51b553aa
mov dword [ebp - 0x5c], 0x55ad57a9
mov dword [ebp - 0x58], 0x698e6bb8
mov dword [ebp - 0x54], 0x6d946f93
mov dword [ebp - 0x50], 0x61e9638b
mov dword [ebp - 0x4c], 0x6592679c
mov dword [ebp - 0x48], 0x79897b88
mov dword [ebp - 0x44], 0x7df07f89
mov dword [ebp - 0x40], 0x7189734f
mov dword [ebp - 0x3c], 0x758277f8
mov dword [ebp - 0x38], 0x9f80b8f
mov dword [ebp - 0x34], 0xdf10ffd
mov dword [ebp - 0x30], 0x1f003fd
mov dword [ebp - 0x2c], 0x53b073d
mov dword [ebp - 0x28], 0x191a1b39
mov byte [ebp - 0x22], 0
mov word [ebp - 0x24], 0
mov eax, 0x8f
mov ecx, 0x70
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [ebp + eax - 0xf7]
mov edx, ecx
xor edx, eax
and edx, esi
xor edx, eax
add dl, 0x35
mov byte [ebp + eax - 0xf7], dl
inc eax
dec ecx
cmp eax, 0xd6
jne 0x4254e0
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebx + 4]
movzx edx, word [ecx]
mov esi, dword [ebp - 0x14]
mov eax, esi
test dx, dx
je 0x425531
add ecx, 2
mov eax, esi
nop
nop
nop
nop
nop
mov word [eax], dx
add eax, 2
movzx edx, word [ecx]
add ecx, 2
test dx, dx
jne 0x425520
mov word [eax], 0
movzx ecx, word [ebp - 0x68]
test cx, cx
je 0x425561
lea edx, [ebp - 0x66]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x425550
mov word [eax], 0
movzx ecx, word [edi]
test cx, cx
je 0x425591
add edi, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edi]
add edi, 2
test cx, cx
jne 0x425580
mov word [eax], 0
movzx ecx, word [ebp - 0xa8]
test cx, cx
je 0x4255c1
lea edx, [ebp - 0xa6]
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x4255b0
mov word [eax], 0
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax]
mov eax, 0xfffffffe
cmp word [ecx + eax + 2], 0
lea eax, [eax + 2]
jne 0x4255d0
mov dword [ebp - 0x1c], ecx
mov edx, dword [ebx]
mov ecx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edx + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x4255f0
mov esi, dword [ebx + 8]
mov edx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [esi + edx + 2], 0
lea edx, [edx + 2]
jne 0x425610
sar eax, 1
sar ecx, 1
sar edx, 1
add ecx, eax
lea eax, [edx + ecx]
add eax, 0xb
test eax, eax
mov ebx, dword [ebp - 0x18]
jns 0x425637
mov eax, 0xffffffff
jmp 0x425640
add ecx, edx
lea eax, [ecx*2 + 0x16]
push eax
call fcn.0040cbc0
add esp, 4
mov dword [ebp - 0x10], eax
mov dword [ebx], 0x63036137
mov dword [ebx + 4], 0x671a6518
mov dword [ebx + 8], 0x7b0e791d
mov dword [ebx + 0xc], 0x7f417d0f
mov dword [ebx + 0x10], 0x7170
mov edx, 0x3376568
mov esi, 0xfcc89a97
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [ebx + edx - 0x3376568]
mov eax, edx
and eax, edi
add eax, eax
mov ebx, edi
sub ebx, eax
add ebx, edx
sub eax, edi
add eax, esi
and eax, edx
or ebx, esi
not ebx
or ebx, eax
mov eax, ebx
or al, 0xfd
inc al
mov ecx, ebx
and cl, 0xfd
mul cl
mov ecx, eax
mov eax, edi
add cl, al
mov eax, ebx
shr al, 1
and al, 1
or bl, 2
mul bl
mov ebx, dword [ebp - 0x18]
add al, al
sub cl, al
movzx eax, cl
add eax, edx
add al, 0xf8
mov byte [ebx + edx - 0x3376568], al
inc edx
dec esi
cmp edx, 0x337657c
jne 0x425680
movzx ecx, word [ebx]
mov eax, dword [ebp - 0x10]
test cx, cx
je 0x425701
add ebx, 2
mov eax, dword [ebp - 0x10]
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [ebx]
add ebx, 2
test cx, cx
jne 0x4256f0
mov word [eax], 0
mov edx, dword [ebp - 0x1c]
movzx ecx, word [edx]
test cx, cx
mov esi, dword [ebp - 0x20]
mov ebx, dword [ebp + 0x10]
je 0x425731
add edx, 2
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x425720
mov word [eax], 0x5f
add eax, 2
mov ecx, dword [ebx]
movzx edx, word [ecx]
test dx, dx
je 0x425763
add ecx, 2
mov edi, dword [ebp - 0x10]
nop
nop
nop
nop
nop
nop
nop
mov word [eax], dx
add eax, 2
movzx edx, word [ecx]
add ecx, 2
test dx, dx
jne 0x425750
jmp 0x425766
mov edi, dword [ebp - 0x10]
mov word [eax], 0x5f
add eax, 2
mov ecx, dword [ebx + 8]
movzx edx, word [ecx]
test dx, dx
je 0x425791
add ecx, 2
nop
nop
nop
nop
mov word [eax], dx
add eax, 2
movzx edx, word [ecx]
add ecx, 2
test dx, dx
jne 0x425780
mov word [eax], 0
mov dword [esi], 0x939291fa
mov word [esi + 4], 0
mov eax, 0xbd021ca4
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esi + eax + 0x42fde35c]
mov edx, ecx
and edx, eax
add dl, dl
sub cl, dl
movzx ecx, cl
add ecx, eax
add cl, 0xcc
mov byte [esi + eax + 0x42fde35c], cl
inc eax
cmp eax, 0xbd021caa
jne 0x4257b0
push 0
push 1
push 0
push esi
mov esi, dword [ebp - 0x14]
push esi
push edi
push dword [ebp + 8]
call fcn.00425a40
add esp, 0x1c
mov ebx, eax
jmp dword [0x44dcf8]