Function at 0x4275ac
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x450
mov ebp, dword [esp + 0x464]
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x50], 0x8f3a893f
mov dword [esp + 0x54], 0x83238d29
mov dword [esp + 0x58], 0x87f4813d
mov dword [esp + 0x5c], 0x9b128521
mov dword [esp + 0x60], 0x9f9e993d
mov dword [esp + 0x64], 0
mov eax, 0xa2
mov ecx, 0x5d
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax - 0x52]
mov esi, ecx
and esi, 0x5e
mov edi, eax
and edi, 0xa1
or edi, esi
xor edi, 0xa1
and edi, edx
or edx, ecx
not edx
or edx, edi
add dl, 0xd6
mov byte [esp + eax - 0x52], dl
inc eax
dec ecx
cmp eax, 0xba
jne case.default.0x4275a5
lea eax, [esp + 0x50]
lea ecx, [esp + 0x30]
push eax
call fcn.00439ad0
shr eax, 0x1f
xor ebx, ebx
jmp dword [eax*4 + 0x446ce4]
lea ecx, [esp + 0x30]
push 0x410
call fcn.00439d30
not eax
shr eax, 0x1f
xor ebx, ebx
jmp dword [eax*4 + 0x446cec]
mov dword [esp + 0x50], 0x1a23e805
mov dword [esp + 0x54], 0x101a3d00
mov dword [esp + 0x58], 0x1c050321
mov dword [esp + 0x5c], 0x170e0625
mov dword [esp + 0x60], 0x2b3226
mov dword [esp + 0x64], 0xf2c362d
mov dword [esp + 0x68], 0xf2e9ceea
mov dword [esp + 0x6c], 0xf6cff4d3
mov dword [esp + 0x70], 0xc6d0d6d2
mov dword [esp + 0x74], 0xfec3b5d1
mov dword [esp + 0x78], 0x9baac1c1
mov word [esp + 0x7c], 0
mov eax, 0x6807b9e8
nop
nop
nop
nop
movzx edx, byte [esp + eax - 0x6807b998]
xor edx, eax
mov ecx, edx
or ecx, 0x77
add ecx, edx
not edx
or edx, 0x77
add ecx, edx
add cl, 2
mov byte [esp + eax - 0x6807b998], cl
inc eax
cmp eax, 0x6807ba16
jne 0x427630
lea eax, [esp + 0x44]
lea ecx, [esp + 0x30]
push 0
push 0x2b
lea edx, [esp + 0x58]
push edx
push eax
call fcn.0043a210
mov ebx, dword [esp + 0x44]
mov esi, dword [esp + 0x48]
xor eax, eax
cmp ebx, esi
sete al
jmp dword [eax*4 + 0x446cf4]
mov ecx, esi
not ecx
and ecx, ebx
mov eax, ebx
not eax
and eax, esi
sub eax, ecx
sar eax, 2
mov ecx, eax
and ecx, 0xfffffbde
mov edx, eax
and edx, 0x421
or eax, 0x421
imul eax, edx
xor edx, 0x421
imul edx, ecx
add eax, edx
push eax
call fcn.00409550
add esp, 4
mov dword [esp + 0x1c], 0
xor ecx, ecx
mov dword [esp + 0x20], esi
cmp ebx, esi
setne cl
mov dword [esp + 0x10], eax
mov dword [esp], eax
jmp dword [ecx*4 + 0x446cfc]
mov ebx, dword [esp + 0x28]
add ebx, 4
xor eax, eax
cmp ebx, dword [esp + 0x20]
setne al
jmp dword [eax*4 + 0x446cfc]
mov esi, dword [ebx]
push 0x400
push 0
lea edi, [esp + 0x58]
push edi
call fcn.004096e0
add esp, 0xc
lea eax, [esp + 0x14]
lea ecx, [esp + 0x30]
push eax
push 0x400
push edi
push esi
call fcn.0043a150
cmp eax, 0xc0000000
setae al
cmp dword [esp + 0x14], 0
sete cl
or cl, al
movzx eax, cl
mov dword [esp + 0x28], ebx
jmp dword [eax*4 + 0x446d0c]
mov eax, 1
jmp 0x427762
xor eax, eax
mov ecx, dword [case.0x4275a5.13]
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
jmp dword [eax*4 + 0x446d24]
mov byte [esp + 0x44f], 0
movzx eax, byte [esp + 0x50]
xor esi, esi
test al, al
je 0x4277a1
lea ecx, [esp + 0x50]
cmp al, 0x2e
je 0x42779f
movzx eax, byte [ecx + 1]
inc ecx
test al, al
jne 0x427790
jmp 0x4277a1
mov esi, ecx
xor eax, eax
test esi, esi
setne al
jmp dword [eax*4 + 0x446d2c]
movzx eax, byte [esi + 1]
inc esi
xor ebx, ebx
test al, al
je 0x4277d1
mov ecx, esi
nop
nop
nop
nop
cmp al, 0x2e
je 0x4277cf
movzx eax, byte [ecx + 1]
inc ecx
test al, al
jne 0x4277c0
jmp 0x4277d1
mov ebx, ecx
xor eax, eax
test ebx, ebx
setne al
jmp dword [eax*4 + 0x446d34]
mov edx, ebx
sub edx, esi
mov eax, edx
and eax, 3
mov edi, edx
or edi, 3
imul edi, eax
xor eax, 3
mov ecx, edx
and ecx, 0xfffffffc
imul ecx, eax
add edi, ecx
shr edi, 2
movzx eax, byte [ebx - 1]
cmp eax, 0x3d
je 0x42780e
cmp eax, 0x2e
jne 0x427815
mov eax, edi
not eax
lea edi, [eax + edi*2]
movzx eax, byte [esi + edx - 2]
cmp eax, 0x3d
mov dword [esp + 8], edx
je 0x427828
cmp eax, 0x2e
jne 0x427829
dec edi
mov dword [esp + 0x40], edi
lea eax, [edi + 1]
push eax
call fcn.00409550
add esp, 4
mov dword [esp + 0xc], eax
mov dword [esp + 0x2c], esi
cmp ebx, esi
mov esi, dword [esp + 8]
je 0x42794e
mov dword [esp + 4], 0
mov ebp, 2
jmp 0x427894
shl bl, 6
add al, bl
and edi, 1
mov edx, esi
mov ecx, esi
xor ecx, 1
lea ecx, [ecx + edi*2]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0xc]
mov byte [ecx + esi], al
nop
nop
nop
nop
nop
nop
nop
mov esi, dword [esp + 8]
lea eax, [ebp + 4]
add ebp, 2
cmp ebp, esi
mov ebp, eax
jae 0x42794e
mov edi, dword [esp + 0x2c]
movzx eax, byte [edi + ebp - 2]
push eax
call fcn.0041d8d0
add esp, 4
mov ebx, eax
movzx eax, byte [edi + ebp - 1]
push eax
call fcn.0041d8d0
add esp, 4
mov bh, al
shl bl, 2
shr al, 4
and al, 3
or al, bl
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 4]
mov byte [ecx + edx], al
inc edx
mov dword [esp + 4], edx
cmp ebp, esi
jae 0x427884
movzx eax, byte [edi + ebp]
push eax
call fcn.0041d8d0
add esp, 4
cmp al, 0x40
je 0x427880
mov bl, al
shl bh, 4
shr al, 2
and al, 0xf
or al, bh
mov edx, dword [esp + 4]
mov ecx, edx
and ecx, 1
mov edi, edx
xor edi, 1
lea ecx, [edi + ecx*2]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0xc]
mov byte [ecx + edx], al
lea eax, [ebp + 1]
mov esi, dword [esp + 8]
cmp eax, esi
jae 0x427941
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax + ebp + 1]
push eax
call fcn.0041d8d0
add esp, 4
cmp al, 0x40
jne 0x42785c
mov dword [esp + 4], esi
jmp 0x427880
mov eax, dword [esp + 0x24]
mov dword [esp + 4], eax
jmp 0x427884
mov eax, dword [esp + 0x40]
mov esi, dword [esp + 0xc]
mov byte [esi + eax], 0
push esi
call fcn.00401000
add esp, 4
mov ebx, eax
jmp dword [0x446d3c]
push esi
call fcn.00409560
add esp, 4
push ebx
call fcn.00401ae0
add esp, 4
xor ecx, ecx
test eax, eax
setne cl
mov ebp, dword [esp + 0x464]
jmp dword [ecx*4 + 0x446d44]
jmp 0x427a4d
mov dword [esp + 0x14], 0xc1645859
mov word [esp + 0x18], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
mov dl, 0xce
sub dl, cl
xor dl, byte [esp + ecx + 0x14]
mov dh, 0xa
sub dh, dl
mov byte [esp + ecx + 0x14], dh
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
cmp ecx, 6
jb case.default.0x4279e5
lea ecx, [esp + 0x14]
push ecx
push eax
call fcn.004018a0
add esp, 8
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x446d4c]
jmp 0x427a1b
movzx ecx, byte [eax]
test cl, cl
je 0x427a0d
inc eax
mov edx, dword [esp]
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x427a00
jmp 0x427a10
mov edx, dword [esp]
mov word [edx], 0x203a
add edx, 2
mov dword [esp], edx
movzx eax, byte [esp + 0x50]
test al, al
je 0x427a3d
lea ecx, [esp + 0x51]
mov edx, dword [esp]
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x427a30
jmp 0x427a40
mov edx, dword [esp]
mov byte [edx], 0xa
inc edx
mov dword [esp], edx
mov al, 1
mov dword [esp + 0x1c], eax
push ebx
call fcn.00402090
add esp, 4
mov ebx, dword [esp + 0x28]
add ebx, 4
xor eax, eax
cmp ebx, dword [esp + 0x20]
setne al
jmp dword [eax*4 + 0x446cfc]
mov ebx, dword [esp + 0x1c]
mov eax, ebx
and al, 1
movzx eax, al
jmp dword [eax*4 + 0x446d04]
mov edi, dword [esp]
jmp dword [0x446d58]
xor edi, edi
test ebx, ebx
jne 0x427bf5
jmp 0x427c02
mov byte [edi], 0
mov dword [esp + 0x50], 0x636699c9
mov dword [esp + 0x54], 0x6f535a5d
mov dword [esp + 0x58], 0x606c6259
mov dword [esp + 0x5c], 0x5666422f
mov dword [esp + 0x60], 0x5b356c59
mov dword [esp + 0x64], 0x714f7277
mov dword [esp + 0x68], 0x7772337f
mov dword [esp + 0x6c], 0xed70
mov eax, 0xfe
mov ecx, 1
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + eax - 0xae]
mov edx, ecx
xor edx, eax
and edx, esi
xor edx, eax
add dl, 0xa
mov byte [esp + eax - 0xae], dl
inc eax
dec ecx
cmp eax, 0x11e
jne 0x427af0
mov eax, edi
mov ebx, dword [esp + 0x10]
mov ecx, ebx
shr eax, cl
lea edx, [esp + 0x50]
mov ecx, ebp
push eax
push ebx
push edx
call fcn.0040a4e0
mov byte [edi], 0
mov dword [esp + 0x50], 0x636699c9
mov dword [esp + 0x54], 0x6f535a5d
mov dword [esp + 0x58], 0x606c6259
mov dword [esp + 0x5c], 0x5666422f
mov dword [esp + 0x60], 0x5b356c59
mov dword [esp + 0x64], 0x714f7277
mov dword [esp + 0x68], 0x7772337f
mov dword [esp + 0x6c], 0xed70
mov eax, 0xfe
mov ecx, 1
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + eax - 0xae]
mov edx, ecx
xor edx, eax
and edx, esi
xor edx, eax
add dl, 0xa
mov byte [esp + eax - 0xae], dl
inc eax
dec ecx
cmp eax, 0x11e
jne 0x427b80
mov eax, edi
mov esi, dword [esp + 0x10]
sub eax, esi
lea edx, [esp + 0x50]
mov ecx, ebp
push eax
push esi
push edx
call fcn.0040a4e0
jmp dword [0x446d60]
mov ebx, eax
mov eax, dword [case.0x4277d8.15]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
jmp dword [0x446d74]
push dword [esp + 0x10]
call fcn.00409560
add esp, 4
and bl, 1
mov edi, ebx
mov ebx, dword [esp + 0x44]
mov esi, dword [esp + 0x48]
test ebx, ebx
je 0x427c02
cmp ebx, esi
je 0x427c02
push ebx
call fcn.00409560
add esp, 4
mov ebx, edi
lea ecx, [esp + 0x30]
call fcn.00439e50
mov eax, ebx
add esp, 0x450
pop esi
pop edi
pop ebx
pop ebp
ret
jne 0x446d29
add byte [esp + edi*2], al
inc edx
add byte [esp + edi*2], al
inc edx
add al, cl
jne case.0x4277d8.26
add byte [edi - 0x77ffbd8a], al
jp 0x446d3d
add byte [ebp + 0x7a], ch
inc edx
add byte [edi], al
ja 0x446d45
add cl, al
jnp 0x446d49
add byte [edi + 0x7a], bh
inc edx
add byte [edx + 0x77], dl
inc edx
add byte [eax + 0x77], ah
inc edx
add byte [eax + 0x77], dh
inc edx
add byte [eax + 0x77], dh
inc edx
add byte [edx + 0x77], dh
inc edx
add byte [eax + 0x77], dh
inc edx
add al, dh
jbe 0x446d69
add byte [ecx + 0x77], bh
inc edx
ja 0x446d6d
add al, dh
jbe 0x446d71
add byte [edi - 0xfffbd89], ch
jbe 0x446d79
add bh, bl
ja case.0x427dd2.1322998814
add byte [ebx + 0x79], ch
inc edx
jns 0x446d81
add byte [ecx + edi*2 + 0x42], dh
jns 0x446d89
add byte [edi - 0x13ffbd87], dl