Function at 0x421dd0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x6c
push eax
sub esp, 8
mov dword [ebp - 0x18], esp
sub esp, 0x2c
mov edi, esp
sub esp, 0x400
mov dword [ebp - 0x50], esp
push eax
mov dword [ebp - 0x78], esp
sub esp, 8
mov esi, esp
sub esp, 0x24
mov dword [ebp - 0x74], esp
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x44], 0xd05dd65a
mov dword [ebp - 0x40], 0xec0ed22c
mov dword [ebp - 0x3c], 0xe8dfee18
mov dword [ebp - 0x38], 0xe46dea14
mov dword [ebp - 0x34], 0xe0e1e618
mov dword [ebp - 0x1c], 0
mov eax, dword [ebp - 0x1c]
cmp eax, 0x13
ja 0x421e7c
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x1c]
movzx ecx, byte [ebp + ecx - 0x44]
add eax, 0x6d47f89a
xor eax, ecx
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
add al, 0xb3
mov ecx, dword [ebp - 0x1c]
mov byte [ebp + ecx - 0x44], al
inc dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
cmp eax, 0x14
jb 0x421e50
lea eax, [ebp - 0x44]
lea ecx, [ebp - 0x64]
push eax
call fcn.0043d4b0
shr eax, 0x1f
jmp dword [eax*4 + 0x448e2c]
lea ecx, [ebp - 0x64]
push 0x410
call fcn.0043d700
not eax
shr eax, 0x1f
xor ebx, ebx
jmp dword [eax*4 + 0x448e44]
jmp dword [0x448e50]
mov eax, dword [case.0x421e8b.4]
xor ebx, ebx
nop
nop
nop
nop
nop
nop
jmp eax
lea ecx, [ebp - 0x64]
call fcn.0043d8a0
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ebx, dword [ebp - 0x4c]
mov ecx, ebx
and cl, 1
movzx ecx, cl
jmp dword [ecx*4 + 0x448e6c]
mov esi, dword [ebp - 0x48]
jmp dword [0x448ecc]
mov edi, dword [ebp - 0x24]
mov byte [edi], 0
mov edx, dword [ebp - 0x74]
mov dword [edx], 0x59545363
mov dword [edx + 4], 0x4d59445f
mov dword [edx + 8], 0x4e424443
mov dword [edx + 0xc], 0x54446c81
mov dword [edx + 0x10], 0x618b4e53
mov dword [edx + 0x14], 0xb7ad4c49
mov dword [edx + 0x18], 0xc5b875b9
mov word [edx + 0x1c], 0x4fba
mov dword [edx + 0x1e], 0
mov word [edx + 0x22], 0
mov esi, dword [ebp - 0x48]
sub edi, esi
mov dword [ebp - 0x10], 0
mov eax, dword [ebp - 0x10]
cmp eax, 0x23
ja 0x421f7a
nop
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x10]
movzx ecx, byte [edx + ecx]
add eax, 0x436bb2ea
xor eax, ecx
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x44]
add al, 0xb8
mov ecx, dword [ebp - 0x10]
mov byte [edx + ecx], al
inc dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
cmp eax, 0x24
jb 0x421f50
mov ecx, dword [ebp + 8]
push edi
push esi
push edx
call fcn.0040a070
mov ebx, eax
jmp dword [0x448ecc]
mov dword [ebp - 0x20], edx
mov esi, dword [edx]
push 0x400
push 0
push edi
call fcn.00409770
add esp, 0xc
lea ecx, [ebp - 0x64]
mov ebx, dword [ebp - 0x78]
push ebx
push 0x400
push edi
push esi
call fcn.0043dbc0
cmp eax, 0xc0000000
setae al
cmp dword [ebx], 0
sete cl
or cl, al
movzx eax, cl
jmp dword [eax*4 + 0x448e74]
mov eax, 1
mov edx, dword [ebp - 0x20]
jmp dword [eax*4 + 0x448e8c]
xor eax, eax
mov edx, dword [ebp - 0x20]
jmp dword [eax*4 + 0x448e8c]
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
xor eax, eax
cmp ecx, edx
sete al
xor ebx, ebx
jmp dword [eax*4 + 0x448e5c]
mov eax, edx
sub eax, ecx
sar eax, 2
imul eax, eax, 0x421
push eax
mov edi, ecx
mov ebx, edx
call fcn.00409660
mov edx, edi
add esp, 4
mov edi, dword [ebp - 0x50]
mov ecx, edi
inc ecx
mov dword [ebp - 0x68], ecx
mov dword [ebp - 0x4c], 0
xor ecx, ecx
mov dword [ebp - 0x58], ebx
cmp edx, ebx
setne cl
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x6c], esi
jmp dword [ecx*4 + 0x448e64]
mov eax, dword [ebp - 0x18]
mov eax, dword [eax]
test eax, eax
je case.0x421e8b.4
mov ecx, dword [ebp - 0x18]
cmp eax, dword [ecx + 4]
je case.0x421e8b.4
push eax
call fcn.00409670
add esp, 4
mov eax, dword [ebp - 0x18]
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
jmp case.0x421e8b.4
mov dword [edi], 0x2f063924
mov dword [edi + 4], 0x31250e23
mov dword [edi + 8], 0x253c2000
mov dword [edi + 0xc], 0x8212304
mov dword [edi + 0x10], 0x211e1705
mov dword [edi + 0x14], 0x3013131c
mov dword [edi + 0x18], 0x37381339
mov dword [edi + 0x1c], 0xb22350e
mov dword [edi + 0x20], 0x23373b31
mov dword [edi + 0x24], 0x32ed630
mov dword [edi + 0x28], 0xecdd2220
mov dword [ebp - 0x10], 0
mov eax, dword [ebp - 0x10]
cmp eax, 0x2b
ja 0x42242a
nop
nop
nop
nop
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x10]
movzx ecx, byte [edi + ecx]
add eax, 0xd178182
xor eax, ecx
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x44]
add al, 0xbf
mov ecx, dword [ebp - 0x10]
mov byte [edi + ecx], al
inc dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
cmp eax, 0x2c
jb 0x422400
lea ecx, [ebp - 0x64]
push 0
push 0x2b
push edi
push dword [ebp - 0x18]
call fcn.0043dd30
jmp dword [0x448e58]
mov dword [edi], 0x2f063924
mov dword [edi + 4], 0x31250e23
mov dword [edi + 8], 0x253c2000
mov dword [edi + 0xc], 0x8212304
mov dword [edi + 0x10], 0x211e1705
mov dword [edi + 0x14], 0x3013131c
mov dword [edi + 0x18], 0x37381339
mov dword [edi + 0x1c], 0xb22350e
mov dword [edi + 0x20], 0x23373b31
mov dword [edi + 0x24], 0x32ed630
mov dword [edi + 0x28], 0xecdd2220
mov dword [ebp - 0x10], 0
mov eax, dword [ebp - 0x10]
cmp eax, 0x2b
ja 0x4224ca
nop
nop
nop
nop
nop
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x10]
movzx ecx, byte [edi + ecx]
add eax, 0xd178182
xor eax, ecx
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x44]
add al, 0xbf
mov ecx, dword [ebp - 0x10]
mov byte [edi + ecx], al
inc dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
cmp eax, 0x2c
jb 0x4224a0
lea ecx, [ebp - 0x64]
push 0
push 0x2b
push edi
push dword [ebp - 0x18]
call fcn.0043dd30
jmp case.0x421e8b.9