Function at 0x43d6d0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x18
mov eax, dword [esp + 0x34]
mov dword [esp + 0xc], eax
mov dword [esp], 0x504f4e4d
mov eax, esp
mov ecx, 0x9618f2
nop
nop
nop
movzx esi, byte [eax]
mov edi, ecx
and edi, 0x8210d7
lea edx, [ecx - 0x5a000000]
and edx, 0xa6140828
or edx, edi
mov edi, esi
xor edi, 0xd7
mov ebp, edx
xor ebp, 0x28
or ebp, edi
xor esi, 8
xor edx, 0xd7
or edx, esi
and edx, ebp
add dl, 0xbf
mov byte [eax], dl
inc eax
dec ecx
cmp ecx, 0x9618ee
jne 0x43d6f0
mov esi, dword [esp]
mov eax, dword [0x44a890]
test eax, eax
je 0x43d78e
xor ecx, ecx
mov edx, dword [0x44a894]
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edx + ecx*8], 0x33079ccd
je 0x43d760
inc ecx
cmp eax, ecx
jne 0x43d750
jmp 0x43d78e
mov eax, dword [edx + ecx*8 + 4]
cmp eax, esi
je 0x43d78e
lea ecx, [esp + 0x14]
push ecx
push 0
push 0
push 0
push dword [esp + 0x40]
push dword [esp + 0x40]
push 0x18
push eax
push dword [0x44a898]
call fcn.00439540
add esp, 0x24
mov esi, eax
mov dword [esp], 0xf9babba1
mov dword [esp + 4], 0
xor eax, eax
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, ecx
xor dl, 0xdf
add dl, al
xor dl, byte [esp + ecx]
add dl, 0xa5
mov byte [esp + ecx], dl
inc ecx
add al, 2
cmp ecx, 8
jne 0x43d7b0
cmp esi, dword [esp]
jne 0x43d9c7
push dword [esp + 0x14]
call fcn.00436070
add esp, 4
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x10], ecx
mov dword [esp], 0x504f4e4d
mov ebp, esp
mov esi, 0x9618f2
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [ebp]
mov edi, esi
and edi, 0x8210d7
lea ecx, [esi - 0x5a000000]
and ecx, 0xa6140828
or ecx, edi
mov edi, ebx
xor edi, 0xd7
mov edx, ecx
xor edx, 0x28
or edx, edi
xor ebx, 8
xor ecx, 0xd7
or ecx, ebx
and ecx, edx
add cl, 0xbf
mov byte [ebp], cl
inc ebp
dec esi
cmp esi, 0x9618ee
jne 0x43d800
mov esi, dword [esp]
mov ecx, dword [0x44a890]
test ecx, ecx
je 0x43d875
xor edx, edx
mov ebp, dword [0x44a894]
mov ebx, dword [esp + 0x38]
nop
cmp dword [ebp + edx*8], 0x33079ccd
je 0x43d904
inc edx
cmp ecx, edx
jne 0x43d860
jmp 0x43d879
mov ebx, dword [esp + 0x38]
mov ebp, dword [esp + 8]
test ebx, ebx
mov ecx, dword [esp + 0x34]
je 0x43d9be
test esi, esi
js 0x43d9be
test ecx, ecx
je 0x43d9b7
mov ecx, dword [ebp + 0xc]
shr ecx, 1
mov edx, dword [ebx]
cmp edx, ecx
jb 0x43d8a6
mov edx, ecx
test edx, edx
je 0x43d9aa
add eax, 0x10
mov ecx, edx
and ecx, 3
je 0x43d944
mov dword [esp + 0x10], edx
xor edi, edi
mov ebp, dword [esp + 0x34]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, word [eax]
xor edx, edx
test bx, bx
setne dl
lea eax, [eax + edx*2]
mov word [ebp], bx
add ebp, 2
inc edi
cmp ecx, edi
jne 0x43d8d0
mov dword [esp + 0xc], ebp
mov edx, dword [esp + 0x10]
mov ebp, edx
sub ebp, edi
mov ebx, dword [esp + 0x38]
cmp edx, 4
jae 0x43d94b
jmp 0x43d9aa
mov ecx, dword [ebp + edx*8 + 4]
cmp ecx, esi
mov ebp, dword [esp + 8]
je 0x43d87d
lea edx, [esp + 0x14]
push edx
push dword [esp + 0x14]
push ebp
push 0
push dword [esp + 0x40]
push dword [esp + 0x40]
push 0x18
push ecx
push dword [0x44a898]
mov edi, eax
call fcn.00439540
add esp, 0x24
mov esi, eax
mov eax, edi
jmp 0x43d87d
mov ebp, edx
cmp edx, 4
jb 0x43d9aa
mov ebx, dword [esp + 0xc]
nop
movzx edx, word [eax]
xor ecx, ecx
test dx, dx
setne cl
lea edi, [eax + ecx*2]
mov word [ebx], dx
movzx eax, word [eax + ecx*2]
xor ecx, ecx
test ax, ax
setne cl
lea edx, [edi + ecx*2]
mov word [ebx + 2], ax
movzx eax, word [edi + ecx*2]
xor ecx, ecx
test ax, ax
setne cl
lea edi, [edx + ecx*2]
mov word [ebx + 4], ax
movzx ecx, word [edx + ecx*2]
xor eax, eax
test cx, cx
setne al
mov word [ebx + 6], cx
add ebx, 8
lea eax, [edi + eax*2]
add ebp, 0xfffffffc
jne 0x43d950
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 0x38]
mov eax, dword [esp + 0xc]
mov word [eax], 0
mov ebp, dword [esp + 8]
mov eax, dword [ebp + 0xc]
shr eax, 1
mov dword [ebx], eax
push ebp
call fcn.00436100
add esp, 4
mov eax, esi
add esp, 0x18
pop esi
pop edi
pop ebx
pop ebp
ret