Function at 0x43bb30
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x60
mov dword [esp + 0x28], ecx
mov ebp, dword [esp + 0x74]
mov dword [ebp + 8], 0
mov dword [ebp + 4], 0
mov dword [ebp], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x24], 0x100000
mov dword [esp + 4], 0
mov dword [esp + 0x38], 0x34353637
mov dword [esp + 0x3c], 0
lea eax, [esp + 0x38]
mov ecx, 0x507bf34b
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [eax]
lea esi, [edx + edx]
not esi
add esi, edx
and esi, 0xa05a69f3
mov edi, edx
xor edi, 0xa05a69f3
or edx, 0xc
and edx, edi
mov edi, esi
xor edi, edx
not edx
and edx, esi
add edi, esi
sub edi, edx
mov edx, ecx
xor edx, 0x5fa5960c
mov esi, edi
and esi, edx
add edx, edi
add esi, esi
sub edx, esi
add dl, 0x7c
mov byte [eax], dl
inc eax
dec ecx
cmp ecx, 0x507bf343
jne 0x43bb90
mov eax, dword [esp + 0x38]
mov ecx, dword [0x44d2b8]
test ecx, ecx
je 0x43bc2e
xor edx, edx
mov esi, dword [0x44d2bc]
cmp dword [esi + edx*8], 0x98d5a07f
je 0x43bc00
inc edx
cmp ecx, edx
jne 0x43bbf0
jmp 0x43bc2e
mov ecx, dword [esi + edx*8 + 4]
cmp ecx, eax
je 0x43bc2e
lea eax, [esp + 0x24]
lea edx, [esp + 4]
push 4
push 0x3000
push eax
push 0
push edx
push 0xffffffffffffffff
push 0x18
push ecx
push dword [0x44d2c0]
call fcn.0043d920
add esp, 0x24
test eax, eax
js 0x43c23a
mov dword [esp + 0x50], 0
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 + 0xc], 0x97979998
mov word [esp + 0x10], 0
mov byte [esp + 0x12], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0xe6
xor cl, byte [esp + eax + 0xc]
add cl, 0x82
mov byte [esp + eax + 0xc], cl
inc eax
cmp eax, 7
jne 0x43bc90
mov ebx, dword [esp + 0xc]
cmp ebx, 0x7ffffffe
mov esi, dword [esp + 0x28]
ja 0x43c17b
mov dword [esp + 0x18], 0
mov dword [esp + 8], 0
mov dword [esp], 0
jmp 0x43bd04
mov eax, dword [esp]
mov dword [ebp + 4], eax
mov eax, dword [esp + 8]
mov dword [ebp], eax
mov eax, dword [esp + 0x18]
mov dword [ebp + 8], eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, dword [esp + 0x44]
add ebx, dword [esp + 0x38]
cmp ebx, 0x7fffffff
jae 0x43c17b
mov ecx, esi
push 0
push 0x1c
lea eax, [esp + 0x40]
push eax
push 0
push ebx
call fcn.0043b960
cmp eax, 0xbfffffff
ja 0x43c17b
test eax, eax
js 0x43bcf0
cmp dword [esp + 0x48], 0x1000
jne 0x43bcf0
test byte [esp + 0x4c], 0x66
je 0x43bcf0
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x24]
cmp eax, edx
mov dword [esp + 0x20], ebx
jbe 0x43bf04
mov dword [esp + 0xc], 0x34353637
mov dword [esp + 0x10], 0
mov ecx, 0x507bf34b
lea edx, [esp + 0xc]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [edx]
lea ebx, [esi + esi]
not ebx
add ebx, esi
and ebx, 0xa05a69f3
mov edi, esi
xor edi, 0xa05a69f3
or esi, 0xc
and esi, edi
mov edi, ebx
xor edi, esi
not esi
and esi, ebx
add edi, ebx
sub edi, esi
mov ebx, ecx
xor ebx, 0x5fa5960c
mov esi, edi
and esi, ebx
add ebx, edi
add esi, esi
sub ebx, esi
add bl, 0x7c
mov byte [edx], bl
inc edx
dec ecx
cmp ecx, 0x507bf343
jne 0x43bd70
mov ecx, dword [0x44d2b8]
test ecx, ecx
je 0x43be0e
mov edx, dword [esp + 0xc]
xor esi, esi
mov edi, dword [0x44d2bc]
cmp dword [edi + esi*8], 0x6dbc3610
je 0x43bde0
inc esi
cmp ecx, esi
jne 0x43bdd0
jmp 0x43be0e
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
je 0x43be0e
push 0x8000
lea eax, [esp + 0x38]
push eax
lea eax, [esp + 0xc]
push eax
push 0xffffffffffffffff
push 0x10
push ecx
push dword [0x44d2c0]
call fcn.0043d920
add esp, 0x1c
mov eax, dword [esp + 0x44]
mov dword [esp + 4], 0
mov dword [esp + 0x24], eax
mov dword [esp + 0xc], 0x34353637
mov dword [esp + 0x10], 0
mov eax, 0x507bf34b
lea ecx, [esp + 0xc]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [ecx]
lea esi, [edx + edx]
not esi
add esi, edx
and esi, 0xa05a69f3
mov edi, edx
xor edi, 0xa05a69f3
or edx, 0xc
and edx, edi
mov edi, esi
xor edi, edx
not edx
and edx, esi
add edi, esi
sub edi, edx
mov edx, eax
xor edx, 0x5fa5960c
mov esi, edi
and esi, edx
add edx, edi
add esi, esi
sub edx, esi
add dl, 0x7c
mov byte [ecx], dl
inc ecx
dec eax
cmp eax, 0x507bf343
jne 0x43be40
mov eax, dword [esp + 0xc]
mov ecx, dword [0x44d2b8]
test ecx, ecx
je 0x43bec0
xor edx, edx
mov esi, dword [0x44d2bc]
mov ebx, dword [esp + 0x20]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [esi + edx*8], 0x98d5a07f
je 0x43bec6
inc edx
cmp ecx, edx
jne 0x43beb0
jmp 0x43bef4
mov ebx, dword [esp + 0x20]
jmp 0x43bef4
mov ecx, dword [esi + edx*8 + 4]
cmp ecx, eax
je 0x43bef4
push 4
push 0x3000
lea eax, [esp + 0x2c]
push eax
push 0
lea eax, [esp + 0x14]
push eax
push 0xffffffffffffffff
push 0x18
push ecx
push dword [0x44d2c0]
call fcn.0043d920
add esp, 0x24
test eax, eax
mov esi, dword [esp + 0x28]
js 0x43c17b
mov edx, dword [esp + 0x24]
mov ecx, esi
lea eax, [esp + 0x5c]
push eax
push edx
push dword [esp + 0xc]
push ebx
call fcn.0043ba40
test eax, eax
jns 0x43bf25
cmp eax, 0x8000000d
jne 0x43bcf0
push dword [esp + 0x80]
push dword [esp + 0x80]
push dword [esp + 0x80]
push dword [esp + 0x68]
push dword [esp + 0x14]
lea eax, [esp + 0x20]
push eax
call fcn.0043c250
add esp, 0x18
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x10]
cmp ecx, eax
je 0x43bcd3
mov dword [esp + 0x54], ecx
mov esi, ecx
mov edx, dword [esp]
mov dword [esp + 0x2c], eax
mov edi, dword [esp + 8]
jmp 0x43bf97
mov edi, ebx
mov ebx, dword [esp + 0x20]
mov dword [edi + ecx], ebp
add edx, 4
add esi, 4
cmp esi, eax
je 0x43c12b
mov ebp, dword [esi]
add ebp, ebx
sub ebp, dword [esp + 4]
mov ecx, edx
mov ebx, edi
sub ecx, edi
cmp edx, dword [esp + 0x18]
jne 0x43bf80
mov dword [esp], edx
mov dword [esp + 0x1c], ecx
sar ecx, 2
lea eax, [ecx + 1]
mov edi, ecx
shr edi, 1
add edi, ecx
cmp edi, eax
ja 0x43bfc4
mov edi, eax
lea eax, [edi*4]
push eax
call fcn.00408380
add esp, 4
mov edx, ebx
test ebx, ebx
mov ebx, dword [esp + 0x20]
je 0x43c111
mov dword [esp + 0x18], edi
cmp eax, edx
mov dword [esp + 8], edx
mov ecx, dword [esp]
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x30], eax
jbe 0x43c0af
cmp ecx, eax
jbe 0x43c0af
test ebx, ebx
je 0x43c0f9
mov ebx, dword [esp + 8]
mov edx, dword [esp + 0x1c]
lea eax, [ebx + edx]
dec eax
mov ecx, dword [esp + 0x30]
add ecx, edx
dec ecx
mov edi, edx
and edi, 7
je 0x43c048
neg edi
xor edx, edx
nop
nop
nop
nop
nop
movzx ebx, byte [eax + edx]
mov byte [ecx + edx], bl
dec edx
cmp edi, edx
jne 0x43c030
add eax, edx
add ecx, edx
add edx, dword [esp + 0x1c]
mov ebx, dword [esp + 8]
mov edi, ebx
sub edi, dword [esp]
cmp edi, 0xfffffff8
ja 0x43c0f9
neg edx
xor edi, edi
nop
nop
nop
nop
nop
nop
movzx ebx, byte [eax + edi]
mov byte [ecx + edi], bl
movzx ebx, byte [eax + edi - 1]
mov byte [ecx + edi - 1], bl
movzx ebx, byte [eax + edi - 2]
mov byte [ecx + edi - 2], bl
movzx ebx, byte [eax + edi - 3]
mov byte [ecx + edi - 3], bl
movzx ebx, byte [eax + edi - 4]
mov byte [ecx + edi - 4], bl
movzx ebx, byte [eax + edi - 5]
mov byte [ecx + edi - 5], bl
movzx ebx, byte [eax + edi - 6]
mov byte [ecx + edi - 6], bl
movzx ebx, byte [eax + edi - 7]
mov byte [ecx + edi - 7], bl
add edi, 0xfffffff8
cmp edx, edi
jne 0x43c060
jmp 0x43c0f9
mov ecx, ebx
shr ecx, 2
mov dword [esp], ebp
mov ebp, edx
mov edi, eax
xchg esi, ebp
rep movsd dword es:[edi], dword [esi]
xchg esi, ebp
mov ebp, dword [esp]
mov ecx, edx
mov edx, ebx
and edx, 0xfffffffc
lea edi, [eax + edx]
add edx, ecx
mov ecx, ebx
shr ecx, 1
and ecx, 1
mov eax, edx
mov dword [esp + 0x58], edi
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
test bl, 1
je 0x43c0f9
mov eax, dword [esp + 0x1c]
and eax, 2
movzx ecx, byte [edx + eax]
mov edx, dword [esp + 0x58]
mov byte [edx + eax], cl
push dword [esp + 8]
call fcn.00408390
add esp, 4
mov ebx, dword [esp + 0x20]
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x30]
lea ecx, [eax + edi*4]
mov dword [esp + 0x18], ecx
mov edx, eax
mov ecx, dword [esp + 0x1c]
add edx, ecx
mov edi, eax
mov eax, dword [esp + 0x2c]
jmp 0x43bf86
mov ebp, dword [esp + 0x74]
mov dword [ebp + 4], edx
mov dword [esp + 8], edi
mov dword [ebp], edi
mov eax, dword [esp + 0x18]
mov dword [ebp + 8], eax
mov eax, dword [esp + 0x54]
test eax, eax
je 0x43c16f
mov dword [esp], edx
cmp eax, dword [esp + 0x2c]
mov esi, dword [esp + 0x28]
je 0x43bcf0
push eax
call fcn.00408390
add esp, 4
mov dword [esp + 0xc], 0
jmp 0x43bcf0
mov dword [esp], edx
mov esi, dword [esp + 0x28]
jmp 0x43bcf0
lea eax, [esp + 0xc]
mov dword [esp + 0xc], 0x34353637
mov dword [esp + 0x10], 0
mov ecx, 0x507bf34b
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [eax]
lea esi, [edx + edx]
not esi
add esi, edx
and esi, 0xa05a69f3
mov edi, edx
xor edi, 0xa05a69f3
or edx, 0xc
and edx, edi
mov edi, esi
xor edi, edx
not edx
and edx, esi
add edi, esi
sub edi, edx
mov edx, ecx
xor edx, 0x5fa5960c
mov esi, edi
and esi, edx
add edx, edi
add esi, esi
sub edx, esi
add dl, 0x7c
mov byte [eax], dl
inc eax
dec ecx
cmp ecx, 0x507bf343
jne 0x43c1a0
mov eax, dword [0x44d2b8]
test eax, eax
je 0x43c23a
mov ecx, dword [esp + 0xc]
xor edx, edx
mov esi, dword [0x44d2bc]
nop
cmp dword [esi + edx*8], 0x6dbc3610
je 0x43c210
inc edx
cmp eax, edx
jne 0x43c200
jmp 0x43c23a
mov eax, dword [esi + edx*8 + 4]
cmp eax, ecx
je 0x43c23a
lea ecx, [esp + 0x34]
lea edx, [esp + 4]
push 0x8000
push ecx
push edx
push 0xffffffffffffffff
push 0x10
push eax
push dword [0x44d2c0]
call fcn.0043d920
add esp, 0x1c
mov eax, ebp
add esp, 0x60
pop esi
pop edi
pop ebx
pop ebp
ret 0x10