Function at 0x43d87c
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffea8
mov eax, 0x4d1078
push ebx
push esi
push edi
mov esi, dword [ebp + 8]
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
push esi
call fcn.0043d850
pop ecx
push 0x80000000
mov ecx, dword [ebp + 0xc]
push ecx
lea eax, [ebp - 4]
push eax
call fcn.00449368
add esp, 0xc
test al, al
je 0x43d926
lea edx, [ebp - 4]
push edx
call fcn.004494d8
pop ecx
mov edi, eax
mov ebx, edi
push ebx
call fcn.004b01a0
pop ecx
mov dword [ebp - 0x30], eax
mov al, byte [ebp + 0x10]
test al, al
je 0x43d903
push ebx
mov edx, dword [ebp - 0x30]
push edx
lea ecx, [ebp - 4]
push ecx
call fcn.00449464
add esp, 0xc
mov dword [ebp - 0x2c], eax
jmp 0x43d917
push ebx
mov eax, dword [ebp - 0x30]
push eax
lea edx, [ebp - 4]
push edx
call fcn.00449428
add esp, 0xc
mov dword [ebp - 0x2c], eax
lea ecx, [ebp - 4]
push ecx
call fcn.0044940c
pop ecx
jmp 0x43da2d
mov eax, dword [ebp + 0xc]
push eax
mov edx, dword [0x4c14b4]
push edx
call fcn.0043f174
add esp, 8
test al, al
je 0x43d9ee
mov ecx, dword [0x4c14b4]
push ecx
call fcn.0043f300
pop ecx
mov edi, eax
mov ebx, edi
push ebx
call fcn.004b01a0
pop ecx
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x30]
test eax, eax
je 0x43d9e0
mov dword [ebp - 0x34], 0x4d0d16
mov dl, byte [ebp + 0x10]
test dl, dl
je 0x43d988
push 1
push ebx
mov ecx, dword [ebp - 0x30]
push ecx
mov eax, dword [0x4c14b4]
push eax
call fcn.0043f29c
add esp, 0x10
jmp 0x43d99e
push 0
push ebx
mov edx, dword [ebp - 0x30]
push edx
mov ecx, dword [0x4c14b4]
push ecx
call fcn.0043f29c
add esp, 0x10
mov dword [ebp - 0x2c], edi
xor eax, eax
mov dword [ebp - 0x38], eax
xor ebx, ebx
mov eax, dword [ebp - 0x30]
mov edx, eax
mov dword [ebp - 0x3c], edx
mov ecx, dword [ebp - 0x34]
push ecx
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]
mov edx, dword [ebp - 0x3c]
xor byte [edx], al
inc dword [ebp - 0x3c]
inc dword [ebp - 0x38]
inc ebx
mov ecx, dword [ebp - 0x38]
cmp ecx, 0x20
jl 0x43d9b0
mov eax, dword [0x4c14b4]
push eax
call fcn.0043f294
pop ecx
jmp 0x43da2d
mov edx, dword [ebp + 0xc]
push edx
push 0x4d0d25
push 0x122
push 0x4d0d1e
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 0x43dd47
test edi, edi
jg 0x43da70
mov ecx, dword [ebp + 0xc]
push ecx
push 0x4d0d3f
push 0x129
push 0x4d0d38
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 0x43dd47
mov ecx, dword [ebp - 0x30]
mov eax, dword [ecx]
cmp eax, 0x53504238
jne 0x43da84
mov edx, dword [ebp - 0x30]
mov dword [esi + 4], edx
jmp 0x43dac0
mov ecx, dword [ebp - 0x30]
mov eax, dword [ecx]
mov dword [ebp - 0x2c], eax
mov edx, dword [ebp - 0x2c]
push edx
call fcn.004b01a0
pop ecx
mov ebx, eax
mov dword [esi + 4], ebx
test ebx, ebx
je 0x43dab3
add edi, 0xfffffffc
push edi
mov eax, dword [ebp - 0x30]
add eax, 4
push eax
push ebx
call fcn.00448864
add esp, 0xc
mov edx, dword [ebp - 0x30]
push edx
call fcn.004affd8
pop ecx
mov edi, dword [ebp - 0x2c]
mov eax, dword [esi + 4]
test eax, eax
jne 0x43db06
mov edx, dword [ebp + 0xc]
push edx
push 0x4d0d5d
push 0x13e
push 0x4d0d56
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 0x43dd47
mov ecx, dword [ebp - 0x2c]
cmp ecx, edi
je 0x43db4c
mov eax, dword [ebp + 0xc]
push eax
push 0x4d0d75
push 0x145
push 0x4d0d6e
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 0x43dd47
lea ecx, [ebp - 0x58]
push ecx
mov eax, dword [esi + 4]
push eax
push esi
call fcn.0043dd74
add esp, 0xc
test al, al
jne 0x43dba0
mov edx, dword [ebp + 0xc]
push edx
push 0x4d0d99
push 0x14d
push 0x4d0d92
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 0x43dd47
cmp word [ebp - 0x58], 3
je 0x43dbe6
mov ecx, dword [ebp + 0xc]
push ecx
push 0x4d0dbb
push 0x154
push 0x4d0db4
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 0x43dd47
cmp word [ebp - 0x48], 8
je 0x43dc2c
mov ecx, dword [ebp + 0xc]
push ecx
push 0x4d0de5
push 0x15b
push 0x4d0dde
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 0x43dd47
cmp word [ebp - 0x46], 3
jne 0x43dc4a
cmp word [ebp - 0x44], 2
jl 0x43dc4a
mov ecx, dword [ebp - 0x42]
test ecx, ecx
jne 0x43dc4a
mov byte [esi + 0x10], 1
jmp 0x43dcf7
cmp word [ebp - 0x46], 3
jne 0x43dc68
cmp word [ebp - 0x44], 0
jl 0x43dc68
mov eax, dword [ebp - 0x42]
test eax, eax
jne 0x43dc68
mov byte [esi + 0x10], 0
jmp 0x43dcf7
cmp word [ebp - 0x46], 4
jne 0x43dc82
cmp word [ebp - 0x44], 1
jl 0x43dc82
mov edx, dword [ebp - 0x42]
dec edx
jne 0x43dc82
mov byte [esi + 0x10], 1
jmp 0x43dcf7
mov ecx, dword [ebp - 0x42]
test ecx, ecx
je 0x43dc90
mov eax, 0x4d0e2e
jmp 0x43dc95
mov eax, 0x4d0e33
push eax
movsx edx, word [ebp - 0x44]
push edx
lea edx, [ebp - 0x158]
movsx ecx, word [ebp - 0x46]
push ecx
mov eax, dword [ebp + 0xc]
push eax
push 0x4d0e02
push edx
call fcn.004c07f2
add esp, 0x18
lea ecx, [ebp - 0x158]
push ecx
push 0x4d0e40
push 0x17e
push 0x4d0e39
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 0x43dd47
mov ecx, dword [ebp - 0x56]
mov dword [esi + 8], ecx
mov eax, dword [ebp - 0x52]
mov dword [esi + 0xc], eax
movsx eax, word [ebp - 0x44]
mov dword [esi + 0x11], eax
test eax, eax
jne 0x43dd15
mov edx, 1
jmp 0x43dd18
mov edx, dword [esi + 0x11]
mov dword [esi + 0x11], edx
mov eax, dword [ebp + 0xc]
push eax
add esi, 0x15
push esi
call fcn.004c00ca
mov al, 1
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
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret