Function at 0x43aa10
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x70
mov esi, dword [ebp + 8]
mov dword [esp + 0x18], 0xfb4df9e1
mov dword [esp + 0x1c], 0xff69fd71
mov dword [esp + 0x20], 0xf357f16a
mov dword [esp + 0x24], 0xf730f56d
mov dword [esp + 0x28], 0xeb73e964
mov dword [esp + 0x2c], 0xef4bed7c
mov dword [esp + 0x30], 0xe3e0e109
lea eax, [esp + 0x34]
mov dword [esp + 0xc], eax
mov dword [esp + 0x34], 0
mov word [esp + 0x38], 0
xor ebx, ebx
movzx edx, byte [esp + ebx + 0x18]
mov dword [esp + 0x10], edx
mov eax, ebx
xor eax, 0xd81b197f
lea ecx, [eax + ebx*2]
mov dword [esp + 0x14], ecx
and ecx, edx
mov eax, ecx
not eax
mov edi, eax
or eax, 2
lea edx, [eax + eax]
not edx
add edx, eax
and edi, 2
mov eax, edi
not eax
and eax, edx
imul eax, edi
mov dword [esp + 4], edx
and dword [esp + 4], edi
or edx, edi
imul edx, dword [esp + 4]
mov edi, ecx
and edi, 2
or ecx, 2
imul ecx, edi
add ecx, eax
add ecx, edx
mov edx, dword [esp + 0x14]
add edx, dword [esp + 0x10]
mov eax, edx
not eax
and eax, ecx
not ecx
and ecx, edx
sub ecx, eax
mov dword [esp + 0x50], ecx
mov eax, dword [esp + 0x50]
mov ecx, 0x88aaec6d
sub ecx, eax
add eax, 0x17551392
and ecx, 0xe8bdb279
and eax, 0x17424d86
sub eax, ecx
mov ecx, 0xc5
sub ecx, eax
xor ecx, 0x33
lea eax, [eax*2 + 0x74]
and eax, 0x66
sub eax, ecx
mov byte [esp + ebx + 0x18], al
lea eax, [ebx + ebx]
and eax, 2
xor ebx, 1
add ebx, eax
cmp ebx, 0x22
jb case.default.0x43ab66
lea eax, [esp + 0x50]
lea ebx, [esp + 0x18]
mov edx, ebx
mov edi, eax
mov ecx, 7
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0x6c]
xor ecx, ecx
mov edx, dword [esp + 0xc]
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
lea ecx, [esp + 0x40]
push ecx
push 8
push ebx
push 0xd
push eax
push 0
call dword [0x44fb48]
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44d420]
mov dword [esp + 0x18], 0x3a0043
mov word [esp + 0x1c], 0x5c
mov word [esp + 0x1e], 0
mov dword [esp + 8], 0
push 0xaa14ca30
push dword [0x44fb40]
call fcn.004420c0
add esp, 8
lea ecx, [esp + 8]
push 0
push 0
push 0
push 0
push ecx
push 0
push 0
push ebx
call eax
mov ecx, dword [case.0x43ab66.5]
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44d438]
xor eax, eax
mov edx, dword [case.0x43ab66.11]
nop
nop
nop
nop
nop
nop
nop
nop
jmp edx
xor ecx, ecx
cmp eax, 4
setb cl
jmp dword [ecx*4 + 0x44d450]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x44d468]
lea ecx, [esp + eax*4]
add ecx, 0x3c
jmp 0x43ac0b
lea ecx, [esp + 8]
mov edx, dword [ecx]
mov ecx, edx
or ecx, 0x1a5845
mov edi, edx
and edi, 0x1a5845
imul ecx, edi
xor edi, 0x1a5845
and edx, 0xffe5a7ba
imul edx, edi
add edx, ecx
lea edi, [esi + 8]
add edx, 0xebde8a13
mov dword [esp + eax*4 + 0x40], edx
mov byte [esi + 8], 0
je 0x43ac81
cmp edx, 0x100
jb 0x43ac8a
mov esi, edi
mov ebx, edx
movzx ecx, dl
movzx ecx, word [ecx + ecx + str.000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF]
mov word [esi - 2], cx
add esi, 0xfffffffe
shr ebx, 8
cmp edx, 0xffff
mov edx, ebx
ja 0x43ac50
cmp ebx, 0xf
ja 0x43ac93
movzx ecx, byte [ebx + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov byte [esi - 1], cl
dec esi
jmp 0x43aca2
mov byte [esi + 7], 0x30
add esi, 7
jmp 0x43aca2
mov ebx, edx
mov esi, edi
cmp ebx, 0xf
jbe 0x43ac74
movzx ecx, word [ebx + ebx + str.000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF]
mov word [esi - 2], cx
add esi, 0xfffffffe
mov edx, 0xfffffff7
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [esi + edx + 9], 0
lea edx, [edx + 1]
jne case.default.0x43acc4
xor ecx, ecx
cmp edx, 0
setne cl
xor ebx, ebx
jmp dword [ecx*4 + 0x44d470]
mov byte [esi + ebx - 1], 0x30
dec ebx
xor ecx, ecx
cmp edx, ebx
setne cl
jmp dword [ecx*4 + 0x44d470]
inc eax
mov edx, dword [case.0x43ab66.11]
mov esi, edi
jmp case.0x43ab66.8
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
xor eax, eax
jmp 0x43b12a
push 0x400
call fcn.0043e5e0
add esp, 4
mov dword [esp + 8], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 4], eax
mov dword [esp + 0x10], 0x62656467
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
mov word [esp + 0x1c], 0
xor eax, eax
mov ecx, 0x8e4f1cf
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0xc], ecx
movzx ebx, byte [esp + eax + 0x10]
mov ecx, dword [esp + 0xc]
and ecx, 0x8c47083
mov esi, eax
and esi, 0xc
or esi, 0x2030820
sub esi, ecx
lea edi, [esi - 0x1223896c]
mov ecx, ebx
not ecx
and ecx, edi
mov edx, 0x1223896b
sub edx, esi
and edx, 0x1824d031
and edi, 0xe300004e
or edi, edx
xor edi, 0xe3c021ce
lea esi, [edi + edi]
not esi
add esi, edi
mov edx, esi
and edx, 0xbcb71894
and edi, 0x4340e16b
or edi, edx
xor edi, 0x4348e76b
and edi, esi
lea esi, [ebx + ebx]
not esi
add esi, ebx
and ebx, 0xffffff91
and esi, 0xef2e286e
or esi, ebx
xor esi, 0xef2e286e
not edi
and edi, esi
or edi, ecx
mov dword [esp + 0x2c], edi
mov ecx, dword [esp + 0x2c]
lea edx, [ecx + ecx]
not edx
add edx, ecx
or edx, 0xae429ca8
lea edi, [ecx + edx]
inc edi
mov edx, edi
and edx, 2
mov ebx, edi
or edi, 2
imul edi, edx
xor edx, 2
and ebx, 0xfd
imul ebx, edx
xor ecx, 0x51bd6357
lea edx, [ecx + ecx]
not edx
add edx, ecx
mov ecx, dword [esp + 0xc]
add edx, edi
add edx, ebx
inc dl
mov byte [esp + eax + 0x10], dl
inc eax
dec ecx
cmp eax, 0xe
jne 0x43ad80
mov eax, dword [esp + 0x10]
mov ecx, dword [0x44fb4c]
test ecx, ecx
je 0x43ae92
xor edx, edx
mov esi, dword [0x44fb50]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [esi + edx*8], 0xd75bc899
je 0x43b0d0
inc edx
cmp ecx, edx
jne 0x43ae80
mov esi, dword [ebp + 0x10]
not eax
shr eax, 0x1f
mov ebx, dword [ebp + 0xc]
jmp dword [eax*4 + 0x44d490]
mov dword [esp + 4], 0
mov ecx, dword [esp + 8]
jmp 0x43af8f
xor edx, edx
xor eax, eax
mov ecx, dword [esp + 8]
mov dword [esp + 4], 0
cmp edx, dword [ecx]
setb al
xor edi, edi
jmp dword [eax*4 + 0x44d498]
mov eax, dword [ecx + edi*4 + 4]
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
lea ecx, [esp + 0x10]
push 0
push eax
call fcn.0043eb70
xor eax, eax
mov ecx, ebx
neg ecx
sbb eax, esi
setl al
movzx eax, al
shl eax, 0x14
or eax, 1
lea ecx, [esp + 0x10]
push eax
call fcn.0043eb90
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44d4b0]
mov eax, dword [esp + 4]
and al, 1
mov dword [esp + 4], eax
push ecx
call fcn.0043e740
add esp, 4
mov eax, dword [esp + 0x24]
mov dword [esp + 8], eax
mov dword [esp + 0x10], 0x62656467
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
mov word [esp + 0x1c], 0
xor ecx, ecx
mov eax, 0x8e4f1cf
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0xc], eax
movzx edi, byte [esp + ecx + 0x10]
mov eax, dword [esp + 0xc]
and eax, 0x8c47083
mov ebx, ecx
and ebx, 0xc
or ebx, 0x2030820
sub ebx, eax
lea esi, [ebx - 0x1223896c]
mov eax, edi
not eax
and eax, esi
mov edx, 0x1223896b
sub edx, ebx
and edx, 0x1824d031
and esi, 0xe300004e
or esi, edx
xor esi, 0xe3c021ce
lea ebx, [esi + esi]
not ebx
add ebx, esi
mov edx, ebx
and edx, 0xbcb71894
and esi, 0x4340e16b
or esi, edx
xor esi, 0x4348e76b
and esi, ebx
lea ebx, [edi + edi]
not ebx
add ebx, edi
and edi, 0xffffff91
and ebx, 0xef2e286e
or ebx, edi
xor ebx, 0xef2e286e
not esi
and esi, ebx
or esi, eax
mov dword [esp + 0x28], esi
mov eax, dword [esp + 0x28]
lea edx, [eax + eax]
not edx
add edx, eax
or edx, 0xae429ca8
lea esi, [eax + edx]
inc esi
mov edx, esi
and edx, 2
mov edi, esi
or esi, 2
imul esi, edx
xor edx, 2
and edi, 0xfd
imul edi, edx
xor eax, 0x51bd6357
lea ebx, [eax + eax]
not ebx
add ebx, eax
mov eax, dword [esp + 0xc]
add ebx, esi
add ebx, edi
inc bl
mov byte [esp + ecx + 0x10], bl
inc ecx
dec eax
cmp ecx, 0xe
jne 0x43afd0
mov eax, dword [0x44fb4c]
test eax, eax
je 0x43b126
mov ecx, dword [esp + 0x10]
xor edx, edx
mov esi, dword [0x44fb50]
nop
cmp dword [esi + edx*8], 0xa3c1f363
je 0x43b109
inc edx
cmp eax, edx
jne 0x43b0c0
jmp 0x43b126
mov ecx, dword [esi + edx*8 + 4]
cmp ecx, eax
mov esi, dword [ebp + 0x10]
je 0x43ae95
lea eax, [esp + 0x2c]
push 0x2f
push 0x400
push dword [esp + 0x10]
push eax
push dword [esp + 0x14]
push 5
push dword [0x44fb54]
push ecx
call fcn.00440280
add esp, 0x20
jmp 0x43ae95
mov eax, dword [esi + edx*8 + 4]
cmp eax, ecx
je 0x43b126
push dword [esp + 8]
push 1
push dword [0x44fb54]
push eax
call fcn.00440280
add esp, 0x10
mov eax, dword [esp + 4]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
stosd dword es:[edi], eax
inc ebx
add byte [ebp - 0x55], dh
inc ebx
add al, al
stosd dword es:[edi], eax
inc ebx
add al, al
stosd dword es:[edi], eax
inc ebx
add al, al
stosd dword es:[edi], eax
inc ebx
add dl, al
stosd dword es:[edi], eax
inc ebx
add dl, dh
lodsb al, byte [esi]
inc ebx
add al, dl
stosd dword es:[edi], eax
inc ebx
add al, ah
stosd dword es:[edi], eax
inc ebx
add al, ah
stosd dword es:[edi], eax
inc ebx
add al, ah
stosd dword es:[edi], eax
inc ebx
add dl, ah
stosd dword es:[edi], eax
inc ebx
add dl, dh
lodsb al, byte [esi]
inc ebx
add cl, dh
stosd dword es:[edi], eax
inc ebx
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add cl, dh
stosd dword es:[edi], eax
inc ebx
add byte [ecx], al
add byte [eax], al
add bh, bh
stosd dword es:[edi], eax
inc ebx
add byte [edi], al
lodsb al, byte [esi]
inc ebx
add ah, ah
lodsb al, byte [esi]
inc ebx
add al, dl
lodsb al, byte [esi]
inc ebx
add byte [edx], dh
lodsd eax, dword [esi]
inc ebx
add byte [ecx], bh
lodsd eax, dword [esi]
inc ebx
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [edx - 0x53], cl
inc ebx
add byte [esi + ebp*4 - 0x514affbd], ah
inc ebx
add byte [ebp - 0x1fffbc51], al
scasb al, byte es:[edi]
inc ebx
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [eax], cl
scasd eax, dword es:[edi]
inc ebx
add byte [ecx], al
add byte [eax], al
add byte [edx], dh
scasd eax, dword es:[edi]
inc ebx
add byte [eax - 0x51], al
inc ebx
add byte [eax - 0x51], dh
inc ebx
add byte [eax - 0x51], dh
inc ebx
add byte [eax - 0x51], dh
inc ebx
add byte [edx - 0x51], dh
inc ebx
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [edx - 0x51], dh
inc ebx
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [edx], ch
mov cl, 0x43
add byte [0x270043c9], bh
int 0x43
add byte [edi], ah
int 0x43
add byte [ecx + ecx*8 + 0x43], ch
add byte [eax - 0x40], dh
inc ebx
add byte [ebx + 0x7c0043c6], dh
ret 0x43