Function at 0x43dac0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x5c
mov dword [esp + 0x28], ecx
mov eax, dword [esp + 0x70]
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x20], 0x100000
mov dword [esp + 0x14], 0
mov dword [esp + 0x34], 0xf0fffefd
mov word [esp + 0x38], 0
mov byte [esp + 0x3a], 0
xor eax, eax
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + ecx + 0x34]
mov edi, eax
and edi, 0xa
mov edx, ecx
xor edx, 0xf04e77d5
add edx, edi
xor edx, esi
mov esi, edx
and esi, 1
or edx, 1
add edx, esi
add dl, 0xd6
mov byte [esp + ecx + 0x34], dl
inc ecx
add eax, 2
cmp ecx, 7
jne 0x43db20
mov eax, dword [esp + 0x34]
mov ecx, dword [0x44f26c]
test ecx, ecx
je 0x43dbae
xor edx, edx
mov esi, dword [0x44f270]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [esi + edx*8], 0x98d5a07f
je 0x43db80
inc edx
cmp ecx, edx
jne 0x43db70
jmp 0x43dbae
mov ecx, dword [esi + edx*8 + 4]
cmp ecx, eax
je 0x43dbae
lea eax, [esp + 0x20]
lea edx, [esp + 0x14]
push 4
push 0x3000
push eax
push 0
push edx
push 0xffffffffffffffff
push 0x18
push ecx
push dword [0x44f274]
call fcn.0043fac0
add esp, 0x24
test eax, eax
js 0x43e2ba
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x34], 0
mov dword [esp], 0x13131110
mov eax, esp
mov ecx, 0x6047ab43
nop
nop
nop
nop
movzx edx, byte [eax]
mov esi, ecx
or esi, edx
lea edi, [ecx - 0x6047ab00]
and edi, edx
lea edx, [esi + esi]
not edx
add edx, esi
or edx, edi
add dl, 0x54
mov byte [eax], dl
inc eax
dec ecx
cmp ecx, 0x6047ab3f
jne 0x43dc00
mov eax, dword [esp]
mov dword [esp + 0x1c], eax
cmp eax, 0x7ffffffe
ja 0x43e217
mov dword [esp + 0x18], 0
xor ebx, ebx
xor edi, edi
jmp 0x43dc77
mov eax, dword [esp + 0x70]
mov dword [eax + 4], edi
mov dword [eax], ebx
mov ecx, dword [esp + 0x18]
mov dword [eax + 8], ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x40]
add eax, dword [esp + 0x34]
mov dword [esp + 0x1c], eax
cmp eax, 0x7fffffff
jae 0x43e217
mov dword [esp + 0xc], ebx
mov eax, dword [esp + 0x28]
mov ecx, dword [eax]
mov dword [esp], 0xf0fffefd
lea eax, [esp + 4]
mov byte [eax + 2], 0
mov word [eax], 0
xor esi, esi
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
movzx ebp, byte [esp + edx]
mov eax, esi
and eax, 0xa
mov ebx, edx
xor ebx, 0xf04e77d5
add ebx, eax
xor ebx, ebp
mov eax, ebx
and eax, 1
or ebx, 1
add ebx, eax
add bl, 0xd6
mov byte [esp + edx], bl
inc edx
add esi, 2
cmp edx, 7
jne 0x43dca0
mov eax, dword [esp]
mov edx, dword [0x44f26c]
test edx, edx
je 0x43dd40
xor ebx, ebx
mov ebp, dword [0x44f270]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebp + ebx*8], 0xc18bc4ba
je 0x43dd10
inc ebx
cmp edx, ebx
jne 0x43dcf0
jmp 0x43dd40
mov edx, dword [ebp + ebx*8 + 4]
cmp edx, eax
je 0x43dd40
push 0
push 0x1c
lea eax, [esp + 0x3c]
push eax
push 0
push dword [esp + 0x2c]
push ecx
push 0x18
push edx
push dword [0x44f274]
call fcn.0043fac0
add esp, 0x24
nop
nop
nop
nop
nop
nop
nop
cmp eax, 0xbfffffff
mov ebx, dword [esp + 0xc]
ja 0x43e217
test eax, eax
js 0x43dc60
cmp dword [esp + 0x44], 0x1000
jne 0x43dc60
test byte [esp + 0x48], 0x66
je 0x43dc60
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x20]
cmp eax, ecx
jbe 0x43defa
mov dword [esp], 0xf0fffefd
lea ecx, [esp + 4]
mov byte [ecx + 2], 0
mov word [ecx], 0
xor ecx, ecx
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + edx]
mov ebp, ecx
and ebp, 0xa
mov ebx, edx
xor ebx, 0xf04e77d5
add ebx, ebp
xor ebx, esi
mov esi, ebx
and esi, 1
or ebx, 1
add ebx, esi
add bl, 0xd6
mov byte [esp + edx], bl
inc edx
add ecx, 2
cmp edx, 7
jne 0x43dda0
mov ecx, dword [0x44f26c]
test ecx, ecx
je 0x43de2f
mov edx, dword [esp]
xor ebx, ebx
mov ebp, dword [0x44f270]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebp + ebx*8], 0x6dbc3610
je 0x43de01
inc ebx
cmp ecx, ebx
jne 0x43ddf0
jmp 0x43de2f
mov ecx, dword [ebp + ebx*8 + 4]
cmp ecx, edx
je 0x43de2f
push 0x8000
lea eax, [esp + 0x34]
push eax
lea eax, [esp + 0x1c]
push eax
push 0xffffffffffffffff
push 0x10
push ecx
push dword [0x44f274]
call fcn.0043fac0
add esp, 0x1c
mov eax, dword [esp + 0x40]
mov dword [esp + 0x14], 0
mov dword [esp + 0x20], eax
mov dword [esp], 0xf0fffefd
lea eax, [esp + 4]
mov byte [eax + 2], 0
mov word [eax], 0
xor eax, eax
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + ecx]
mov ebx, eax
and ebx, 0xa
mov edx, ecx
xor edx, 0xf04e77d5
add edx, ebx
xor edx, esi
mov esi, edx
and esi, 1
or edx, 1
add edx, esi
add dl, 0xd6
mov byte [esp + ecx], dl
inc ecx
add eax, 2
cmp ecx, 7
jne 0x43de60
mov eax, dword [esp]
mov ecx, dword [0x44f26c]
test ecx, ecx
je 0x43deee
xor edx, edx
mov ebx, dword [0x44f270]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edx*8], 0x98d5a07f
je 0x43dec0
inc edx
cmp ecx, edx
jne 0x43deb0
jmp 0x43deee
mov ecx, dword [ebx + edx*8 + 4]
cmp ecx, eax
je 0x43deee
push 4
push 0x3000
lea eax, [esp + 0x28]
push eax
push 0
lea eax, [esp + 0x24]
push eax
push 0xffffffffffffffff
push 0x18
push ecx
push dword [0x44f274]
call fcn.0043fac0
add esp, 0x24
test eax, eax
js 0x43e217
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x28]
mov eax, dword [eax]
mov dword [esp + 0x10], eax
mov dword [esp], 0xf0fffefd
lea eax, [esp + 4]
mov byte [eax + 2], 0
mov word [eax], 0
xor eax, eax
xor ebp, ebp
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + ebp]
mov ebx, eax
and ebx, 0xa
mov edx, ebp
xor edx, 0xf04e77d5
add edx, ebx
xor edx, esi
mov esi, edx
and esi, 1
or edx, 1
add edx, esi
add dl, 0xd6
mov byte [esp + ebp], dl
inc ebp
add eax, 2
cmp ebp, 7
jne 0x43df30
mov eax, dword [esp]
mov ebp, dword [0x44f26c]
test ebp, ebp
je 0x43dfc0
xor edx, edx
mov ebx, dword [0x44f270]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edx*8], 0xe6c7f7c6
je 0x43df90
inc edx
cmp ebp, edx
jne 0x43df80
jmp 0x43dfc0
mov ebp, dword [ebx + edx*8 + 4]
cmp ebp, eax
je 0x43dfc0
lea eax, [esp + 0x58]
push eax
push ecx
push dword [esp + 0x2c]
push dword [esp + 0x28]
push dword [esp + 0x20]
push 0x14
push ebp
push dword [0x44f274]
call fcn.0043fac0
add esp, 0x20
nop
nop
nop
nop
nop
test eax, eax
mov ebx, dword [esp + 0xc]
jns 0x43dfd3
cmp eax, 0x8000000d
jne 0x43dc60
push dword [esp + 0x7c]
push dword [esp + 0x7c]
push dword [esp + 0x7c]
push dword [esp + 0x64]
push dword [esp + 0x24]
lea eax, [esp + 0x14]
push eax
call fcn.0043e2d0
add esp, 0x18
mov ebp, dword [esp]
mov edx, dword [esp + 4]
cmp ebp, edx
je 0x43dc47
mov dword [esp + 0x50], ebp
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x54], edx
jmp 0x43e037
mov edi, ebx
mov ebx, dword [esp + 0xc]
mov dword [ebx + eax], esi
add edi, 4
add ebp, 4
cmp ebp, edx
je 0x43e1de
mov esi, dword [ebp]
add esi, ecx
sub esi, dword [esp + 0x14]
mov eax, edi
mov dword [esp + 0xc], ebx
sub eax, ebx
mov ebx, edi
cmp edi, dword [esp + 0x18]
jne 0x43e020
mov dword [esp + 0x24], esi
mov edx, eax
sar edx, 2
mov dword [esp + 0x10], eax
mov esi, eax
shr esi, 1
mov ecx, esi
and ecx, 2
mov edi, edx
shr edi, 1
add edi, edx
mov eax, edx
xor eax, 1
add eax, ecx
cmp edi, eax
ja 0x43e079
mov edi, eax
mov dword [esp + 0x18], edi
lea eax, [edi*4]
push eax
call fcn.004083e0
add esp, 4
mov ecx, eax
mov eax, dword [esp + 0xc]
test eax, eax
je 0x43e1b8
cmp ecx, eax
mov edx, dword [esp + 0x10]
mov dword [esp + 0x2c], ecx
jbe 0x43e16f
mov edi, ebx
cmp ebx, ecx
jbe 0x43e16f
test edx, edx
je 0x43e1a8
mov edx, dword [esp + 0x10]
mov eax, edx
and eax, 0xfffffffe
add eax, eax
mov ecx, edx
xor ecx, 1
sub eax, ecx
mov ebx, dword [esp + 0xc]
lea ecx, [ebx + eax]
add eax, dword [esp + 0x2c]
mov esi, edx
and esi, 7
je 0x43e108
neg esi
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [ecx + edx]
mov byte [eax + edx], bl
dec edx
cmp esi, edx
jne 0x43e0f0
add ecx, edx
add eax, edx
add edx, dword [esp + 0x10]
mov ebx, dword [esp + 0xc]
mov esi, ebx
sub esi, edi
cmp esi, 0xfffffff8
ja 0x43e1a8
neg edx
xor esi, esi
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [ecx + esi]
mov byte [eax + esi], bl
movzx ebx, byte [ecx + esi - 1]
mov byte [eax + esi - 1], bl
movzx ebx, byte [ecx + esi - 2]
mov byte [eax + esi - 2], bl
movzx ebx, byte [ecx + esi - 3]
mov byte [eax + esi - 3], bl
movzx ebx, byte [ecx + esi - 4]
mov byte [eax + esi - 4], bl
movzx ebx, byte [ecx + esi - 5]
mov byte [eax + esi - 5], bl
movzx ebx, byte [ecx + esi - 6]
mov byte [eax + esi - 6], bl
movzx ebx, byte [ecx + esi - 7]
mov byte [eax + esi - 7], bl
add esi, 0xfffffff8
cmp edx, esi
jne 0x43e120
jmp 0x43e1a8
mov ebx, ecx
mov ecx, edx
shr ecx, 2
mov edi, ebx
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
and edx, 0xfffffffc
add ebx, edx
add edx, dword [esp + 0xc]
and esi, 1
mov eax, edx
mov ecx, esi
mov edi, ebx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
test byte [esp + 0x10], 1
je 0x43e1a8
mov eax, dword [esp + 0x10]
and eax, 2
movzx ecx, byte [edx + eax]
mov byte [ebx + eax], cl
push dword [esp + 0xc]
call fcn.004083f0
add esp, 4
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x18]
lea eax, [ecx + eax*4]
mov dword [esp + 0x18], eax
mov edi, ecx
mov eax, dword [esp + 0x10]
add edi, eax
mov ebx, ecx
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x54]
mov esi, dword [esp + 0x24]
jmp 0x43e026
mov eax, dword [esp + 0x70]
mov dword [eax + 4], edi
mov dword [eax], ebx
mov ecx, dword [esp + 0x18]
mov dword [eax + 8], ecx
mov eax, dword [esp + 0x50]
test eax, eax
je 0x43dc60
cmp eax, edx
je 0x43dc60
push eax
call fcn.004083f0
add esp, 4
mov dword [esp], 0
jmp 0x43dc60
mov dword [esp], 0xf0fffefd
mov word [esp + 4], 0
mov byte [esp + 6], 0
xor eax, eax
xor ecx, ecx
nop
nop
movzx esi, byte [esp + ecx]
mov edi, eax
and edi, 0xa
mov edx, ecx
xor edx, 0xf04e77d5
add edx, edi
xor edx, esi
mov esi, edx
and esi, 1
or edx, 1
add edx, esi
add dl, 0xd6
mov byte [esp + ecx], dl
inc ecx
add eax, 2
cmp ecx, 7
jne 0x43e230
mov eax, dword [0x44f26c]
test eax, eax
je 0x43e2ba
mov ecx, dword [esp]
xor edx, edx
mov esi, dword [0x44f270]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [esi + edx*8], 0x6dbc3610
je 0x43e290
inc edx
cmp eax, edx
jne 0x43e280
jmp 0x43e2ba
mov eax, dword [esi + edx*8 + 4]
cmp eax, ecx
je 0x43e2ba
lea ecx, [esp + 0x30]
lea edx, [esp + 0x14]
push 0x8000
push ecx
push edx
push 0xffffffffffffffff
push 0x10
push eax
push dword [0x44f274]
call fcn.0043fac0
add esp, 0x1c
mov eax, dword [esp + 0x70]
add esp, 0x5c
pop esi
pop edi
pop ebx
pop ebp
ret 0x10