Function at 0x428720
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x64
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
push 0x42711c
push 5
mov dword [0x43c858], ebx
call fcn.0042a52c
mov esi, eax
test esi, esi
jne 0x428753
push eax
push eax
push eax
push 0xef0000fd
push 0x1e
call fcn.0042a52c
push 0x427258
push esi
push 0x35
call fcn.0042a52c
mov esi, eax
test esi, esi
jne 0x428775
push eax
push eax
push eax
push 0xef0000fc
push 0x1e
call fcn.0042a52c
push 4
push 0x1000
push 0x1000
push 0
call esi
push 4
push 0x2000
push 0x1f
mov dword [0x43c0f4], eax
call fcn.0042a52c
and eax, 0x7fff
push eax
push 0
call esi
push 4
push 0x1000
push 0x1000
push 0
mov dword [0x43c0fc], eax
call esi
mov dword [0x43c0f8], eax
mov eax, dword [0x43c0f4]
push 0x40
mov dword [eax], 0x19660d
mov ecx, dword [0x43c0f8]
mov dword [ecx], 0x3c6ef35f
call fcn.00434af0
mov ecx, 0x10
mov esi, ebx
mov edi, eax
add esp, 4
mov dword [0x43c854], eax
lea edx, [ebx + 0x71]
rep movsd dword es:[edi], dword [esi]
push edx
lea ecx, [ebp - 0x64]
call fcn.00429ce0
mov eax, dword [0x43c854]
push 8
push eax
lea ecx, [ebp - 0x64]
call fcn.00429f00
mov ecx, dword [0x43c854]
push ebx
push ecx
call fcn.004298b0
add esp, 8
push 0x427244
call fcn.00435040
mov edx, dword [0x43c854]
push 0x94
mov eax, dword [edx]
mov dword [ebp + 8], eax
call fcn.00434af0
add esp, 8
mov esi, eax
mov ecx, 0x25
xor eax, eax
mov edi, esi
push esi
rep stosd dword es:[edi], eax
push 0x14
mov dword [esi], 0x94
call fcn.0042a52c
mov eax, dword [esi + 0x10]
xor edx, edx
mov dword [0x43c850], eax
sub eax, edx
je 0x4288e8
dec eax
je 0x4288bb
dec eax
jne 0x4288ed
mov eax, dword [esi + 4]
cmp eax, 3
jne 0x42887d
mov edx, 0x427234
jmp 0x4288ed
cmp eax, 4
jne 0x428889
mov edx, 0x427224
jmp 0x4288ed
cmp eax, 5
jne 0x4288b4
mov eax, dword [esi + 8]
test eax, eax
jne 0x42889c
mov edx, 0x427218
jmp 0x4288ed
cmp eax, 1
jne 0x4288a8
mov edx, 0x42720c
jmp 0x4288ed
cmp eax, 2
jne 0x4288b4
mov edx, 0x427200
jmp 0x4288ed
mov edx, 0x4271ec
jmp 0x4288ed
mov eax, dword [esi + 8]
test eax, eax
jne 0x4288c9
mov edx, 0x4271e0
jmp 0x4288ed
cmp eax, 0xa
jne 0x4288d5
mov edx, 0x4271d4
jmp 0x4288ed
cmp eax, 0x5a
jne 0x4288e1
mov edx, 0x4271c8
jmp 0x4288ed
mov edx, 0x4271b4
jmp 0x4288ed
mov edx, 0x4271ac
lea ebx, [esi + 0x14]
or ecx, 0xffffffff
mov edi, ebx
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov eax, ebx
jne 0x428905
mov eax, 0x4270a4
push eax
push edx
push 0x427190
call fcn.00435040
push esi
call fcn.00434b70
mov edx, dword [0x43c854]
add esp, 0x10
mov eax, dword [edx + 0x2c]
test eax, eax
je 0x42894b
mov ecx, eax
mov edx, 0x80
imul eax, eax, 0x19660d
mov ebx, dword [ecx]
add eax, 0x3c6ef35f
xor ebx, eax
mov dword [ecx], ebx
add ecx, 4
dec edx
jne 0x42892e
mov edx, dword [0x43c854]
mov ecx, dword [edx + 0x24]
xor eax, eax
shr ecx, 4
and cl, 1
lea edi, [ebp - 0x1f]
mov byte [0x427098], cl
mov ecx, 6
mov byte [ebp - 0x20], 0
rep stosd dword es:[edi], eax
mov ecx, dword [edx + 0x2c]
mov edx, dword [ecx + 8]
mov eax, dword [ecx + 4]
push edx
xor ecx, ecx
mov dword [ebp - 4], eax
xor edx, edx
mov dl, byte [ebp - 2]
mov cl, ah
push ecx
push edx
shr eax, 0x18
push eax
lea eax, [ebp - 0x20]
push 0x427184
push eax
call dword [fcn.0042b666]
mov ecx, dword [0x43c854]
add esp, 0x18
mov al, byte [ecx + 0x24]
pop edi
pop esi
pop ebx
test al, 0x10
mov eax, 0x427178
jne 0x4289b2
mov eax, 0x427174
push 0x42716c
lea edx, [ebp - 0x20]
push eax
push edx
push 0x427150
call fcn.00435040
add esp, 0x10
call fcn.004318a0
mov eax, dword [0x43c854]
mov ecx, dword [eax]
push ecx
push 0x42712c
call fcn.00435040
push 0
call fcn.00429850
mov eax, dword [0x442b50]
add esp, 0xc
test eax, eax
je 0x428a01
push 0
push 0
push 0
push eax
push 2
call fcn.0042b3a8
mov eax, dword [ebp + 8]
mov esp, ebp
pop ebp
ret