Function at 0x425871
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x8c
mov eax, dword [esp + 0xa8]
mov edx, dword [esp + 0xa4]
mov ecx, dword [eax + 4]
mov eax, 0xfffffffe
cmp word [ecx + eax + 2], 0
lea eax, [eax + 2]
jne 0x425620
mov ecx, 0xfffffffe
cmp word [edx + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x425630
sar eax, 1
sar ecx, 1
lea edx, [eax + ecx]
add edx, 0x3f
test edx, edx
jns 0x425650
mov eax, 0xffffffff
jmp 0x425659
add eax, ecx
lea eax, [eax*2 + 0x7e]
push eax
call fcn.0040ce80
add esp, 4
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], 0x3fab399a
mov dword [esp + 0x50], 0x23873dab
mov dword [esp + 0x54], 0x276121b6
mov dword [esp + 0x58], 0x2bb825b7
mov dword [esp + 0x5c], 0x2f8b29bc
mov dword [esp + 0x60], 0x13862db4
mov dword [esp + 0x64], 0x17b21159
mov dword [esp + 0x68], 0x1b4e1549
mov dword [esp + 0x6c], 0x1f47194e
mov dword [esp + 0x70], 0x35b1d48
mov dword [esp + 0x74], 0x75d015a
mov dword [esp + 0x78], 0xb530552
mov dword [esp + 0x7c], 0xfb2095d
mov dword [esp + 0x80], 0x73d60da5
mov dword [esp + 0x84], 0x777671d6
mov dword [esp + 0x88], 0
mov eax, 0x8a
mov ecx, 0x75
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax - 0x3e]
mov edi, eax
or edi, edx
not edx
or edx, ecx
and edx, edi
add dl, 0x4e
mov byte [esp + eax - 0x3e], dl
inc eax
dec ecx
cmp eax, 0xca
jne 0x425700
mov dword [esp], 0x17b0760
mov dword [esp + 4], 0xd73037c
mov dword [esp + 8], 0x96d0f7e
mov dword [esp + 0xc], 0x15650b61
mov dword [esp + 0x10], 0x117a1770
mov dword [esp + 0x14], 0x1d7c137f
mov dword [esp + 0x18], 0x19611f7f
mov dword [esp + 0x1c], 0x25661b6c
mov dword [esp + 0x20], 0x21512740
mov dword [esp + 0x24], 0x2d582351
mov dword [esp + 0x28], 0x29412f1b
mov dword [esp + 0x2c], 0x35562b50
mov dword [esp + 0x30], 0x3140375b
mov dword [esp + 0x34], 0x3d59334d
mov dword [esp + 0x38], 0x39483f4d
mov dword [esp + 0x3c], 0x450f3b0d
mov dword [esp + 0x40], 0x41464771
mov word [esp + 0x44], 0
mov edi, 0x95672f01
mov ecx, 0x6a98d100
mov edx, 0xadf5fdfe
nop
nop
nop
nop
movzx ebp, byte [esp + edi + 0x6a98d0ff]
mov eax, edi
and eax, ebp
mov esi, eax
and esi, 0xfffffffd
mov ebx, eax
and ebx, 2
or eax, 2
imul eax, ebx
xor ebx, 2
imul ebx, esi
add eax, ebx
mov esi, edx
sub esi, ebp
lea ebx, [ecx + ebp]
add ebx, 0xe7713101
and esi, eax
not eax
and eax, ebx
sub eax, esi
add al, 0xfb
mov byte [esp + edi + 0x6a98d0ff], al
inc edi
inc ecx
dec edx
cmp edi, 0x95672f47
jne 0x4257c0
mov esi, dword [esp + 0xa8]
mov ecx, dword [esi + 4]
movzx edx, word [ecx]
mov ebp, dword [esp + 0x48]
mov eax, ebp
test dx, dx
je 0x425841
add ecx, 2
mov eax, ebp
nop
nop
nop
nop
nop
nop
mov word [eax], dx
add eax, 2
movzx edx, word [ecx]
add ecx, 2
test dx, dx
jne 0x425830
mov word [eax], 0
movzx ecx, word [esp]
test cx, cx
je 0x425871
lea edx, [esp + 2]
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 0x425860
mov word [eax], 0
mov edx, dword [esp + 0xa4]
movzx ecx, word [edx]
test cx, cx
je 0x4258a1
add edx, 2
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 0x425890
mov word [eax], 0
movzx ecx, word [esp + 0x4c]
test cx, cx
je 0x4258d1
lea edx, [esp + 0x4e]
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 0x4258c0
mov word [eax], 0
mov eax, dword [esp + 0xac]
mov ebx, dword [eax]
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ebx + eax + 2], 0
lea eax, [eax + 2]
jne 0x4258f0
mov edx, dword [esi]
mov ecx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edx + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x425910
mov edi, dword [esi + 8]
mov edx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edi + edx + 2], 0
lea edx, [edx + 2]
jne 0x425930
sar eax, 1
sar ecx, 1
sar edx, 1
add ecx, eax
lea eax, [edx + ecx]
add eax, 0xb
test eax, eax
jns 0x425954
mov eax, 0xffffffff
jmp 0x42595d
add ecx, edx
lea eax, [ecx*2 + 0x16]
push eax
call fcn.0040ce80
add esp, 4
mov edi, eax
mov dword [esp], 0x117d1f75
mov dword [esp + 4], 0x158e138c
mov dword [esp + 8], 0x9821773
mov dword [esp + 0xc], 0xd5b0b9d
mov word [esp + 0x10], 0xf0c
mov dword [esp + 0x12], 0
mov byte [esp + 0x16], 0
xor eax, eax
nop
nop
nop
mov ecx, eax
add cl, 5
xor cl, byte [esp + eax]
add cl, 0xe7
mov byte [esp + eax], cl
inc eax
cmp eax, 0x17
jne 0x4259a0
movzx ecx, word [esp]
mov eax, edi
test cx, cx
je 0x4259e1
lea edx, [esp + 2]
mov eax, edi
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 0x4259d0
mov word [eax], 0
movzx ecx, word [ebx]
test cx, cx
je 0x425a11
add ebx, 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 [ebx]
add ebx, 2
test cx, cx
jne 0x425a00
mov word [eax], 0x5f
add eax, 2
mov ecx, dword [esi]
movzx edx, word [ecx]
test dx, dx
je 0x425a41
add ecx, 2
nop
nop
nop
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 0x425a30
mov word [eax], 0x5f
add eax, 2
mov ecx, dword [esi + 8]
movzx edx, word [ecx]
test dx, dx
je 0x425a71
add ecx, 2
nop
nop
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 0x425a60
mov word [eax], 0
mov dword [esp], 0x4146472e
mov word [esp + 4], 0
mov eax, 0x5b56051f
mov ecx, 0xb6ac0a3e
nop
nop
movzx edx, byte [esp + eax - 0x5b56051f]
mov esi, ecx
and esi, 0x20040862
mov ebx, eax
xor ebx, 0xb0aadef1
add ebx, esi
add ebx, 0xa4a9fae1
mov esi, edx
and esi, ebx
add esi, esi
sub ebx, esi
add bl, dl
add bl, 0x4b
mov byte [esp + eax - 0x5b56051f], bl
inc eax
add ecx, 2
cmp eax, 0x5b560525
jne 0x425a90
mov eax, esp
push 0
push 1
push 0
push eax
push ebp
push edi
push dword [esp + 0xb8]
call fcn.00425d70
add esp, 0x1c
mov ebx, eax
jmp dword [0x44be6c]