Function at 0x439c10
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x10
mov edi, ecx
mov dword [esp + 4], 0
mov dword [esp], 0xe4e5e6e7
xor eax, eax
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax]
mov edx, 0xa7
sub edx, eax
mov esi, eax
or esi, ecx
or esi, 0x58
not ecx
or ecx, edx
and ecx, esi
add cl, 0x40
mov byte [esp + eax], cl
mov ecx, eax
or ecx, 0xd1571d11
and eax, 1
add eax, ecx
add eax, 0x2ea8e2f0
cmp eax, 4
jb 0x439c30
mov ebp, dword [esp]
mov eax, dword [0x4497e4]
test eax, eax
je 0x439cb6
xor ecx, ecx
mov edx, dword [0x4497e8]
nop
nop
nop
nop
nop
nop
nop
cmp dword [edx + ecx*8], 0x67f3d776
je 0x439c90
inc ecx
cmp eax, ecx
jne 0x439c80
jmp 0x439cb6
mov eax, dword [edx + ecx*8 + 4]
cmp eax, ebp
je 0x439cb6
lea ecx, [esp + 4]
push ecx
push 0
push 0
push 5
push 0x10
push eax
push dword [0x4497ec]
call fcn.0043b5f0
add esp, 0x1c
mov ebp, eax
mov dword [esp], 0x53929194
mov eax, 0xba487b10
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x45b784f0]
xor ecx, eax
lea edx, [ecx + 0x2dbc277f]
mov esi, edx
and esi, 1
and edx, 0xfe
and ecx, 1
or ecx, edx
lea ecx, [ecx + esi*2]
mov byte [esp + eax + 0x45b784f0], cl
inc eax
cmp eax, 0xba487b14
jne 0x439cd0
cmp ebp, dword [esp]
jne 0x439ea5
mov dword [esp + 0xc], edi
push dword [esp + 4]
call fcn.00439b90
add esp, 4
mov ecx, dword [esp + 4]
mov dword [esp], 0xe4e5e6e7
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + edx]
mov esi, 0xa7
sub esi, edx
mov edi, edx
or edi, ebx
or edi, 0x58
not ebx
or ebx, esi
and ebx, edi
add bl, 0x40
mov byte [esp + edx], bl
mov esi, edx
or esi, 0xd1571d11
and edx, 1
add edx, esi
add edx, 0x2ea8e2f0
cmp edx, 4
jb 0x439d30
mov ebp, dword [esp]
mov edx, dword [0x4497e4]
test edx, edx
je 0x439db5
xor ebx, ebx
mov esi, dword [0x4497e8]
nop
nop
nop
nop
nop
cmp dword [esi + ebx*8], 0x67f3d776
je 0x439d90
inc ebx
cmp edx, ebx
jne 0x439d80
jmp 0x439db5
mov edx, dword [esi + ebx*8 + 4]
cmp edx, ebp
je 0x439db5
push 0
push ecx
push eax
push 5
push 0x10
push edx
push dword [0x4497ec]
mov esi, eax
call fcn.0043b5f0
add esp, 0x1c
mov ebp, eax
mov eax, esi
test ebp, ebp
js 0x439e9c
mov dword [esp], 0x24636044
xor edx, edx
mov ecx, edx
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + edx]
mov esi, edx
not esi
or esi, 0x176eb429
mov edi, edx
or edi, 0x176eb429
add edi, edx
lea ebp, [edi + esi]
add esi, edi
inc esi
mov edi, esi
and edi, 0x17
xor edi, 0x57
not esi
or esi, 0xa8
add esi, ebp
add esi, 2
or esi, edi
mov edi, ebx
and edi, 0x57
or edi, 0x88
and ebx, 0xffffffa8
xor ebx, esi
xor ebx, edi
xor bl, 0xdf
add bl, 0xb8
mov byte [esp + edx], bl
mov esi, edx
xor ecx, 1
add ecx, edx
and edx, 1
and esi, 2
sub ecx, esi
add ecx, edx
mov edx, ecx
cmp ecx, 4
jb 0x439dd0
mov ecx, dword [esp]
mov dword [esp + 8], ecx
mov esi, dword [eax]
mov ecx, eax
mov ebp, dword [esp + 0x24]
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [ecx + esi + 0x3c]
add ecx, esi
xor ebx, ebx
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, word [edx + ebx]
movzx edi, word [ebp + ebx]
test si, si
je 0x439e76
add ebx, 2
cmp si, di
je 0x439e60
cmp si, di
je 0x439e87
mov esi, dword [ecx]
test esi, esi
jne 0x439e50
mov ebp, dword [esp + 8]
jmp 0x439e9c
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 ebp, ebp
push eax
call fcn.00439bd0
add esp, 4
mov eax, ebp
add esp, 0x10
pop esi
pop edi
pop ebx
pop ebp
ret 4