Function at 0x425200
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x40
mov dword [esp + 0x38], 0
mov dword [esp + 0x20], 0x62656467
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0
mov word [esp + 0x2c], 0
mov esi, 0xe71b0e31
mov ebx, 0x18e4f1ce
nop
nop
nop
mov dword [esp + 4], ebx
movzx edi, byte [esp + esi + 0x18e4f1ef]
mov eax, edi
mov ecx, edi
xor ecx, 0xbbfb3c7d
or edi, 0x82
and edi, ecx
mov ecx, esi
and ecx, 0x83190c74
mov dword [esp + 0x10], ecx
lea edx, [esi + 0x40000000]
and edx, 0x20020009
add ecx, edx
xor ecx, 0xbbfb3c7d
mov ebx, dword [esp + 4]
and ebx, 0x18e0307d
mov dword [esp], ebx
mov ebx, dword [esp]
add ebx, esi
add ebx, 0x4404c383
and ebx, ecx
mov dword [esp + 8], ebx
and eax, 0x7d
xor eax, edi
and edi, 0x7d
xor eax, 0xbbfb3c7d
lea eax, [eax + edi*2]
inc eax
not edi
mov ecx, eax
and ecx, edi
xor edi, eax
lea eax, [edi + ecx*2]
mov dword [esp + 0xc], eax
mov ebx, dword [esp]
mov eax, ebx
mov edi, dword [esp + 8]
sub eax, edi
sub eax, edx
mov ecx, dword [esp + 0x10]
sub eax, ecx
add edx, ecx
add edx, edi
sub edx, ebx
mov ebx, dword [esp + 4]
add eax, esi
add edx, ebx
xor edx, eax
and edx, dword [esp + 0xc]
xor edx, eax
mov dword [esp + 0x18], edx
mov eax, dword [esp + 0x18]
lea ecx, [eax + eax]
not ecx
add ecx, eax
and ecx, 0x57
and eax, 0xa8
sub eax, ecx
mov byte [esp + esi + 0x18e4f1ef], al
inc esi
dec ebx
cmp esi, 0xe71b0e3f
jne 0x425240
mov eax, dword [esp + 0x20]
mov ecx, dword [0x44fb4c]
test ecx, ecx
je 0x425364
xor edx, edx
mov esi, dword [0x44fb50]
nop
nop
nop
nop
nop
nop
nop
cmp dword [esi + edx*8], 0x10def2fc
je 0x425340
inc edx
cmp ecx, edx
jne 0x425330
jmp 0x425364
mov ecx, dword [esi + edx*8 + 4]
cmp ecx, eax
je 0x425364
lea eax, [esp + 0x38]
push eax
push 0
push 0
push 5
push 4
push dword [0x44fb54]
push ecx
call fcn.00440280
add esp, 0x1c
cmp eax, 0xc0000004
jne 0x4254b0
push dword [esp + 0x38]
call fcn.0043e5e0
add esp, 4
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x14], eax
mov dword [esp + 0x20], 0x62656467
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0
mov word [esp + 0x2c], 0
mov edi, 0xe71b0e31
mov edx, 0x18e4f1ce
mov dword [esp + 4], edx
movzx ebx, byte [esp + edi + 0x18e4f1ef]
mov eax, ebx
mov ecx, ebx
xor ecx, 0xbbfb3c7d
or ebx, 0x82
and ebx, ecx
mov ecx, edi
and ecx, 0x83190c74
mov dword [esp + 0x10], ecx
lea esi, [edi + 0x40000000]
and esi, 0x20020009
add ecx, esi
xor ecx, 0xbbfb3c7d
mov edx, dword [esp + 4]
and edx, 0x18e0307d
mov dword [esp], edx
mov edx, dword [esp]
add edx, edi
add edx, 0x4404c383
and edx, ecx
mov dword [esp + 8], edx
and eax, 0x7d
xor eax, ebx
and ebx, 0x7d
xor eax, 0xbbfb3c7d
lea eax, [eax + ebx*2]
inc eax
not ebx
mov ecx, eax
and ecx, ebx
xor ebx, eax
lea eax, [ebx + ecx*2]
mov dword [esp + 0xc], eax
mov edx, dword [esp]
mov eax, edx
mov ebx, dword [esp + 8]
sub eax, ebx
sub eax, esi
mov ecx, dword [esp + 0x10]
sub eax, ecx
add esi, ecx
add esi, ebx
sub esi, edx
mov edx, dword [esp + 4]
add eax, edi
add esi, edx
xor esi, eax
and esi, dword [esp + 0xc]
xor esi, eax
mov dword [esp + 0x18], esi
mov eax, dword [esp + 0x18]
lea ecx, [eax + eax]
not ecx
add ecx, eax
and ecx, 0x57
and eax, 0xa8
sub eax, ecx
mov byte [esp + edi + 0x18e4f1ef], al
inc edi
dec edx
cmp edi, 0xe71b0e3f
jne 0x4253b0
mov eax, dword [esp + 0x20]
mov ecx, dword [0x44fb4c]
test ecx, ecx
je 0x4254dc
xor edx, edx
mov esi, dword [0x44fb50]
nop
nop
nop
nop
nop
nop
nop
cmp dword [esi + edx*8], 0x10def2fc
je 0x4254b7
inc edx
cmp ecx, edx
jne 0x4254a0
jmp 0x4254dc
xor ebx, ebx
jmp 0x4257c2
mov ecx, dword [esi + edx*8 + 4]
cmp ecx, eax
je 0x4254dc
push 0
push dword [esp + 0x18]
push dword [esp + 0x24]
push 5
push 4
push dword [0x44fb54]
push ecx
call fcn.00440280
add esp, 0x1c
xor ebx, ebx
test eax, eax
js 0x4257b6
mov edx, dword [esp + 0x1c]
xor edi, edi
mov ebx, dword [edx]
xor eax, eax
mov ecx, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
lea esi, [edx + ecx]
mov ecx, dword [edx + ecx]
add eax, 0x208
add edi, 0x104
mov edx, esi
test ecx, ecx
jne 0x425500
test edi, edi
jns 0x425520
mov eax, 0xffffffff
push eax
call fcn.00409230
add esp, 4
mov edi, eax
mov dword [esp], eax
mov eax, dword [esp + 0x1c]
jmp 0x425552
mov esi, edi
add eax, ebx
lea edi, [esi + 2]
mov word [esi], 0xa
mov ebx, dword [eax]
test ebx, ebx
je 0x425583
mov ecx, dword [eax + ebx + 0x3c]
movzx edx, word [ecx]
test dx, dx
je 0x425540
add ecx, 2
mov esi, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [esi], dx
add esi, 2
movzx edx, word [ecx]
add ecx, 2
test dx, dx
jne 0x425570
jmp 0x425542
xor ebx, ebx
mov eax, dword [esp]
cmp edi, eax
je 0x4257ad
mov word [edi], 0
movzx ecx, word [eax]
test cx, cx
je 0x4255ec
xor ebx, ebx
mov eax, dword [esp]
jmp 0x4255c2
mov ebx, dword [esp + 4]
add ebx, edx
movzx ecx, word [eax + 2]
add eax, 2
test cx, cx
je 0x4255ec
cmp eax, edi
jae 0x4255ec
mov dword [esp + 4], ebx
movzx ebx, cx
cmp ebx, 0x800
mov ecx, 3
sbb ecx, 0
mov edx, 1
cmp ebx, 0x80
jb 0x4255b0
mov edx, ecx
jmp 0x4255b0
lea eax, [ebx + 1]
mov dword [esp + 0x10], eax
push eax
call fcn.00409230
add esp, 4
mov dword [esp + 0x14], eax
mov dword [esp + 4], ebx
test ebx, ebx
jle 0x4256f3
mov eax, dword [esp + 0x14]
cmp dword [esp], edi
jae 0x4256f3
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x14]
lea edi, [ecx + eax]
add dword [esp + 0x10], ecx
mov eax, ecx
mov edx, dword [esp]
mov dword [esp + 0xc], edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, word [edx]
test bx, bx
je 0x4256f3
cmp bx, 0x7f
ja 0x425660
mov byte [eax], bl
mov ecx, 1
jmp 0x4256e0
mov edi, dword [esp + 0x10]
sub edi, eax
mov ecx, edi
xor ecx, 1
and edi, 0xfffffffe
add edi, edi
sub edi, ecx
movzx ecx, bx
cmp edi, 2
jb 0x4256a0
cmp ecx, 0x7ff
ja 0x4256a0
mov ecx, ebx
shr ecx, 6
add cl, 0xc0
mov byte [eax], cl
and bl, 0x3f
or bl, 0x80
mov byte [eax + 1], bl
mov ecx, 2
mov edi, dword [esp + 0xc]
jmp 0x4256e0
mov dword [esp + 8], ecx
xor ecx, ecx
cmp edi, 3
mov edi, dword [esp + 0xc]
jb 0x4256e0
mov ecx, dword [esp + 8]
shr ecx, 0xc
or cl, 0xe0
mov byte [eax], cl
mov ecx, dword [esp + 8]
shr ecx, 6
and cl, 0x3f
or cl, 0x80
mov byte [eax + 1], cl
and bl, 0x3f
or bl, 0x80
mov byte [eax + 2], bl
mov ecx, 3
nop
nop
nop
nop
nop
nop
nop
add eax, ecx
cmp eax, edi
jae 0x4256f3
lea ecx, [edx + 2]
cmp edx, esi
mov edx, ecx
jb 0x425640
mov byte [eax], 0
mov dword [esp + 0x20], 0x606d7310
mov dword [esp + 0x24], 0x62757661
mov dword [esp + 0x28], 0x737e277b
mov word [esp + 0x2c], 0xcd78
mov dword [esp + 0x2e], 0
mov dword [esp + 0x32], 0
mov word [esp + 0x36], 0
xor eax, eax
nop
nop
movzx esi, byte [esp + eax + 0x20]
lea ecx, [esi + esi]
not ecx
add ecx, esi
not esi
and esi, ecx
mov edx, 0x73e11e5f
sub edx, eax
or esi, edx
not esi
and edx, ecx
or edx, esi
lea ecx, [edx + edx]
not ecx
add ecx, edx
mov dword [esp + 0x18], ecx
mov edx, dword [esp + 0x18]
mov ecx, edx
or ecx, 0x9f
add ecx, edx
not edx
or edx, 0x9f
add ecx, edx
add cl, 2
mov byte [esp + eax + 0x20], cl
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
cmp eax, 0x18
jb 0x425730
lea eax, [esp + 0x20]
mov ecx, dword [ebp + 8]
push dword [esp + 4]
mov esi, dword [esp + 0x18]
push esi
push eax
call fcn.00409df0
mov ebx, eax
push esi
call fcn.00409240
add esp, 4
mov eax, dword [esp]
push eax
call fcn.00409240
add esp, 4
push dword [esp + 0x1c]
call fcn.0043e740
add esp, 4
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret