Function at 0x43a7f0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x10
mov ebp, ecx
mov dword [esp + 8], 0
mov dword [esp], 0x989b9a9d
mov byte [esp + 4], 0
xor edi, edi
nop
movzx ecx, byte [esp + edi]
mov eax, edi
xor eax, 0xdfbb49e4
mov esi, edi
or esi, 3
and esi, eax
mov edx, edi
and edx, 4
xor edx, 0xe4
mov eax, edi
or eax, 0x1b
add eax, esi
sub edx, esi
xor eax, edx
and eax, ecx
xor eax, edx
mov cl, pe_nt_image_headers32
sub cl, al
mov byte [esp + edi], cl
inc edi
cmp edi, 5
jne 0x43a810
mov edi, dword [esp]
mov eax, dword [0x44ce64]
test eax, eax
je 0x43a896
xor ecx, ecx
mov edx, dword [0x44ce68]
nop
nop
nop
cmp dword [edx + ecx*8], 0x61813e67
je 0x43a870
inc ecx
cmp eax, ecx
jne 0x43a860
jmp 0x43a896
mov eax, dword [edx + ecx*8 + 4]
cmp eax, edi
je 0x43a896
lea ecx, [esp + 8]
push ecx
push 0
push 0
push 5
push 0x10
push eax
push dword [0x44ce6c]
call fcn.0043d480
add esp, 0x1c
mov edi, eax
mov dword [esp], 0xb9fafbf0
xor eax, eax
mov ecx, 0xc900d3
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + eax]
mov ebx, ecx
and ebx, 0xc90081
mov edx, eax
and edx, 2
or edx, 0x4016002c
sub edx, ebx
xor edx, esi
mov esi, 1
sub esi, edx
not esi
and esi, 1
or edx, 1
add edx, esi
add dl, 0xa8
mov byte [esp + eax], dl
inc eax
dec ecx
cmp eax, 4
jne 0x43a8b0
cmp edi, dword [esp]
jne 0x43aa74
mov dword [esp + 0xc], ebp
push dword [esp + 8]
call fcn.0043a6f0
add esp, 4
mov ecx, dword [esp + 8]
mov dword [esp], 0x989b9a9d
mov byte [esp + 4], 0
xor esi, esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + esi]
mov edx, esi
xor edx, 0xdfbb49e4
mov ebx, esi
or ebx, 3
and ebx, edx
mov ebp, esi
and ebp, 4
xor ebp, 0xe4
mov edx, esi
or edx, 0x1b
add edx, ebx
sub ebp, ebx
xor edx, ebp
and edx, edi
xor edx, ebp
mov bl, pe_nt_image_headers32
sub bl, dl
mov byte [esp + esi], bl
inc esi
cmp esi, 5
jne 0x43a920
mov edi, dword [esp]
mov edx, dword [0x44ce64]
test edx, edx
je 0x43a9a6
xor esi, esi
mov ebp, dword [0x44ce68]
nop
cmp dword [ebp + esi*8], 0x61813e67
je 0x43a981
inc esi
cmp edx, esi
jne 0x43a970
jmp 0x43a9a6
mov edx, dword [ebp + esi*8 + 4]
cmp edx, edi
je 0x43a9a6
push 0
push ecx
push eax
push 5
push 0x10
push edx
push dword [0x44ce6c]
mov esi, eax
call fcn.0043d480
add esp, 0x1c
mov edi, eax
mov eax, esi
test edi, edi
js 0x43aa6b
mov dword [esp], 0xd312133d
mov word [esp + 4], 0
mov byte [esp + 6], 0
mov ecx, 0xb708e584
mov edx, 0x48f71a7b
nop
nop
nop
nop
nop
movzx ebp, byte [esp + ecx + 0x48f71a7c]
mov edi, ecx
and edi, ebp
mov esi, edi
and esi, 2
mov ebx, edi
or edi, 2
imul edi, esi
xor esi, 2
and ebx, 0xffffff8d
imul ebx, esi
add edi, ebx
mov ebx, edi
xor ebx, ecx
and edi, edx
add ebx, ebp
add edi, edi
sub ebx, edi
add bl, 0x6c
mov byte [esp + ecx + 0x48f71a7c], bl
inc ecx
dec edx
cmp ecx, 0xb708e58b
jne 0x43a9d0
mov edi, dword [esp]
mov esi, dword [eax]
mov ecx, eax
nop
nop
nop
nop
nop
mov edx, dword [ecx + esi + 0x3c]
add ecx, esi
xor ebp, ebp
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, word [edx + ebp]
mov ebx, dword [esp + 0x24]
movzx ebx, word [ebx + ebp]
test si, si
je 0x43aa49
add ebp, 2
cmp si, bx
je 0x43aa30
cmp si, bx
je 0x43aa56
mov esi, dword [ecx]
test esi, esi
jne 0x43aa20
jmp 0x43aa6b
mov edx, dword [ecx + 0x44]
mov esi, dword [esp + 0xc]
mov dword [esi + 8], edx
mov ecx, dword [ecx + 0xdc]
mov dword [esi + 0xc], ecx
xor edi, edi
push eax
call fcn.0043a760
add esp, 4
mov eax, edi
add esp, 0x10
pop esi
pop edi
pop ebx
pop ebp
ret 4