Function at 0x43fc6c
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffc0
mov eax, 0x4d2ba0
push ebx
push esi
push edi
call fcn.004b1018
mov word [ebp - 0x18], 8
lea edx, [ebp - 4]
push edx
call fcn.00449314
pop ecx
inc dword [ebp - 0xc]
mov word [ebp - 0x18], 0x14
xor esi, esi
push 0x80000000
mov eax, dword [ebp + 0xc]
push eax
lea edx, [ebp - 4]
push edx
call fcn.00449368
add esp, 0xc
test al, al
je 0x43fd04
lea ecx, [ebp - 4]
push ecx
call fcn.004494d8
pop ecx
mov dword [ebp - 0x30], eax
mov ebx, dword [ebp - 0x30]
push ebx
call fcn.004b01a0
pop ecx
mov esi, eax
test esi, esi
je 0x43fcf5
mov al, byte [ebp + 0x10]
test al, al
je 0x43fce7
push ebx
push esi
lea edx, [ebp - 4]
push edx
call fcn.00449464
add esp, 0xc
jmp 0x43fcf5
push ebx
push esi
lea ecx, [ebp - 4]
push ecx
call fcn.00449428
add esp, 0xc
lea eax, [ebp - 4]
push eax
call fcn.0044940c
pop ecx
jmp 0x43fdb0
mov edx, dword [0x4c14b4]
mov dword [ebp - 0x2c], edx
mov ecx, dword [ebp + 0xc]
push ecx
mov eax, dword [ebp - 0x2c]
push eax
call fcn.0043f174
add esp, 8
test al, al
je 0x43fdb0
mov edx, dword [ebp - 0x2c]
push edx
call fcn.0043f300
pop ecx
mov dword [ebp - 0x30], eax
mov ebx, dword [ebp - 0x30]
push ebx
call fcn.004b01a0
pop ecx
mov esi, eax
test esi, esi
je 0x43fda6
mov dword [ebp - 0x34], 0x4d2a9d
mov al, byte [ebp + 0x10]
test al, al
je 0x43fd62
push 1
push ebx
push esi
mov edx, dword [ebp - 0x2c]
push edx
call fcn.0043f29c
add esp, 0x10
jmp 0x43fd72
push 0
push ebx
push esi
mov ecx, dword [ebp - 0x2c]
push ecx
call fcn.0043f29c
add esp, 0x10
xor eax, eax
xor ebx, ebx
mov dword [ebp - 0x38], eax
mov edi, esi
mov eax, dword [ebp - 0x34]
push eax
call fcn.004b0c94
pop ecx
push eax
mov eax, ebx
pop edx
mov ecx, edx
xor edx, edx
div ecx
mov ebx, edx
mov eax, dword [ebp - 0x34]
mov al, byte [eax + ebx]
xor byte [edi], al
inc edi
inc dword [ebp - 0x38]
inc ebx
mov edx, dword [ebp - 0x38]
cmp edx, 0x20
jl 0x43fd7b
mov ecx, dword [ebp - 0x2c]
push ecx
call fcn.0043f294
pop ecx
test esi, esi
jne 0x43fdf3
mov eax, dword [ebp + 0xc]
push eax
push 0x4d2aac
push 0x238
push 0x4d2aa5
call fcn.0043ec8c
add esp, 0x10
xor eax, eax
lea edx, [ebp - 4]
push eax
dec dword [ebp - 0xc]
push 2
push edx
call fcn.00449344
add esp, 8
pop eax
mov edx, dword [ebp - 0x28]
mov dword fs:[0], edx
jmp 0x43ffc1
cmp word [esi], 0x4d42
jne 0x43fdfe
mov ebx, esi
jmp 0x43fe2d
mov eax, dword [esi]
push eax
call fcn.004b01a0
pop ecx
mov ebx, eax
test ebx, ebx
je 0x43fe26
mov eax, dword [ebp - 0x30]
lea edx, [esi + 4]
add eax, 0xfffffffc
push eax
push edx
push ebx
call fcn.00448864
add esp, 0xc
mov ecx, dword [esi]
mov dword [ebp - 0x30], ecx
push esi
call fcn.004affd8
pop ecx
lea edi, [ebx + 0xe]
mov al, byte [0x4d2c61]
test al, al
je 0x43fe6e
push 0
mov edx, dword [ebp - 0x30]
push edx
push ebx
mov ecx, dword [ebp + 8]
push ecx
call fcn.0043ffc8
add esp, 0x10
push eax
lea eax, [ebp - 4]
dec dword [ebp - 0xc]
push 2
push eax
call fcn.00449344
add esp, 8
pop eax
mov edx, dword [ebp - 0x28]
mov dword fs:[0], edx
jmp 0x43ffc1
mov ecx, dword [edi + 4]
mov dword [ebp - 0x3c], ecx
mov word [ebp - 0x18], 0x14
mov eax, dword [edi + 8]
mov dword [ebp - 0x40], eax
push 0
push 1
push 1
mov edx, dword [ebp - 0x40]
push edx
mov ecx, dword [ebp - 0x3c]
push ecx
mov eax, dword [ebp + 8]
push eax
call fcn.0043f5e8
add esp, 0x18
test al, al
jne 0x43fec9
push ebx
call fcn.004affc8
xor eax, eax
pop ecx
push eax
lea edx, [ebp - 4]
dec dword [ebp - 0xc]
push 2
push edx
call fcn.00449344
add esp, 8
pop eax
mov edx, dword [ebp - 0x28]
mov dword fs:[0], edx
jmp 0x43ffc1
cmp word [edi + 0xe], 0x18
lea esi, [edi + 0x28]
jne 0x43ff0a
mov eax, dword [ebp - 0x3c]
lea eax, [eax + eax*2]
add eax, 3
and eax, 0xfffffffc
push eax
mov edx, dword [ebp - 0x40]
push edx
mov ecx, dword [ebp - 0x3c]
push ecx
mov edx, dword [ebp - 0x40]
dec edx
imul edx, eax
add esi, edx
push esi
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x328]
push ecx
mov eax, dword [ebp + 8]
push eax
call fcn.0043fab4
add esp, 0x18
jmp 0x43ff80
cmp word [edi + 0xe], 8
jne 0x43ff3d
mov eax, dword [ebp - 0x3c]
add eax, 3
and eax, 0xfffffffc
push edi
push eax
mov edx, dword [ebp - 0x40]
push edx
mov ecx, dword [ebp - 0x3c]
push ecx
push esi
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x328]
push edx
mov ecx, dword [ebp + 8]
push ecx
call fcn.0043fad8
add esp, 0x1c
jmp 0x43ff80
mov eax, dword [ebp + 0xc]
push eax
push 0x4d2ade
push 0x26f
push 0x4d2ad7
call fcn.0043ec8c
add esp, 0x10
push ebx
call fcn.004affd8
xor eax, eax
pop ecx
push eax
lea edx, [ebp - 4]
dec dword [ebp - 0xc]
push 2
push edx
call fcn.00449344
add esp, 8
pop eax
mov edx, dword [ebp - 0x28]
mov dword fs:[0], edx
jmp 0x43ffc1
test ebx, ebx
je 0x43ff8b
push ebx
call fcn.004affd8
pop ecx
mov ecx, dword [ebp + 8]
lea edx, [ebp - 4]
mov dword [ecx + 0x12d4], 1
mov eax, dword [ebp + 8]
mov byte [eax + 0x650], 1
mov al, 1
push eax
dec dword [ebp - 0xc]
push 2
push edx
call fcn.00449344
add esp, 8
pop eax
mov edx, dword [ebp - 0x28]
mov dword fs:[0], edx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret