Function at 0x412790
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x650
lea eax, [esp + 0x52b]
push eax
call fcn.00433e80
add esp, 4
mov dword [esp + 0x98], 0x72417536
mov word [esp + 0x9c], 0xc74
mov byte [esp + 0x9e], 0xc6
mov dword [esp + 0x9f], 0
mov dword [esp + 0xa3], 0
mov byte [esp + 0xa7], 0
mov dword [esp + 0x54c], 0
mov eax, dword [esp + 0x54c]
cmp eax, 0xf
ja 0x412867
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x54c]
mov ecx, dword [esp + 0x54c]
movzx ecx, byte [esp + ecx + 0x98]
lea edx, [eax + 0x22]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0xa99ad122
mov dword [esp + 0x128], eax
mov eax, dword [esp + 0x128]
add al, 0x12
mov ecx, dword [esp + 0x54c]
mov byte [esp + ecx + 0x98], al
inc dword [esp + 0x54c]
mov eax, dword [esp + 0x54c]
cmp eax, 0x10
jb 0x412810
mov ecx, dword [str.default]
mov dword [esp + 0x48], 0x7bb7c380
mov dword [esp + 0x4c], 0
mov word [esp + 0x50], 0
mov dword [esp + 0x54c], 0
mov eax, dword [esp + 0x54c]
cmp eax, 9
ja 0x4128ff
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x54c]
mov edx, dword [esp + 0x54c]
movzx edx, byte [esp + edx + 0x48]
lea esi, [eax + edx]
add esi, 0x6b2d4c8f
add eax, 0x6b2d4c8f
and eax, edx
add eax, eax
mov edx, eax
xor edx, esi
not eax
and eax, esi
add eax, eax
sub eax, edx
mov dword [esp + 0x128], eax
mov eax, dword [esp + 0x128]
add al, 0x17
mov edx, dword [esp + 0x54c]
mov byte [esp + edx + 0x48], al
inc dword [esp + 0x54c]
mov eax, dword [esp + 0x54c]
cmp eax, 0xa
jb 0x4128a0
mov edx, dword [str.VXGDR__l6]
mov dword [esp + 0x128], 0x5e967a79
mov dword [esp + 0x12c], 0x709a888b
mov dword [esp + 0x130], 0x80818c85
mov dword [esp + 0x134], 0x5193926d
mov dword [esp + 0x138], 0x4e989486
mov dword [esp + 0x13c], 0x59565348
mov dword [esp + 0x140], 0x469e9894
mov byte [esp + 0x144], 0x3c
mov dword [esp + 0x149], 0
mov dword [esp + 0x145], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 0x24
ja 0x4129ef
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
movzx ebx, byte [esp + eax + 0x128]
lea eax, [edi - 0x3413e27c]
lea esi, [edi + ebx]
add esi, 0xcbec1d84
add edi, 0x84
and edi, ebx
and eax, ebx
add eax, edi
mov edi, eax
xor edi, esi
not eax
and eax, esi
add eax, eax
sub eax, edi
mov dword [esp + 0x54c], eax
mov eax, dword [esp + 0x54c]
add al, 0x64
mov esi, dword [esp + 0x10]
mov byte [esp + esi + 0x128], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 0x25
jb 0x412990
movzx ebx, byte [esp + 0x128]
lea eax, [esp + 0x54c]
test bl, bl
je 0x412a1b
lea esi, [esp + 0x129]
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], bl
inc eax
movzx ebx, byte [esi]
inc esi
test bl, bl
jne 0x412a10
mov byte [eax], 0
movzx ebx, byte [edx]
test bl, bl
je 0x412a3b
inc edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], bl
inc eax
movzx ebx, byte [edx]
inc edx
test bl, bl
jne 0x412a30
mov byte [eax], 0
movzx edx, byte [esp + 0x48]
test dl, dl
je 0x412a5b
lea esi, [esp + 0x49]
nop
nop
nop
nop
nop
mov byte [eax], dl
inc eax
movzx edx, byte [esi]
inc esi
test dl, dl
jne 0x412a50
mov byte [eax], 0
movzx edx, byte [ecx]
test dl, dl
je 0x412a7b
inc ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], dl
inc eax
movzx edx, byte [ecx]
inc ecx
test dl, dl
jne 0x412a70
mov byte [eax], 0
movzx ecx, byte [esp + 0x98]
test cl, cl
je 0x412aab
lea edx, [esp + 0x99]
nop
nop
nop
nop
nop
nop
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 0x412aa0
mov byte [eax], 0
movzx ecx, byte [esp + 0x52b]
test cl, cl
je 0x412adb
lea edx, [esp + 0x52c]
nop
nop
nop
nop
nop
nop
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 0x412ad0
mov byte [eax], 0
lea ecx, [esp + 0x54c]
mov dword [esp + 0x128], 0x33cd31f3
mov dword [esp + 0x12c], 0x37c235ca
mov dword [esp + 0x130], 0xcb34c92d
mov dword [esp + 0x134], 0xcff3cd38
mov dword [esp + 0x138], 0xc34bc114
mov dword [esp + 0x13c], 0xc723c534
mov dword [esp + 0x140], 0xdbfad912
mov dword [esp + 0x144], 0xdf2edd3d
mov dword [esp + 0x148], 0xd32ed120
mov dword [esp + 0x14c], 0xd735d52d
mov dword [esp + 0x150], 0xeb1ee909
mov dword [esp + 0x154], 0xef11ed15
mov dword [esp + 0x158], 0xe3dde11e
mov dword [esp + 0x15c], 0xe7dbe56c
mov dword [esp + 0x160], 0xfb0df90f
mov dword [esp + 0x164], 0xffc3fd0b
mov dword [esp + 0x168], 0xf30df116
mov dword [esp + 0x16c], 0xf70bf506
mov dword [esp + 0x170], 0x8b7f89b5
mov dword [esp + 0x174], 0x8f728d7e
mov dword [esp + 0x178], 0x837c8165
mov dword [esp + 0x17c], 0x87798567
mov dword [esp + 0x180], 0x9b7f997c
mov dword [esp + 0x184], 0x9f839d78
mov dword [esp + 0x188], 0x9392918a
mov byte [esp + 0x190], 0
mov dword [esp + 0x18c], 0
mov dword [esp + 0x48], 0
mov edx, dword [esp + 0x48]
cmp edx, 0x68
ja 0x412c96
nop
nop
nop
nop
mov edx, dword [esp + 0x48]
mov esi, dword [esp + 0x48]
movzx esi, byte [esp + esi + 0x128]
mov edi, edx
and edi, 0x355dedf8
xor edx, 0xb55dedf8
lea edx, [edx + edi*2]
lea edi, [edx + esi]
and edx, esi
add edx, edx
mov esi, edx
xor esi, edi
not edx
and edx, edi
add edx, edx
sub edx, esi
mov dword [esp + 0x98], edx
mov edx, dword [esp + 0x98]
mov esi, edx
xor esi, 0x37
and edx, 0x37
lea edx, [esi + edx*2]
inc dl
mov esi, dword [esp + 0x48]
mov byte [esp + esi + 0x128], dl
mov edx, dword [esp + 0x48]
mov esi, edx
and esi, 1
xor edx, 1
lea edx, [edx + esi*2]
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x48]
cmp edx, 0x69
jb 0x412c20
sub eax, ecx
mov dword [esp + 0x98], 0xc363c12f
mov dword [esp + 0x9c], 0xc76fc574
mov word [esp + 0xa0], 0xc9c8
mov dword [esp + 0xa6], 0
mov dword [esp + 0xa2], 0
mov dword [esp + 0x10], 0
mov edx, dword [esp + 0x10]
cmp edx, 0x11
ja 0x412d31
nop
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x10]
movzx esi, byte [esp + esi + 0x98]
lea edi, [edx - 0x35226be0]
add edx, 0x20
and edx, esi
or edi, esi
sub edi, edx
mov dword [esp + 0x48], edi
mov edx, dword [esp + 0x48]
add dl, 0x20
mov esi, dword [esp + 0x10]
mov byte [esp + esi + 0x98], dl
mov edx, dword [esp + 0x10]
mov esi, edx
and esi, 1
xor edx, 1
lea edx, [edx + esi*2]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x10]
cmp edx, 0x12
jb 0x412ce0
lea edx, [esp + 0x10c]
lea esi, [esp + 0x94]
lea edi, [esp + 0x128]
lea ebx, [esp + 0x98]
push edx
push esi
push eax
push ecx
push edi
push ebx
push 0x447090
call fcn.0040b440
add esp, 0x1c
movzx eax, al
mov eax, dword [eax*4 + 0x441130]
mov ecx, 0x3c3efbc4
xor ecx, dword [0x441138]
add eax, ecx
inc eax
xor esi, esi
jmp eax