Function at 0x43cfb0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xa8
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
mov dword [esp + 0x9c], 0
mov dword [esp + 0x98], 0x6878
mov word [esp + 0x8e], 0x6eed
mov dword [esp + 0x88], 0x28a6
mov dl, byte [esp + 0x97]
movzx esi, word [esp + 0x8e]
mov di, si
xor esi, 0x50d2
mov bx, si
mov word [esp + 0x7e], bx
mov dh, dl
and dh, 0x91
mov byte [esp + 0x97], dh
mov esi, dword [esp + 0x98]
mov ebx, dword [esp + 0x9c]
mov dword [esp + 0x3c], eax
xor eax, eax
mov dword [esp + 0x38], eax
mov eax, 0xc8cd
sub eax, esi
mov esi, dword [esp + 0x38]
sbb esi, ebx
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], esi
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x64], eax
mov dword [esp + 0x6c], ecx
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0x64]
mov si, word [esp + 0x7e]
mov ebx, esp
mov dword [ebx], ecx
mov word [esp + 0x36], di
mov byte [esp + 0x35], dl
mov word [esp + 0x32], si
call fcn.0043d950
sub esp, 4
mov si, 0xac11
xor ecx, ecx
add ecx, 0x18
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x54]
mov ebx, dword [esp + 0x54]
movzx ebx, word [ebx + 0x14]
mov edi, eax
add edi, ecx
mov byte [esp + 0x97], 0xfb
add edi, ebx
sub si, word [esp + 0x8e]
mov cx, word [esp + 0x32]
cmp cx, si
mov dword [esp + 0x2c], edi
mov dword [esp + 0x28], eax
je 0x43d21a
jmp 0x43d1fd
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x50]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x90], 0x40c0
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x64]
add edx, dword [ecx + 0x14]
mov ecx, dword [esp + 0x4c]
mov esi, esp
mov dword [esi + 8], eax
mov dword [esi + 4], edx
mov dword [esi], ecx
call fcn.0043e5f0
sub esp, 0xc
mov dword [esp + 0x24], eax
jmp 0x43d250
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x9c]
mov si, word [esp + 0x36]
mov dx, si
and edx, edx
mov di, dx
mov word [esp + 0x94], di
mov edx, dword [esp + 0x70]
mov ebx, dword [esp + 0x74]
xor eax, edx
mov dl, 0xb0
mov dh, byte [esp + 0x35]
sub dl, dh
mov esi, dword [esp + 0x54]
mov byte [esp + 0x97], dl
mov esi, dword [esi + 0x54]
mov dword [esp + 0x60], esi
xor ebx, ecx
xor eax, 0x55ec
or eax, ebx
mov dword [esp + 0x20], eax
je 0x43d0ca
jmp 0x43d21a
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x68]
mov dl, byte [esp + 0x35]
mov dword [esp + 0x1c], eax
mov al, dl
mul dl
mov byte [esp + 0x97], al
mov esi, dword [esp + 0x1c]
movzx edi, word [esi + 6]
cmp ecx, edi
jae 0x43d10e
mov eax, dword [esp + 0x50]
mov eax, dword [eax + 0xc]
mov ecx, dword [esp + 0x58]
add ecx, eax
mov eax, dword [esp + 0x98]
mov edx, dword [esp + 0x9c]
mov esi, eax
xor esi, 0x417
xor eax, 0x6f63
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x44], edx
mov dword [esp + 0x40], esi
sub eax, esi
mov dword [esp + 0x18], eax
jae 0x43d198
jmp 0x43d0ca
mov eax, 0x28a7
sub eax, dword [esp + 0x88]
add eax, dword [esp + 0x68]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x50]
add eax, 0x28
mov dword [esp + 0x50], eax
jmp 0x43d16d
mov eax, dword [esp + 0x88]
add eax, 0xffffd75a
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x68], eax
jmp 0x43d16d
mov eax, dword [esp + 0x64]
mov word [esp + 0x94], 0x4935
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x58]
mov esi, esp
mov dword [esi + 8], ecx
mov dword [esi + 4], eax
mov dword [esi], edx
call fcn.0043e5f0
sub esp, 0xc
mov dword [esp + 0x14], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 8
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x9c]
mov edx, dword [esp + 0x28]
xor edx, 0x7014
mov dword [esp + 0x90], edx
xor edx, edx
mov esi, 0x6f7a
sub esi, eax
sbb edx, ecx
mov dword [esp + 0x84], edx
mov dword [esp + 0x80], esi
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x9c]
xor eax, 0x4af3
sub eax, esi
sbb ecx, edx
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], ecx
jae 0x43d1d9
jmp 0x43d16d