Function at 0x428e30
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xa00
mov esi, esp
push 0x1000
call fcn.0040cc80
add esp, 4
mov dword [esi + 0x1c], eax
mov dword [esi + 0x744], 0xbfee94f6
mov dword [esi + 0x748], 0x8d5a59ad
mov word [esi + 0x74c], 0xc1e0
mov dword [esi + 0x74e], 0
mov eax, 0x3a9c03ad
lea ecx, [esi + 0x744]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [ecx]
mov edx, eax
or edx, edi
lea ebx, [eax - 0x3a9c0300]
and ebx, edi
not edx
or edx, ebx
mov edi, edx
xor edi, 0x9b
and edx, 0x64
add edx, edx
sub edx, edi
inc dl
mov byte [ecx], dl
dec eax
inc ecx
cmp eax, 0x3a9c039f
jne 0x428e90
mov eax, dword [0x444734]
mov dword [esi + 0x10], eax
mov dword [esi + 0x414], 0xa082bc9a
mov dword [esi + 0x418], 0xfec0fbfb
mov dword [esi + 0x41c], 0xfac8ccff
mov dword [esi + 0x420], 0xc1c1c4c8
mov word [esi + 0x424], 0xb19a
mov byte [esi + 0x426], 0x52
mov word [esi + 0x427], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
mov eax, ecx
add al, 0x18
xor al, byte [esi + ecx + 0x414]
add al, 0x88
mov byte [esi + ecx + 0x414], al
inc ecx
cmp ecx, 0x15
jne 0x428f10
mov eax, dword [str.GThHyI]
mov dword [esi + 0xc], eax
mov dword [esi + 0xac], 0x9ed0f1f3
mov dword [esi + 0xb0], 0x58580d65
mov dword [esi + 0xb4], 0x470a2367
mov dword [esi + 0xb8], 0x5326053b
mov dword [esi + 0xbc], 0x4257546d
mov dword [esi + 0xc0], 0x48714a4a
mov dword [esi + 0xc4], 0x18e0424a
mov dword [esi + 0xc8], 0x7e7b3714
mov dword [esi + 0xcc], 0x474f220e
mov dword [esi + 0xd0], 0x787a2d78
mov dword [esi + 0xd4], 0x2b007a77
mov dword [esi + 0xd8], 0x75677004
mov dword [esi + 0xdc], 0x774e7c7b
mov dword [esi + 0xe0], 0x7e6b6851
mov dword [esi + 0xe4], 0xc1566e7a
mov dword [esi + 0xe8], 0x5a023521
mov dword [esi + 0xec], 0x10736465
mov dword [esi + 0xf0], 0x226c4d5e
mov dword [esi + 0xf4], 0x61161d11
mov dword [esi + 0xf8], 0x29117344
mov dword [esi + 0xfc], 0x43534140
mov dword [esi + 0x100], 0x734c4d4e
mov dword [esi + 0x104], 0x6f5a4ca2
mov dword [esi + 0x108], 0x577c696d
mov byte [esi + 0x10c], 0xb0
mov dword [esi + 0x10d], 0
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esi + edx + 0xac]
lea edi, [edx + 0xd7783fc]
xor edi, eax
lea eax, [edi + 0x13]
mov ecx, 0x435593ec
sub ecx, edi
mov ebx, ecx
and ecx, 0x57
and eax, 0xa8
or eax, ecx
not ebx
and ebx, 1
or ebx, eax
or edi, 0xfe
xor ebx, 0xa9
add ebx, edi
mov al, 0xfe
sub al, bl
mov byte [esi + edx + 0xac], al
mov eax, edx
and eax, 1
xor edx, 1
lea edx, [edx + eax*2]
cmp edx, 0x65
jb 0x429040
movzx edx, byte [esi + 0xac]
mov eax, dword [esi + 0x1c]
test dl, dl
je 0x4290bb
lea edi, [esi + 0xad]
mov eax, dword [esi + 0x1c]
nop
nop
nop
mov byte [eax], dl
inc eax
movzx edx, byte [edi]
inc edi
test dl, dl
jne 0x4290b0
mov ecx, eax
mov byte [eax], 0
mov edi, dword [esi + 0xc]
movzx edx, byte [edi]
test dl, dl
je 0x4290dd
inc edi
mov eax, ecx
nop
nop
nop
mov byte [eax], dl
inc eax
movzx edx, byte [edi]
inc edi
test dl, dl
jne 0x4290d0
jmp 0x4290df
mov eax, ecx
mov edi, eax
mov byte [eax], 0
movzx ecx, byte [esi + 0x414]
test cl, cl
je 0x42910d
lea edx, [esi + 0x415]
mov eax, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x429100
jmp 0x42910f
mov eax, edi
mov byte [eax], 0
mov edi, dword [esi + 0x10]
movzx ecx, byte [edi]
test cl, cl
mov edx, eax
je 0x42912b
inc edi
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [edi]
inc edi
test cl, cl
jne 0x429120
mov byte [edx], 0
movzx eax, byte [esi + 0x744]
test al, al
je 0x42914b
lea ecx, [esi + 0x745]
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x429140
mov dword [esi + 0xc], edx
mov byte [edx], 0
push 0
call fcn.0043e5e0
add esp, 4
xor ecx, ecx
test eax, eax
setne cl
mov ecx, dword [ecx*4 + 0x4475e0]
mov edx, 0x6debade
xor edx, dword [0x4475e8]
add ecx, edx
inc ecx
jmp ecx