Function at 0x434010
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x60
mov dword [esp + 0x20], 0x7b2d7901
mov dword [esp + 0x24], 0x7fc97df1
mov dword [esp + 0x28], 0x73d771ca
mov dword [esp + 0x2c], 0x773075cd
mov dword [esp + 0x30], 0x4bf349c4
mov dword [esp + 0x34], 0x4feb4dfc
mov dword [esp + 0x38], 0x43404129
lea edx, [esp + 0x3c]
mov dword [esp + 0x3c], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 0x1f
ja 0x433e6b
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [esp + ecx + 0x20]
lea esi, [eax + 0x4f]
and esi, ecx
add eax, ecx
add esi, esi
sub eax, esi
add eax, 0x1e68df4f
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x40]
mov ecx, eax
or ecx, 0xd6
and eax, 0xd6
add eax, ecx
inc al
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x20], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 0x20
jb 0x433e20
lea eax, [esp + 0x40]
lea ebx, [esp + 0x20]
mov esi, ebx
mov ecx, 7
mov edi, eax
xchg esi, esi
rep movsd dword es:[edi], dword [esi]
xchg esi, esi
lea edi, [esp + 0x5c]
xor ecx, ecx
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
lea ecx, [esp + 0x10]
push ecx
push 8
push ebx
push 0xd
push eax
push 0
call dword [0x448864]
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x446050]
mov dword [esp + 0x20], 0x3a0043
mov dword [esp + 0x24], 0x5c
mov dword [esp + 0xc], 0
push 0xd77f2487
push dword [0x44885c]
call fcn.0043b390
add esp, 8
lea ecx, [esp + 0xc]
push 0
push 0
push 0
push 0
push ecx
push 0
push 0
push ebx
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x446058]
mov ecx, dword [ebp + 8]
xor esi, esi
xor eax, eax
cmp esi, 4
setb al
jmp dword [eax*4 + 0x446060]
xor edx, edx
test esi, esi
sete dl
jmp dword [edx*4 + 0x446068]
lea edx, [esp + esi*4]
add edx, 0xc
jmp 0x433f34
lea edx, [esp + 0xc]
imul eax, dword [edx], 0x1a5845
lea edx, [ecx + 8]
add eax, 0xebde8a13
mov dword [esp + esi*4 + 0x10], eax
mov byte [ecx + 8], 0
je 0x433fb0
mov dword [esp + 8], esi
cmp eax, 0x100
mov dword [esp + 4], edx
jb 0x433fc0
mov ecx, edx
mov ebx, eax
nop
mov edi, eax
and edi, 0xfd
mov edx, eax
and edx, 2
mov esi, edx
xor esi, 2
imul esi, edi
or edi, 2
imul edi, edx
movzx edx, word [edi + esi + str.000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF]
mov word [ecx - 2], dx
add ecx, 0xfffffffe
shr ebx, 8
cmp eax, 0xffff
mov eax, ebx
ja 0x433f60
cmp ebx, 0xf
ja 0x433fc9
movzx eax, byte [ebx + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov byte [ecx - 1], al
dec ecx
jmp 0x433fd8
mov byte [ecx + 7], 0x30
add ecx, 7
jmp 0x433fe0
mov ebx, eax
mov ecx, edx
cmp ebx, 0xf
jbe 0x433f9b
movzx eax, word [ebx + ebx + str.000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF]
mov word [ecx - 2], ax
add ecx, 0xfffffffe
mov esi, dword [esp + 8]
mov edx, dword [esp + 4]
mov edi, 0xfffffff7
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ecx + edi + 9], 0
lea edi, [edi + 1]
jne 0x433ff0
neg edi
jmp dword [0x446074]
inc esi
xor ebx, ebx
cmp esi, 4
setb bl
mov ecx, edx
jmp dword [ebx*4 + 0x446060]
mov ebx, edi
dec edi
jmp dword [0x446078]
xor eax, eax
test ebx, ebx
setne al
jmp dword [eax*4 + 0x446080]
mov byte [ecx - 1], 0x30
dec ecx
jmp dword [0x446074]
dec edi
jmp case.0x433ea7.9
mov ecx, dword [case.0x433ea7.17]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
mov ecx, dword [case.0x433ea7.21]
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
xor eax, eax
jmp 0x43435e
mov esi, dword [ebp + 0xc]
jmp dword [0x4460b4]
push 0x400
call fcn.00437d30
add esp, 4
push 0x400
call fcn.00437d30
add esp, 4
jmp dword [0x4460b8]
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x10], 0x62656467
mov dword [esp + 0x14], 0
mov word [esp + 0x18], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 9
ja 0x434215
mov eax, dword [esp + 4]
mov edx, dword [esp + 4]
movzx edx, byte [esp + edx + 0x10]
lea edi, [eax + 0x1ae33a51]
mov ebx, edx
not ebx
or ebx, edi
and edi, edx
add edi, ebx
neg edi
add eax, edi
add eax, 0x1ae33a50
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x2c]
add al, 0xc9
mov edx, dword [esp + 4]
mov byte [esp + edx + 0x10], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0xa
jb 0x4341d0
mov eax, dword [esp + 0x10]
mov edx, dword [0x448868]
test edx, edx
je 0x43423e
xor edi, edi
mov ebx, dword [0x44886c]
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0x3bebd150
je 0x434244
inc edi
cmp edx, edi
jne 0x434230
mov edi, dword [esp + 0xc]
jmp 0x43426f
mov edx, dword [ebx + edi*8 + 4]
cmp edx, eax
mov edi, dword [esp + 0xc]
je 0x43426f
lea eax, [esp + 0x2c]
push 0x2f
push 0x400
push edi
push eax
push ecx
push 5
push dword [0x448870]
push edx
call fcn.00439850
add esp, 0x20
mov ecx, dword [case.0x433ea7.30]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
not eax
shr eax, 0x1f
xor ebx, ebx
mov dword [esp + 0x24], 0
jmp dword [eax*4 + 0x4460d0]
and al, 1
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret